怎么用MLflow管实验

GPU
小华
2026-09-19

MLflow 是一个开源的机器学习生命周期管理平台,主要用来跟踪实验、打包代码、管理模型和注册模型。下面我按“干什么 → 怎么用”的方式给你一个实用指南。

一、MLflow 能管什么(核心组件)

  1. MLflow Tracking:记录参数、指标、模型、日志
  2. MLflow Projects:把代码变成可复现项目
  3. MLflow Models:统一模型格式(可部署)
  4. MLflow Registry:模型版本与上线管理

二、最常用:用 Tracking 管实验

1. 安装

pip install mlflow

2. 最小可用例子

import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
mlflow.start_run(run_name="rf_baseline"):
params = {"n_estimators": 100, "max_depth": 5}
mlflow.log_params(params)
model = RandomForestClassifier(**params)
model.fit(X_train, y_train)
pred = model.predict(X_test)
acc = accuracy_score(y_test, pred)
mlflow.log_metric("accuracy", acc)
mlflow.sklearn.log_model(model, "model")

3. 查看实验

mlflow ui

浏览器打开:http://localhost:5000
能看到:

  • 每次 run 的参数
  • 指标曲线
  • 保存的模型

三、实验组织方式(很重要)

✅ 推荐结构

Experiment: churn_prediction
├── run: baseline
├── run: feature_engineered
└── run: tuned_model
mlflow.set_experiment("churn_prediction")

四、进阶用法

1. 自动记录(省事)

mlflow.sklearn.autolog()

会自动记录:

  • 参数
  • 指标
  • 模型

2. 记录图表 / 文件

mlflow.log_artifact("confusion_matrix.png")

3. 用远程 Tracking Server(团队协作)

mlflow server \
--host 0.0.0.0 \
--port 5000 \
--backend-store-uri sqlite:///mlflow.db

Python 中:

mlflow.set_tracking_uri("http://server-ip:5000")

五、模型管理与上线

注册模型

mlflow.register_model(
"runs://model",
"ChurnModel"
)

版本管理

  • 每个注册模型有多个版本
  • 可标记:Staging / Production

六、常见使用场景

场景MLflow 怎么用
调参对比log_param + log_metric
复现实验MLflow Project
模型上线Model Registry
团队协管Tracking Server

七、新手建议

✅ 先用 mlflow ui 看实验
✅ 每个想法一个 run

✅ 不要只记 accuracy,记“为什么这么试”

如果你愿意,可以告诉我:

  • Sklearn / PyTorch / LLM
  • 单人还是团队?
  • 本地还是云?

我可以直接给你一套可抄的配置

亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序