Как и зачем в Yadro сделали свою MLOps-платформу, в корпоративном блоге компании на «Хабре» рассказал Вадим Извеков, руководитель группы сопровождения платформы машинного обучения Yadro.
В компании есть много проектов, связанных с AI. Всем им нужны ресурсы для работы с моделями на GPU. «Желаем, чтобы только у нас был доступ к оборудованию», - это лишь одно из требований инженеров из AI-дивизиона, а еще нужно оптимизировать использование GPU-ресурсов, вести их учет и живо готовить оборудование к передаче другой команде, говорит Извеков.
Поэтому первоначальная задача MLOps-платформы - оптимизация использования железа между различными командами и задачами, следующая задача - учет. Наконец, третья задача для MLOps-платформы - обслуживание.
Осознав масштабы проблемы, в компании начали изучать доступные решения. Итого е победил вариант Kubernetes с дополнительными компонентами. «Для Data Science он подойдет относительно, потому что в Kubernetes нельзя сделать полностью изолированное окружение. Зато мы контролируем состав платформы, из этого видно, дорабатывать и менять компоненты проще. В целом у Kubernetes крепкая поддержка общества и много возможностей для расширения функционала», - пояснил Вадим Извеков.
«Для первичной настройки виртуальных и физических серверов мы выбрали Ansible, а управления Kubernetes решили взять Kubespray. Его не просто поддерживать, но он позволяет живо подымать кластер, добавлять и устранять ноды, менять настройки, ставить лейблы и taint’ы, а также управлять комплектом встроенных компонентов Kubernetes - Ingress, MetalLB, Argo CD и так далее. Для автоматизации Ansible внедрили AWX, что открыло дорогу к GitOps по отношению управления Kubernetes», - добавил Вадим Извеков.
Хранилище - второй по важности компонент платформы. Оно может статься скорым, надежным, с понятным интерфейсом доступа и высокой пропускной способностью. Первым типом хранилища в Yadro выбрали Tatlin.Object для работы с данными по протоколу S3. Производительность Tatlin.Object позволяет держать там модели и крупные датасеты и работать с ними напрямую - для обучения и для хранения результатов тестирования. Второй тип хранилища - Tatlin.Flex.
«Мы оптимизировали использования ресурсов, мы наладили учет ресурсов и выполняемых на GPU задач, улучшили процессы обслуживания серверов: теперь запросы касаются платформы в целом», - подытожил Вадим Извеков.
Полную версию читайте здесь.
Фото: Freepik