Что такое Airflow / Prefect / Dagster в ML-пайплайнах?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Это orchestration-инструменты для управления пайплайнами: запускать шаги по порядку, по расписанию или по событиям, обрабатывать зависимости, ретраи и мониторинг. В ML они нужны, чтобы обучение, валидация, деплой и переобучение выполнялись воспроизводимо и автоматически. Airflow чаще ассоциируется с классическим batch workflow, Prefect и Dagster — с более удобной разработкой, наблюдаемостью и типизацией пайплайнов.
Определение:
Airflow, Prefect и Dagster — это системы оркестрации рабочих процессов, которые помогают описывать и запускать сложные пайплайны как набор связанных задач.
В ML-пайплайнах они обычно решают такие задачи:
- подготовка данных;
- обучение модели;
- оценка качества;
- регистрация артефактов;
- деплой;
- периодический retraining.
Разница обычно не в самой идее, а в удобстве разработки, способе описания зависимостей, наблюдаемости и подходе к управлению состоянием пайплайна.
Пример использования:
Например, раз в ночь запускается пайплайн:
- выгрузить данные из хранилища;
- почистить и агрегировать признаки;
- обучить модель;
- посчитать метрики;
- если качество выше порога — сохранить модель и отправить в прод.
# Псевдокод, общий для понимания orchestration в ML
def extract_data():
return "raw_data"
def transform_data(raw_data):
return "features"
def train_model(features):
return "model"
def evaluate_model(model):
return {"accuracy": 0.93}
def save_model(model):
print("model saved")
raw = extract_data()
features = transform_data(raw)
model = train_model(features)
metrics = evaluate_model(model)
if metrics["accuracy"] > 0.9:
save_model(model)
В реальной системе Airflow/Prefect/Dagster управляют не самими вычислениями, а тем, когда и в каком порядке вызывать такие шаги, что делать при сбое и как логировать результат.
Пояснение кода:
Код здесь иллюстративный, потому что смысл Airflow/Prefect/Dagster — не в алгоритме обучения, а в управлении зависимостями между этапами.
Разбор по шагам:
extract_data()получает исходные данные.transform_data()превращает их в признаки.train_model()обучает модель.evaluate_model()считает метрики качества.- Если метрика проходит порог, модель сохраняется.
В оркестраторе каждый такой шаг обычно оформляется как отдельная task/node/op, а связи между ними задают DAG или pipeline. При сбое одного шага система может сделать retry, зафиксировать ошибку и не запускать зависимые шаги дальше.
Ключевые моменты:
- Это инструменты оркестрации, а не ML-фреймворки и не сами вычислительные движки.
- Они нужны для воспроизводимых, автоматизированных ML-процессов end-to-end.
- Типичные функции: зависимости, расписание, retries, логирование, мониторинг, артефакты.
- Airflow исторически силён в batch-оркестрации и SQL/ETL-сценариях.
- Prefect и Dagster часто выбирают за более удобный developer experience и лучшую наблюдаемость пайплайнов.
- В ML их применяют для обучения, scoring, валидации, деплоя и переобучения моделей.