MLflow, Airflow и Kubeflow
Как MLflow записывает эксперименты и хранит модели, как оркестратор запускает пайплайн обучения и чем Airflow отличается от Kubeflow Pipelines.
MLflow
MLflow — open source платформа для учёта экспериментов и хранения моделей. Он закрывает две задачи из урока про пайплайн: метаданные запусков и model registry.
MLflow работает как сервер с веб-интерфейсом. Метаданные он хранит в базе
данных, например в Postgres. Файлы моделей лежат в отдельном хранилище,
например в S3. Локально сервер запускается командой mlflow server.
Run: запись эксперимента
Data scientist добавляет в код обучения несколько строк:
import mlflow
from sklearn.linear_model import LogisticRegression
mlflow.set_tracking_uri("http://mlflow:5000") # адрес сервера MLflow
mlflow.set_experiment("churn")
with mlflow.start_run(): # начать запуск
model = LogisticRegression(C=0.5).fit(X_train, y_train)
mlflow.log_param("C", 0.5) # параметр обучения
mlflow.log_metric("accuracy", model.score(X_test, y_test))
mlflow.sklearn.log_model(model, name="model", registered_model_name="churn")
Каждый start_run создаёт run, одну запись об обучении. В run
сохраняются параметры, метрики и файл модели. В интерфейсе run видны таблицей,
их можно отсортировать по accuracy и сравнить. Двадцать попыток с разными
параметрами больше не теряются в notebook.
Model registry в MLflow
Аргумент registered_model_name="churn" кладёт модель в model registry как
новую версию модели churn. Дальше версии назначают alias, например
champion.
Сервис загружает модель по alias:
model = mlflow.pyfunc.load_model("models:/churn@champion")
Перенёс alias на другую версию, и после перезапуска сервис загрузит новую модель. MLflow умеет и сам поднять HTTP-сервис для модели, это удобно, чтобы быстро проверить её:
mlflow models serve -m "models:/churn@champion" -p 5001
Оркестратор
Шаги пайплайна обучения надо запускать по порядку, по расписанию и с повтором при сбое. Этим занимается оркестратор. Пайплайн обучения запускается не от коммита, а по расписанию или триггеру, и его шаги могут идти часами. Поэтому для него обычно берут не CI-систему, а отдельный оркестратор.
Airflow
Apache Airflow — open source оркестратор задач общего назначения. Пайплайн в нём описывают на Python как DAG (directed acyclic graph), граф задач без циклов. Так выглядит DAG в Airflow 3:
from airflow.sdk import dag, task
import pendulum
@dag(schedule="@weekly", start_date=pendulum.datetime(2026, 1, 1), catchup=False)
def retrain_churn():
@task
def extract() -> str: ... # выгрузить данные, вернуть путь
@task
def validate(path: str) -> str: ...
@task
def train(path: str) -> None: ...
train(validate(extract())) # порядок: extract → validate → train
retrain_churn()
Airflow запускает этот DAG раз в неделю, показывает статус каждой задачи в интерфейсе и повторяет упавшие, если так настроено. Кроме ML, его применяют для регулярных выгрузок данных.
Kubeflow Pipelines
Kubeflow Pipelines — оркестратор пайплайнов для Kubernetes. Шаг пайплайна в нём называется component. По документации Kubeflow каждый запуск component выполняется как отдельный контейнер.
Поэтому у каждого шага свой образ со своими зависимостями и свои ресурсы. Шагу обучения можно выдать GPU, а шагу выгрузки данных немного памяти. Пайплайн описывают на Python через Kubeflow Pipelines SDK.
Другие open source оркестраторы, которые применяют для таких задач: Argo Workflows, Prefect, Dagster.
Что важно запомнить
MLflow записывает каждое обучение как run: параметры, метрики, модель. Model
registry в MLflow хранит версии модели, сервис загружает её по alias, например
models:/churn@champion.
Оркестратор запускает шаги пайплайна по порядку и расписанию. В Airflow пайплайн описывают как DAG на Python. В Kubeflow Pipelines каждый шаг идёт отдельным контейнером в Kubernetes со своими ресурсами.
Прочитал урок?
Отметь его, и прогресс по треку сдвинется.
Урок засчитан.
Разобрать с ИИ-агентом
Агент объяснит непонятное своими словами и погоняет по вопросам с собеседований. 3490 ₽ разово, доступ навсегда.
Агенту скажи: используй MCP izi, давай урок mlops-basics-05-mlflow-and-orchestrators
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс