Как внедрить ключевые идеи MLOps и определиться с набором инструментов для непрерывной разработки и поставки систем машинного обучения. Лучшие практики и шаблон представления техстека.
С чего начать: определение структуры проекта
Напомним, концепция MLOps ориентирована на устранение организационных и технических разрывов между разнопрофильными участниками процессов создания систем машинного обучения. Когда речь заходит о межпроцессном взаимодействии, неудивительно, что для успеха подобных коммуникаций они должны быть, как минимум, определены. В частности, MLOps легче внедрить, когда структура ML-проекта четко организована, включая следующие компоненты:
- проектная база знаний, в которой собраны исходные требования от заказчика, доменные и технические ограничения, варианты решений;
- система управления требованиями и задачами;
- репозиторий кода и данных;
- правила именования функций и датасетов;
- правила взаимодействия с определением канала коммуникаций и области ответственности каждого члена команды;
- конфигурации сред разработки, тестирования и развертывания;
- система контроля версий, например, Git для кода и dvc для данных, чтобы отслеживать изменения;
- репозиторий идей по улучшению документации и коммуникаций.
Стек MLOps-инструментов
Понимая функциональные и нефункциональные требования к итоговому продукту, техлид принимает решение об используемых технологиях, учитывая опыт команды. Например, здесь мы писали, почему Kubeflow больше подходит для больших команд, разрабатывающих собственные ML-решения, а MLflow будет отличным выбором для отдельных Data Scientist’ов, которые работают над отслеживанием экспериментов и созданием моделей Machine Learning. Чтобы визуализировать выбранный стек и спроектировать необходимый MLOps-конвейер, можно интерактивно определить стек технологий, используя сервис MyMLOps или воспользоваться статическим шаблоном от Valohai.
Хотя статическая картинка уступает интерактивной схеме на платформе MyMLOps, она позволяет визуализировать выбранные технологии и построить MLOps-конвейер. А чтобы обосновать выбор технологического стека, целесообразно сопроводить графическую схему текстовой таблицей:
MLOps-компонент |
Требования |
Выбранный инструмент |
Анализ данных |
· поддержка Python · локальная работа · совместная работа в облаке |
Jyputer Notebook |
Отслеживание экспериментов |
· трекинг параметров · упаковка ML-модели в транспортируемый формат |
MLflow |
Хранилище фичей |
· версионирование фичей · поддержка потоковой обработки |
Feast |
Репозиторий кода |
· версионирование · поддержка CI/CD |
GitLab |
Оркестрация ML-конвейера |
· запуск заданий по расписанию · поддержка Python |
Apache AirFlow |
Хранилище метаданных |
· версионирование · неограниченный объем |
AWS S3 |
Реестр моделей |
· отслеживание происхождения модели · версионирование |
MLflow |
Обслуживание ML-моделей |
· автоматическое масштабирование рабочих процессов · облачное развертывание ML-моделей |
ClearML |
Мониторинг ML-моделей |
· автоматическое логирование · визуализация показателей на дэшбордах |
ClearML |
В качестве примера представим стек технологий MLOps-платформы Valohai, разработчики которой предложили вышепоказанный шаблон:
- Jupyter Notebook для анализа данных и экспериментов;
- Tecton для хранилища фичей;
- GitLab для репозиториев кода;
- Fiddler Labs для мониторинга моделей;
- Valohai для обучения конвейеров, обслуживания моделей и связанных с ними хранилищ.
Разумеется, выбранный набор инструментов должен быть достаточно компактным, чтобы сократить накладные расходы на использование и интеграции разных технологий между собой. Из этого тезиса выходит следующая рекомендация по внедрению MLOps.
Отслеживание расходов и стандартизация подходов
Одна из целей внедрения MLOps – это сокращение техдолга. Однако, это не должно достигаться за счет чрезмерных трат на MLOps-инструменты. Многие MLOps-средства основаны на подписке или оплате по факту использования. Платные сервисы обычно гораздо удобнее open-source инструментов, которые следует настраивать. Но, выбирая коммерческий инструмент, следует понимать, какую экономию времени он принесет, повышая итоговую ценность создаваемого продукта. Важно считать и отслеживать расходы, сопоставляя их с выручкой от создаваемой ML-системы.
Помимо мониторинга финансовых расходов, надо стремиться к сокращению временных затрат, включая потери продуктивности из-за рассинхронизации подходов к именованию функций, фичей, переменных, скриптов и пр. Подобная стандартизация должна применяться не только к соглашениям об именах, но и ко всем правилам и процедурам MLOps-конвейера, включая процессы анализа и обработки данных, используемые среды, создаваемые артефакты и пр.
Наконец, именно стандартизация подходов является основой для оценки зрелости MLOps. О том, какие бывают модели оценки зрелости MLOps и как их применить к своим проектам, мы рассказывали здесь и здесь.
Узнайте больше про использование MLOps-инструментов в системах аналитики больших данных и машинного обучения на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники