CertMaster

🧱 MLflow & Model Registry

MLflow Tracking, Model Registry, управление экспериментами, autolog

Databricks Data Engineer · DE-Associate · ⏱️ 24 min · ❓ 4 вопр.

🧪 Что такое MLflow?

MLflow — платформа управления жизненным циклом ML с открытым исходным кодом. 4 компонента: Tracking (эксперименты, запуски, параметры, метрики, артефакты), Projects (упаковка воспроизводимого ML-кода), Models (упаковка и обслуживание моделей), Registry (централизованное хранилище моделей, версионирование, управление стадиями). В Databricks — полностью управляемый MLflow.

📊 MLflow Tracking

Experiment — набор связанных запусков (runs). Run — одна сессия обучения ML. Что логируется: params (гиперпараметры: learning_rate, n_estimators), metrics (accuracy, loss), artifacts (файл модели, график, CSV). `mlflow.autolog()` — автоматическое логирование для многих фреймворков: sklearn, xgboost, pytorch и других.

🏪 MLflow Model Registry

Registered Model — версионированная модель. Стадии: None → Staging → Production → Archived. Model alias — например, "champion", "challenger". С Unity Catalog: трёхуровневое пространство имён `catalog.schema.model`. Версионирование моделей, отслеживание происхождения, процесс согласования.

⚡ Настройка производительности Spark

Partitioning: `repartition(n)` — с перемешиванием (shuffle), `coalesce(n)` — без перемешивания (только уменьшение). Оптимальное число партиций: core * 2-4. Broadcast Join: отправка небольшого DataFrame всем исполнителям (`F.broadcast(small_df)`). Кэширование: `df.cache()` — если данные используются многократно. AQE: адаптивное выполнение запросов.
💡 Ключевые моменты
📋 Пример кода
import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier

# Experiment
mlflow.set_experiment("fraud_detection_v2")

with mlflow.start_run(run_name="rf_baseline"):
    mlflow.log_param("n_estimators", 100)
    mlflow.log_param("max_depth", 5)

    model = RandomForestClassifier(n_estimators=100, max_depth=5)
    model.fit(X_train, y_train)

    accuracy = model.score(X_test, y_test)
    mlflow.log_metric("accuracy", accuracy)

    # Model saqlash va register qilish
    mlflow.sklearn.log_model(model, "model",
        registered_model_name="fraud_detector")

# Broadcast join
from pyspark.sql import functions as F
result = large_df.join(F.broadcast(small_lookup), on="id")
🎯 Советы для экзамена
⚠️ Частые ошибки
🧠 Для запоминания: "MLflow 4C" = Collect (tracking), Catalog (registry), Compare (experiments), Champion (production model). "rePARTITION = reshuffle, COALESCE = combine"

Проверьте себя по теме «MLflow & Model Registry»

Бесплатные интерактивные тесты, пробный экзамен и полные уроки — на платформе CertMaster.

Начать бесплатно →