MLflow 模型简介

MLflow 入门

Weston Bassler

Senior MLOps Engineer

MLflow 模型

  • 简化与 ML 库集成

  • 简化部署

  • 采用名为"风格(Flavors)"的约定

风格

1 unsplash.com
MLflow 入门

内置 Flavors

风格图片

  • 基于 ML 库编写自定义工具

  • Flavors 简化自定义代码接入

# 从 mlflow 模块导入某个 flavor
import mlflow.FLAVOR
1 mlflow.org
MLflow 入门

自动记录(Autolog)

# 自动记录模型与指标
mlflow.FLAVOR.autolog()
# scikit-learn 内置 flavor
mlflow.sklearn.autolog()
MLflow 入门

Scikit-learn 风格(Flavor)

# 导入 scikit-learn
import mlflow
from sklearn.linear_model import \
    LinearRegression

# 启用自动记录 mlflow.sklearn.autolog()
# 训练模型
lr = LinearRegression()
lr.fit(X, y)

model.fit() 时自动记录模型

MLflow 入门

常见指标

  • 回归
    • 均方误差(MSE)
    • 均方根误差(RMSE)
    • 平均绝对误差(MAE)
    • R² 分数
  • 分类
    • 精确率
    • 召回率
    • F1 分数
    • 准确率

常见参数

MODEL.get_params()
MLflow 入门

常见参数

# 训练模型
lr = LinearRegression()
lr.fit(X, y)

# 获取参数 params = lr.get_params(deep=True)
params
{'copy_X': True, 'fit_intercept': True, 'n_jobs': None, 
    'normalize': 'deprecated', 'positive': False}
MLflow 入门

自动记录参数

参数

# 模型
lr = LinearRegression()
lr.fit(X, y)
MLflow 入门

自动记录指标

指标

# 模型
lr = LinearRegression()
lr.fit(X, y)
MLflow 入门

存储格式

模型目录结构:

model/
    MLmodel
    model.pkl
    python_env.yaml
    requirements.txt
# 自动记录
mlflow.sklearn.autolog()

制品(Artifacts)

MLflow 入门

MLmodel 文件内容

artifact_path: model
flavors:
  python_function:
    env:
      virtualenv: python_env.yaml
    loader_module: mlflow.sklearn
    model_path: model.pkl
    predict_fn: predict
    python_version: 3.10.8
  sklearn:
    code: null
    pickled_model: model.pkl
    serialization_format: cloudpickle
    sklearn_version: 1.1.3
MLflow 入门

MLmodel

MLmodel

MLflow 入门

Vamos praticar!

MLflow 入门

Preparing Video For Download...