Уровни зрелости MLOps
Три уровня зрелости из статьи Google: ручной процесс, автоматическое переобучение и CI/CD для пайплайна. Признаки каждого уровня и что на нём ломается.
Откуда уровни
Google Cloud в статье «MLOps: Continuous delivery and automation pipelines in machine learning» делит MLOps на три уровня зрелости, от 0 до 2. Уровень показывает, какая часть пути модели до прода автоматизирована.
Пройдём уровни на модели churn из прошлого урока. Каждое утро она выдаёт маркетингу список клиентов, которым стоит отправить скидку.
Уровень 0: всё руками
Data scientist выгружает данные из базы, обучает модель в Jupyter notebook и
отправляет файл churn_v3.pkl бэкенд-разработчику. Тот кладёт файл в образ и
выкатывает сервис.
Признаки уровня 0 по статье Google:
- каждый шаг, от подготовки данных до обучения, выполняют вручную или отдельными скриптами;
- data scientist и инженеры прода работают раздельно, модель передают файлом;
- новые версии модели выходят редко, по статье несколько раз в год;
- CI и CD для модели нет;
- в прод выкатывают только сервис inference, без пайплайна обучения;
- качество модели в проде не отслеживают.
Что ломается. Через полгода никто не помнит, на каких данных обучен
churn_v3.pkl, и повторить обучение нельзя. Модель тем временем ловит drift, а
узнают об этом, когда скидки уходят не тем клиентам.
Статья Google отмечает, что уровень 0 встречается во многих компаниях, которые только начинают применять ML.
Уровень 1: модель переобучается сама
На уровне 1 автоматизирован пайплайн обучения. Шаги из notebook стали отдельными задачами, которые идут без человека: выгрузить данные, проверить их, посчитать feature, обучить, оценить, сохранить модель.
Так появляется continuous training (CT), автоматическое переобучение модели в проде. В обычном CI/CD такого шага нет. По статье Google пайплайн запускают:
- вручную;
- по расписанию;
- когда пришли новые данные для обучения;
- когда упало качество модели;
- когда заметно изменилось распределение данных.
Главное отличие от уровня 0: в прод выкатывают пайплайн, а модели он выпускает сам.
Что добавляется в инфраструктуру:
- проверка данных перед обучением: схема и значения такие, как ожидалось;
- проверка модели после обучения: новая модель не хуже текущей;
- хранилище метаданных: какой запуск, на каких данных, с какими параметрами дал какую модель;
- feature store, общее хранилище feature для обучения и прода. В статье он отмечен как дополнительный компонент.
Что ломается. Код самого пайплайна по-прежнему меняют и выкатывают руками. Статья Google называет уровень 1 подходящим, когда новые модели выпускают на новых данных, а не на новых идеях. Новая идея, например другой набор feature, требует ручной правки и выкатки пайплайна.
Уровень 2: CI/CD для пайплайна
На уровне 2 к коду пайплайна применяют обычный CI/CD. Получается два контура.
- CI/CD пайплайна. Merge request с изменением расчёта feature проходит тесты, собираются образы шагов, новая версия пайплайна выкатывается.
- CT модели. Выкаченный пайплайн по триггеру обучает модель, проверяет её и кладёт в model registry, хранилище версий моделей. Оттуда модель выкатывают в сервис.
Тесты, которые статья Google перечисляет для CI:
- unit-тесты кода расчёта feature;
- unit-тесты методов, реализованных в модели;
- обучение сходится, то есть ошибка модели уменьшается от шага к шагу;
- обучение не выдаёт NaN, «не число», из-за деления на ноль и подобного;
- каждый шаг пайплайна выдаёт ожидаемые артефакты;
- шаги пайплайна правильно работают вместе.
Перед выкаткой модели статья предлагает проверить её совместимость с инфраструктурой и нагрузочно протестировать сервис inference: сколько запросов в секунду он держит и с какой latency, то есть временем ответа.
Уровень 2 по статье нужен, когда приходится быстро и надёжно обновлять пайплайны в проде: часто пробовать новые идеи и выкатывать их.
Как понять свой уровень
Признаки из статьи сводятся к трём вопросам.
- Запускается ли обучение без человека: по расписанию или триггеру?
- Проверяются ли данные и новая модель автоматически, до выкатки?
- Проходит ли изменение кода пайплайна через тесты и CI/CD?
Нет на первый вопрос значит уровень 0. Да на первые два значит уровень 1. Да на все три значит уровень 2.
Что важно запомнить
Уровень 0: модель обучают вручную и передают файлом, качество в проде не отслеживают.
Уровень 1: пайплайн обучения автоматизирован, модель переобучается по триггеру (continuous training). Данные и модель проверяются автоматически.
Уровень 2: код пайплайна проходит CI/CD с тестами. Нужен, когда часто выкатывают новые идеи, а не одни новые данные.
Оригинал на английском: MLOps: Continuous delivery and automation pipelines in machine learning, Google Cloud.
Прочитал урок?
Отметь его, и прогресс по треку сдвинется.
Урок засчитан.
Разобрать с ИИ-агентом
Агент объяснит непонятное своими словами и погоняет по вопросам с собеседований. 3490 ₽ разово, доступ навсегда.
Агенту скажи: используй MCP izi, давай урок mlops-basics-02-maturity-levels
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс