7 принципов MLOps

MLOps объединяет методы и инструменты DevOps с целью внедрения и сопровождения моделей машинного обучения (Machine Learning) в информационные системы наиболее эффективными и надежным способом. В этой статье будут рассмотрены основные принципы MLOps, которые нужно знать каждому разработчику.

Платформа MLOps разработки

ML-модель проходит целый цикл разработки: о выбора архитектуры до внедрения. Для этого должна быть некая платформа разработки, в которой и будет происходит сопровождение модели на протяжении всего цикла. Такая платформа также должна обеспечивать безопасный доступ к данным, ведение журналов, систему уведомлений и т.д.. Мы уже рассказывали о некоторых из них в прошлой статье. Помимо них можно использовать другие незавязанные на Python MLOps-платформы: Neptune.ai, Weights & Biases, Comet.ml, Databricks. Они предлагают ряд возможностей для работы с данными, в т.ч. их конфедициальность, хранение на удаленных серверах с поддержкой GPU, интеграцию с другими инструментами (например, Azure, Apache Spark или тот же Mlflow).

Версионирование

У данных и исходного кода должны быть версии, которые позволят возвращаться к прошлым моделям. Версионирование также помогает совместно с несколькими разработчиками улучшать и сопровождать продукт. Причины, по которым модель каким-то образом изменяется:

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

К счастью, многие платформы поддерживают версионирование данных.

Экспериментирование

Очевидно, первую получившуюся модель отправить в поле для заработка не самая лучшая идея. Процесс машинного обучения сам по себе итеративен и требует постоянной исследовательской работы. Экспериментирование может проходить подразумевать использование несколько веток разработки, которые затем сравниваются в соответствии с метриками. Такой сценарий поддерживает фреймворк DVC с открытым исходным кодом. При этом должны быть некоторые ограничения, чтобы не каждый разработчик мог залить результат в прод.

Разработка и внедрение ML-решений

Код курса
MLOPS
Ближайшая дата курса
27 февраля, 2023
Длительность обучения
24 ак.часов
Стоимость обучения
45 000 руб.

Тестирование

Модель после создания, изменения и/или обучения должна автоматически протестирована на возможность интеграции, а также должны быть выполнены минимальные требования к производительности на тестовом наборе. Проведение A/B-тестирования поможет узнать улучшилась ли модель по сравнению с предыдущей. В MLOps-платформа Seldon Core A/B-тестирование настраивается через YAML.

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

Мониторинг

Модель должна удовлетворять заданным требованиям на основе метрик. Более того, за всем этим нужно следить. Существуют различные варианты, из-за которых что-то меняется. Приведем некоторые из них:

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

Непрерывная интеграция (CI)

Разворачивание модели подразумевает нахождение нужной архитектуры, подбор параметров и гиперпараметров, обучение и тестирование. Этот процесс может повторяться сколько угодно раз, лишь бы повышалась общая производительность, и система была стабильной.

MLOps включает в себя следующие практики:

  • Непрерывная интеграция (Continuous Integration, CI) включает тестирование и проверку данных и моделей.
  • Непрерывная доставка (Continuous delivery, CD) занимается внедрением модели в информационные системы.
  • Непрерывное обучение (Continuous Training, CT), наличие которого дифференцирует обычный DevOps и MLOps.
  • Непрерывный мониторинг (Continuous Monitoring, CM) необходим для для обратной связи.

Управление и автоматизация

За каждой командной должна быть определена своя модель. Поэтому должны быть разграничены полномочия: кто может запрашивать/отклонять/принимать очередной выпуск версии, в т.ч. кто заливает ветку из разработки в производство. Кроме того, MLOps-разработчик должен обеспечивать всё вышеперечисленное было автоматизировано. Опять же многие платформы уже предлагают множество инструментов для этого.

 

Если у вас появилось желание попробовать в этой набирающей обороты профессии, то посетите наш курс «Разработка и внедрение ML-решений» в лицензированном учебном центре обучения и повышения квалификации руководителей и ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов, MLOps-разработчиков и аналитиков Big Data) в Москве.

Добавить комментарий

Поиск по сайту