API моделей

Вступ до MLflow

Weston Bassler

Senior MLOps Engineer

MLflow REST API

api

1 istock.com
Вступ до MLflow

Model API

  • Зберегти

  • Залогувати

  • Завантажити

Scikit-Learn

1 wikipedia.org
Вступ до MLflow

Функції Model API

# Зберегти модель у локальну файлову систему
mlflow.sklearn.save_model(model, path)
# Залогувати модель як артефакт у MLflow Tracking.
mlflow.sklearn.log_model(model, artifact_path)
# Завантажити модель з локальної файлової системи або з MLflow Tracking.
mlflow.sklearn.load_model(model_uri)
Вступ до MLflow

Завантаження моделі

  • Локальна файловa система — relative/path/to/local/model або /Users/me/path/to/local/model

  • MLflow Tracking — runs:/<mlflow_run_id>/run-relative/path/to/model

  • Підтримка S3 — s3://my_bucket/path/to/model

Вступ до MLflow

Збереження моделі

# Модель
lr = LogisticRegression()
lr.fit(X, y)

# Зберегти модель локально mlflow.sklearn.save_model(lr, "local_path")
ls local_path/
MLmodel            model.pkl        requirements.txt        python_env.yaml
Вступ до MLflow

Завантаження локальної моделі

# Завантажити модель з локального шляху
model = mlflow.sklearn.load_model("local_path")

# Показати модель model
LogisticRegression()
Вступ до MLflow

Логування моделі

# Модель
lr = LogisticRegression(n_jobs=n_jobs)
lr.fit(X, y)

# Залогувати модель mlflow.sklearn.log_model(lr, "tracking_path")
Вступ до MLflow

Інтерфейс Tracking

Інтерфейс Tracking

Вступ до MLflow

Останній активний запуск

# Формат для runs
runs:/<mlflow_run_id>/run-relative/path/to/model
# Отримати останній активний запуск
run = mlflow.last_active_run()

run
<Run: data=<RunData: metrics={}, params={}, 
tags={'mlflow.runName': 'run_name'}>, 
 info=<RunInfo: artifact_uri='uri', end_time='end_time', 
 experiment_id='0', lifecycle_stage='active', run_id='run_id', 
 run_name='name', run_uuid='run_uuid', start_time=start_time, 
 status='FINISHED', user_id='user_id'>>
Вступ до MLflow

Ідентифікатор останнього запуску

# Отримати останній активний запуск
run = mlflow.last_active_run()
# Показати run_id останнього запуску
run.info.run_id
'8c2061731caf447e805a2ac65630e70c'
Вступ до MLflow

Встановлення run id

# Отримати останній активний запуск
run = mlflow.last_active_run()

# Встановити змінну run_id run_id = run.info.run_id
run_id
'8c2061731caf447e805a2ac65630e70c'
Вступ до MLflow

Завантаження моделі з MLflow Tracking

# Передати run_id як f-рядок
model = mlflow.sklearn.load_model(f"runs:/{run_id}/tracking_path")

# Показати модель model
LogisticRegression()
Вступ до MLflow

Давайте потренуємось!

Вступ до MLflow

Preparing Video For Download...