В прошлой статье я рассказывал, как мы строим сервисы для разработчиков ИИ и, в частности, коснулся истории появления нашей MLOps Platform. Сегодня мне хотелось бы показать ее изнутри — поделиться возможностями и показать инструменты под капотом.

Надеюсь, получилось достаточно подробно. А для всего остального есть комментарии: не стесняйтесь задавать вопросы, я обязательно отвечу всем интересующимся. Поехали!

CloudMTS

Итак, когда мы построили наш GPU SuperCloud, мы поняли, что у некоторых заказчиков есть спрос на услугу «здесь и сейчас». У кого-то горят сроки реализации проекта. Другим не хватает «инженерных» рук. Поэтому мы решили сделать инструмент, который позволял бы прийти «на все готовое». И построили MLOps Platform.
 

Задачи и сценарии использования MLOps


По нашим наблюдениям, разработка занимает около 30% жизненного цикла модели. Но только 10% моделей доживает до выпуска на прод. 90% работы (экспериментов и ошибок) отправляется прямиком в garbage collector.

MLOps

80% времени разработки модели требуют участия инженеров — настроить, автоматизировать и т.д. Это пул задач DevOps/MLOps. Они решаются на протяжении всего жизненного цикла модели вплоть до обслуживания у заказчика. А когда модель развертывается, необходимо версионировать ее, обновлять, следить, чтобы работала исправно и не падала. Платформа упрощает эту работу и берет на себя решение большинства задач.

Как и GPU SuperCloud, платформа работает на графических ускорителях, но в отличие от него, в MLOps Platform есть не только вычислительные ресурсы. Разработчик получает готовые инструменты для работы. Платформа оснащена бесплатными фреймворками, у заказчиков есть возможность подключать платные.

В следующей таблице я перечислил некоторые (но не все) утилиты, относящиеся к тому или иному этапу работы над проектом машинного обучения.

ML Tools

Помимо прочего, пользователь может расширять возможности платформы по своему усмотрению — подключать дополнительные инструменты и фреймворки, будь то библиотеки на любых языках программирования, инструменты консольной строки, контейнеризируемые приложения с web- интерфейсом, или PaaS/SaaS-решения. Кроме того, платформа поддерживает интеграции с рядом K8s-native инструментов, которые могут быть установлены рядом с платформой и настроены под клиента по специальному запросу.
 

Управление и взаимодействие


Работать с платформой можно разными способами.

Через веб-интерфейс:
В веб-интерфейсе доступны стандартные инструменты — Jupiter Notebook, Jupiter Lab. Вести разработку и следить за использованием ресурсов можно прямо из браузера. Для мониторинга есть Grafana, а за обучением модели можно следить, например, в TensorBoard, так же доступном в платформе. Есть возможность управлять проектами и предоставлять доступ к ним своим коллегам, делиться с ними исходным кодом или готовыми моделями.

WEB UI

С помощью CLI:
Особенно интересно возможности платформы раскрываются в командном интерфейсе. Он предназначен для более опытных разработчиков, которые предпочитают использовать IDE. Иными словами, в процессе написания кода вы можете использовать свою любимую среду разработки, а когда настанет потребность в вычислительных ресурсах (например, чтобы обучить или протестировать модель), одной командой отправить задачу в облако. Когда задача завершится, результат тестирования или работы модели вы увидите на своей рабочей машине.

VS Code
Пример работы в VS Code

Это позволяет не выходить из зоны комфорта привычной среды разработки, которую вы уже настроили под себя, и при этом пользоваться «ускоренными» облачными ресурсами. Здесь присутствуют те же возможности, что в веб-интерфейсе, и даже больше.
 

  • CLI удобнее для работы с исходным кодом в виде скриптов (не ноутбуков).
  • CLI лучше всего подходит для решения сложных задач, в том числе, построения многоэтапных вложенных пайплайнов.
  • CLI предлагает больше контроля над системой.


