Кто такой MLOps-инженер и как он участвует в машинном обучении
Маленький паровозик, который смог улучшить стык разработки и ML
Привет, на связи karpov.courses!
Сегодня у нас статья про MLOps — практики для упрощения работы инженеров машинного обучения. Это сложная тема на стыке ML и разработки, но мы расскажем её просто. А если вы уже много про неё знаете, приглашаем посмотреть нашу программу для продвинутых — Hard ML.
Авторы статьи:
Что будет в статье:
Что такое MLOps и чем это отличается от DevOps
Основной продукт работы инженера машинного обучения — ML-модель. Это программа, которая сама учится принимать решения на основе обработки большого количества данных. Если поведение обычных программ целиком пишут и исправляют люди, то в машинном обучении алгоритм смотрит на большое количество данных и совершенствует сам себя.
Например, чтобы научиться распознавать лица, машине нужно проанализировать большое количество фотографий. А вот другие примеры рабочих ML-моделей:
- аудиосервис запоминает, какую музыку слушает пользователь, и предлагает ему музыку в таком же стиле;
- чат-бот просматривает много диалогов и отвечает вместо поддержки на сайте;
- банковская нейросеть смотрит, кто из клиентов гасит кредиты успешно, а кто нет, и вычисляет уровень надёжности для выдачи ссуды.
Во время подготовки моделей бывают сложности и ошибки, связанные с человеческим фактором — например, ML-инженер может подготовить новую версию модели, но забыть протестировать её на некотором наборе примеров, и в релиз попадёт сломанная модель.
Таких ошибок может быть много, и они бывают разных видов. Если новые модели должны выходить в релиз часто, а налаженного процесса для их разработки нет, то каждый раз будет что-то ломаться по-новому.
MLOps упрощает работу ML-инженеров. Это практики, которые помогают собирать данные, тренировать модели и следить за их работой. В результате процесс создания и использования моделей становится быстрее и надёжнее.
Если ML-инженерам нужно работать с незнакомыми технологиями, MLOps может ускорить этот процесс. Например, если данные для обучения лежат в сложном хранилище, MLOps-специалист может подготовить код или инструмент, с которым инженер машинного обучения сможет получить нужные данные, не разбираясь в новых технологиях.
Ещё модели могут устаревать. Например, магазины и стриминги не могут вечно предлагать одни и те же товары, фильмы или музыку. Когда поведение пользователей меняется, алгоритм нужно дообучить. MLOps следит за своевременным обновлением данных и моделей, чтобы приложение всегда знало о последних тенденциях и изменяющихся предпочтениях покупателей.
MLOps и DevOps похожи.
DevOps появился как ответ на запросы в классической разработке: обеспечение надёжности системы, обнаружение и решение проблем, минимизация времени простоя (downtime).
MLOps тоже обеспечивает надёжность и увеличивает скорость процессов, но в машинном обучении. Для таких задач уже не хватает классического DevOps: DevOps-инженер решает задачи в классической разработке, а ML — это усложнение, потому что логика теперь зависит не только от действий человека, но и от данных. MLOps появился именно как усложнение DevOps.
Это IT-направление нужно для быстрого и частого создания надёжных ML-моделей. Можно сказать, что это вариация DevOps для моделей машинного обучения.
Как это работает
Разработка модели происходит в три этапа.
- Разведочный анализ данных. Всё начинается с кода и собранных данных для обучения. Потом модель нужно обучить — это происходит в несколько этапов, когда ML-инженеры проводят эксперименты и ищут оптимальные настройки. Важно сохранить этапы разработки по всем версиям модели — это и код, и данные, и метрики.
- Сохранение модели. После выбора подходящей модели мы сохраняем её, даём ей имя и версию, а затем готовим к запуску.
- Релиз — вывод модели в готовую версию продукта. Чтобы модель выполняла свою задачу, её добавляют в приложение, где происходит работа с конечными пользователями.
Работа MLOps-инженера сосредоточена вокруг второго и третьего этапов.
На втором этапе специалисты Data Science занимаются сбором данных, обучением и валидацией моделей, а MLOps-инженеры помогают им правильно выстроить процесс. На третьем этапе главные задачи — подготовка модели к релизу, мониторинг и поддержка. Это задачи MLOps.
Модель должна быть готова к реальным нагрузкам. Основная цель — обеспечить производительность и надёжность всей системы в новой среде, которая может отличаться от условий, в которых её разработали.
И Data Scientist, и инженеры машинного обучения работают с данными и моделями, но их задачи отличаются. Data Scientist анализирует данные и создают прогнозные модели. ML-инженеры занимаются разработкой и внедрением моделей в продуктовые системы, обеспечивая их производительность, масштабируемость и надёжность.
Что даёт MLOps
В MLOps применяются определённые принципы для надёжной и эффективной работы всей системы:
- Воспроизводимость: инженеры могут точно повторить эксперименты с моделью, чтобы быть уверенными в результатах.
- Версионирование: система отслеживает все изменения в моделях и данных.
- Тестирование: модели проходят проверку на корректность работы.
- Автоматизация: для упрощения и ускорения работы повторяющиеся участки работы должны выполняться без участия членов команды — по возможности.
- Мониторинг: работа модели сопровождается отслеживанием показателей и своевременными сигналами-алертами об ошибках и поломках.
Общий доступ: инженеры могут совместно работать над моделями.
Некоторые пункты повторяют принципы DevOps — например, автоматизация и мониторинг.
Получается, что MLOps создаёт комфортную рабочую среду для всего процесса подготовки ML-моделей.
Работа инженера MLOps на примерах
Часто MLOps занимается автоматизацией процессов и внедрением системного подхода.
Например, IT-компания выполняет проект для химических заводов и разрабатывает модели для аналитики и подготовки прогнозов химических реакций. Специалисты по Data Science проводят анализ данных и обучают модели, а инженер запускает эти модели в релиз. Часто это однотипные задачи, поэтому после нескольких запусков для обеспечения надёжности и ускорения процесса MLOps-инженер может создать инструмент для автоматизации процесса.
А вот другой пример: специалисты по Data Science работают над проектом, проводят эксперименты с моделями, а результаты сохраняют в разных местах. Информация копится, и найти что-то нужное становится всё сложнее. MLOps-инженер может помочь наладить правильный процесс: дать удобный инструмент или навести порядок другим образом.
Хороший MLOps-инженер вводит новые инструменты так, что команде легко начать их использовать, не погружаясь в детали устройства этих инструментов, — например, он готовит для них вспомогательные скрипты, примеры, инструкции, помогает разобраться с возникающими сложностями.
Так с помощью прозрачности и автоматизации MLOps помогает создать условия, где каждый участник может эффективно выполнять свою работу. А в случае сбоев в такой системе можно быстро устранить проблему или откатиться к предыдущей версии.
Кому подходит изучение MLOps
Чтобы стать MLOps-инженером, нужно хорошо понимать процессы машинного обучения. Поэтому эта дисциплина подходит продвинутым DS-специалистам или разработчикам с опытом, которым интересна тема ML.
Если вы хотите, чтобы модели быстрее выходили в релиз и надёжно работали под нагрузкой, приходите изучать MLOps вместе с нами на курсе Hard ML.
Hard ML — продвинутая программа по машинному обучению. Мы хотели охватить все этапы работы ML-инженера, погрузив студентов в задачи современного бизнеса на примерах реальных кейсов.
На курсе учатся самостоятельно собирать и размечать данные, строить пайплайны их поставки, деплоить приложения, настраивать мониторинги и оценивать эффективность алгоритмов.
Вы сможете развить навыки в:
- ранжировании и матчинге,
- динамическом ценообразовании,
- uplift-modelling,
- продвинутом A/B-тестировании,
- сценариях деплоя ML-сервисов,
- рекомендательных системах,
- и, конечно, MLOps — на эту часть можно записаться отдельно.