CI/CD для данных и моделей на Airflow: опыт MLOps команды «Магнита»

Команда MLOps Forecast & Replenishment в MAGNIT TECH построила CI/CD для ML-пайплайнов прогноза спроса на базе Airflow, PySpark и Delta Lake. Ключевая особенность: релизный цикл, где артефакт сборки — не бинарник, а код вместе с терабайтами рассчитанных таблиц. DS может самостоятельно задеплоить новую модель за день без участия инженеров данных.
В статье главный разработчик ML Илья Евстифеев описывает эволюцию MLOps в команде Forecast & Replenishment сети «Магнит». Система выросла из ноутбуков Zeppelin, где не было ни расписания, ни версионирования, через первые DAG в Airflow, которые деплоились на горячую, к зрелому CI/CD. Сейчас стек включает Airflow, PySpark в Kubernetes и Delta Lake поверх S3. Каждый релиз offline-пайплайна — это git-тег, а таблицы версионируются через путь S3 с версией (например, prod/v1.0/...). Пайплайн состоит из 45 задач с зависимостями, один релиз — около 200 ТБ данных. Для изоляции экспериментов используется SHALLOW CLONE Delta Lake: dev-среда создаёт быстрые копии продовых таблиц, не затрагивая продакшн. DS создаёт файлы main.py и config.yaml, а релизный цикл включает тестирование, Stage и возможность отката за минуты. Автоматический сервис keephouse удаляет нерелизные данные через 90 дней простоя. Система позволяет DS деплоить модели без вовлечения DE, что подтверждается примером с гипотезой о блинной муке перед Масленицей: анализ и деплой заняли день, а не три-четыре недели.
Сокращения
CI/CD = Continuous Integration / Continuous Delivery — непрерывная интеграция / непрерывная доставка
ML = Machine Learning — машинное обучение
MLOps = Machine Learning Operations — операции машинного обучения
DE = Data Engineer — инженер данных
DS = Data Scientist — дата-сайентист
S3 = Amazon Simple Storage Service — сервис объектного хранения
DAG = Directed Acyclic Graph — направленный ациклический граф
DQ = Data Quality — качество данных
YAML = YAML Ain't Markup Language — YAML — не язык разметки
Источник: Habr — хаб ML — оригинал

Наши прошлые публикации по теме

Есть свежие новости