MLOps объединяет методы и инструменты DevOps с целью внедрения и сопровождения моделей машинного обучения (Machine Learning) в информационные системы наиболее эффективными и надежным способом. В этой статье будут рассмотрены основные принципы MLOps, которые нужно знать каждому разработчику.
Платформа MLOps разработки
ML-модель проходит целый цикл разработки: о выбора архитектуры до внедрения. Для этого должна быть некая платформа разработки, в которой и будет происходит сопровождение модели на протяжении всего цикла. Такая платформа также должна обеспечивать безопасный доступ к данным, ведение журналов, систему уведомлений и т.д.. Мы уже рассказывали о некоторых из них в прошлой статье. Помимо них можно использовать другие незавязанные на Python MLOps-платформы: Neptune.ai, Weights & Biases, Comet.ml, Databricks. Они предлагают ряд возможностей для работы с данными, в т.ч. их конфедициальность, хранение на удаленных серверах с поддержкой GPU, интеграцию с другими инструментами (например, Azure, Apache Spark или тот же Mlflow).
Версионирование
У данных и исходного кода должны быть версии, которые позволят возвращаться к прошлым моделям. Версионирование также помогает совместно с несколькими разработчиками улучшать и сопровождать продукт. Причины, по которым модель каким-то образом изменяется:
- повторное обучение из-за появления новых данных;
- повторное обучение из-за новых методов обучения, включая изменение архитектуры;
- модель может самообучаться;
- модель может быть внедрена в другие приложения;
- модель может быть испорчена как со стороны разработчиков (случайно или намеренно), так и в результате атаки злоумышленников;
- изменение внутреннего хранения (места может уже не хватать);
- изменение в условиях соглашения о хранении данных.
К счастью, многие платформы поддерживают версионирование данных.
Экспериментирование
Очевидно, первую получившуюся модель отправить в поле для заработка не самая лучшая идея. Процесс машинного обучения сам по себе итеративен и требует постоянной исследовательской работы. Экспериментирование может проходить подразумевать использование несколько веток разработки, которые затем сравниваются в соответствии с метриками. Такой сценарий поддерживает фреймворк DVC с открытым исходным кодом. При этом должны быть некоторые ограничения, чтобы не каждый разработчик мог залить результат в прод.
Разработка и внедрение ML-решений
Код курса
MLOPS
Ближайшая дата курса
11 ноября, 2024
Продолжительность
24 ак.часов
Стоимость обучения
54 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) в Москве.