По API:
Также есть возможность взаимодействия с платформой по API и Python SDK. Тем, кто хочет интегрироваться с MLOps Platform, мы предоставляем подробную техническую документацию.

Используя оркестратор пайплайнов:
Утилита интегрирована как в CLI, так и в веб-интерфейс для контроля и предоставления результатов выполнения задач. Она представляет из себя DSL в YAML файлах, в которых с использованием основных концептов платформы строятся как пайплайны, так и интеграции внешних утилит из таблицы выше.

Terminal CLI
 

Возможности и инструменты


Подробнее поговорим о том, какие возможности дает платформа. Как я уже говорил выше, она позволяет практически полностью автоматизировать процесс разработки, управление версиями, тестирование, выкатку в прод и другие задачи, с которыми сталкиваются разработчики ИИ-моделей.

Основным инструментом автоматизации является система управления пайплайнами, позволяющая охватить весь жизненный цикл проекта — от сбора данных до развертывания моделей.
 

  • Автоматизация сбора и разметки данных. Имеется возможность настроить Label Studio/Yandex Toloka и DVC/Pachyderm так, чтобы новые данные отправлялись на разметку, а после завершения оной прилетали как новая версия датасета в систему версионирования.
  • Автоматизация сборки кода. Код хранится в Git репозитории клиента (GitHub, GitLab и т.д.), а система управления пайплайнами может загрузить нужную ревизию кода и запустить сборку образов Docker непосредственно на платформе.
  • Автоматизация обучения моделей. После того, как обновлены данные или код, можно автоматически запустить обучение модели. Кроме того, возможен распределенный по многим машинам поиск гиперпараметров, реализуемый через средства самой платформы или внешних инструментов, таких как NNI или W&B. Метрики моделей и сами модели в этом случае хранятся в выбранной системе отслеживания и сохранения экспериментов TensorBoard / MLFlow / W&B.
  • Автоматизация тестирования и отладки. Средства тестирования качества модели, такие как Locust, или отладчики моделей глубокого обучения SHAP, LIME могут запускаться по запросу или в рамках пайплайнов.
  • Автоматизация развертывания. После того, как модели обучены и протестированы, автоматическое развёртывание модели и её поставка по API происходят либо на самой платформе, либо с помощью специально предназначенных для этого инструментов:
    — Triton
    — Seldon
    При использовании специализированных инструментов их развёртывание происходит по отдельному запросу к нашему отделу MLOps.


Сейчас MLOps Platform представляет собой набор индустриальных инструментов. Сильная сторона такого подхода в том, что разработчикам и дата-сайентистам не придется переучиваться на новое ПО. Просто логинитесь в платформе и получаете доступ к знакомым инструментам и привычным компонентам — сразу можно приступать к разработке продукта.

Для того, чтобы узнать, как построена интеграция и как работать с конкретными инструментами, читайте нашу документацию.

Сервис позволяет разработчику не тратить время на настройку платформы. Сразу можно проверять гипотезы и решать типовые задачи: заливать датасеты для обучения моделей, подключать исходный код из Git, загружать его с ПК, писать его в веб-интерфейсе или привычной IDE.
 

Оба наших сервиса нашли своих пользователей

 

  • Если вы планируете долгосрочный проект, готовы к самостоятельной настройке процессов и инструментов, можно посмотреть в сторону GPU SuperCloud. Тарификация у него помесячная, но и стоимость ниже, чем у других сервисов на рынке.
  • Если вам нужно решение «здесь и сейчас» и тратить время настройку пайплайнов вы не хотите, стоит обратить внимание на MLOps Platform. Все инструменты уже готовы к использованию, к тому же присутствует модель оплаты за используемые ресурсы Pay-as-You-Go: если модель обучалась 15-20 минут, платить придется только за них.

Полный текст статьи в блоге CloudMTS на Хабр

Источник: Блог #CloudMTS