Жизненный цикл ML-системы

Полный путь от сырых данных до работающего сервиса и обратно — как петля, а не прямая линия.

Жизненный цикл ML-системы — это замкнутый цикл этапов «данные → обучение → валидация → деплой → мониторинг → переобучение», где выход мониторинга снова запускает работу с данными.

Почему это цикл, а не конвейер

Новички представляют ML как прямую: собрал данные, обучил, выкатил, забыл. Но модель в проде живёт в меняющемся мире. Поэтому правильная модель жизненного цикла — петля: мониторинг ловит деградацию и инициирует новый виток. Понимание этого цикла — фундамент всего курса; каждая дальнейшая тема — это углубление в один из его этапов.

        +----------------------------------------------+
        v                                              |
  +-----------+   +-----------+   +-----------+   +-----------+
  |  Данные   |->|  Обучение  |->|  Валидация |->|   Деплой  |
  +-----------+   +-----------+   +-----------+   +-----------+
                                                      |
                                                      v
                                                +-----------+
                                                | Мониторинг|
                                                +-----------+
                                                      |
              дрейф/деградация -> переобучение --------+

Этап 1: Данные

Всё начинается со сбора, очистки и валидации данных. Здесь определяют схему, проверяют диапазоны значений, заполняют пропуски, размечают (для supervised). Ключевая практика MLOps — версионировать данные: знать, на каком срезе обучалась каждая модель.

Этап 2: Обучение

На версионированных данных строят признаки (feature engineering) и обучают модель, перебирая гиперпараметры. Каждый запуск — это эксперимент, который нужно фиксировать: параметры, метрики, артефакты. Иначе вы не сможете повторить лучший результат.

Этап 3: Валидация

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

Этап 4: Деплой

Прошедшую валидацию модель пакуют в артефакт (сериализация + зависимости + Docker) и разворачивают как сервис: REST API, батч-задание или стрим. Выкатывают осторожно — канареечно или через shadow-режим.

Этап 5: Мониторинг

В проде следят за тремя слоями: операционным (латентность, ошибки), статистическим (дрейф входных данных) и качеством (если есть обратная связь — точность предсказаний). Это «глаза» системы.

Этап 6: Переобучение

Когда мониторинг видит дрейф или падение качества, срабатывает триггер: модель переобучают на свежих данных, и цикл повторяется. Степень автоматизации этого шага — главный маркер зрелости MLOps.

Как работает под капотом

В зрелой системе переходы между этапами автоматизированы пайплайнами-оркестраторами (Airflow, Kubeflow). Между этапами передаются не файлы вручную, а версионированные артефакты с метаданными о происхождении (lineage): эта модель обучена из этого пайплайна на этой версии данных с этими параметрами. Так любой результат можно проследить до источника.

Частые ошибки

  • Считать цикл линией. Без петли переобучения модель неизбежно устаревает.
  • Терять связь модель↔данные. Если не зафиксировать версию данных, валидация и воспроизводимость невозможны.
  • Прыгать через валидацию. «Метрика выросла на трейне» не значит, что модель готова к проду.

Итог

  • ML-система — это замкнутый цикл из шести этапов, а не одноразовый конвейер.
  • Мониторинг — обязательное звено: он замыкает петлю и запускает переобучение.
  • Между этапами текут версионированные артефакты с lineage, что обеспечивает воспроизводимость.
Проверьте себя
1. Почему жизненный цикл ML изображают как петлю, а не прямую линию?
AТак красивее на слайдах
BПотому что мониторинг ловит деградацию и запускает новый виток обучения
CПотому что данные нельзя версионировать
DЧтобы усложнить процесс
2. Что главным образом определяет зрелость MLOps на этапе переобучения?
AЦвет дашборда
BСтепень автоматизации триггера и переобучения
CКоличество дата-сайентистов
DВерсия Python
3. Зачем фиксировать связь между моделью и версией данных?
AДля красоты отчётов
BЧтобы можно было воспроизвести и провалидировать модель
CЧтобы ускорить инференс
DЭто не нужно