MLflow实验跟踪怎么用

GPU
小华
2026-07-22

MLflow 是一个开源的机器学习生命周期管理工具,实验跟踪(Experiment Tracking) 是它最核心的功能之一,用来记录模型训练过程中的参数、指标、模型、日志等,方便对比和复现。

下面我用“概念 + 最小可运行示例 + 常见用法”的方式给你讲清楚。

一、核心概念(先理解)

概念说明
Experiment一组实验的集合(比如“XGBoost 调参实验”)
Run一次实验执行(一次训练)
Parameter超参数(如 learning_rate)
Metric评估指标(如 accuracy、loss)
Artifact任何文件(模型、图片、日志)
Tracking URIMLflow 记录数据的位置(本地 / 远程)

二、安装 MLflow

pip install mlflow

三、最简单示例(本地实验跟踪)

1️⃣ 一个完整示例

import mlflow
import mlflow.sklearn
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 设置实验名
mlflow.set_experiment("iris_experiment")
# 开始一次 run
with mlflow.start_run():
# 数据
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 参数
C = 0.5
solver = "lbfgs"
mlflow.log_param("C", C)
mlflow.log_param("solver", solver)
# 模型
model = LogisticRegression(C=C, solver=solver)
model.fit(X_train, y_train)
# 指标
acc = accuracy_score(y_test, model.predict(X_test))
mlflow.log_metric("accuracy", acc)
# 保存模型
mlflow.sklearn.log_model(model, "model")
print(f"Accuracy: {acc}")

运行后,MLflow 会自动记录:

  • 参数 C, solver
  • 指标 accuracy
  • 模型文件

四、查看实验结果(重点)

方法一:MLflow UI(最常用)

mlflow ui

浏览器打开:

http://127.0.0.1:5000

你可以看到:

  • 每次 run
  • 参数对比
  • 指标对比
  • 模型下载

五、常用 API 速查

1️⃣ 记录参数 / 指标

mlflow.log_param("lr", 0.01)
mlflow.log_params({
"epochs": 10,
"batch_size": 32
})
mlflow.log_metric("loss", 0.32)
mlflow.log_metrics({
"train_acc": 0.9,
"val_acc": 0.85
})
⚠️ metric 可以多次记录(用于画曲线)

2️⃣ 记录模型

mlflow.sklearn.log_model(model, "model")
mlflow.pytorch.log_model(model, "model")
mlflow.tensorflow.log_model(model, "model")

3️⃣ 记录任意文件(Artifact)

mlflow.log_artifact("confusion_matrix.png")
mlflow.log_artifact("config.yaml")

六、实验管理技巧

✅ 不同实验分开

mlflow.set_experiment("xgboost_experiment")

✅ 给 run 起名字

mlflow.start_run(run_name="lr_c0.5")

✅ 嵌套 run(高级)

with mlflow.start_run(run_name="parent"):
with mlflow.start_run(run_name="child", nested=True):
...

七、远程 Tracking(进阶)

1️⃣ 使用本地文件夹

mlflow.set_tracking_uri("./mlruns")

2️⃣ 使用服务器(多人协作)

远程启动:

mlflow server \
--backend-store-uri sqlite:///mlflow.db \
--default-artifact-root ./artifacts \
--host 0.0.0.0

客户端:

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

八、典型使用场景

✅ 对比不同模型
✅ 对比不同超参数
✅ 复现实验结果
✅ 模型版本管理

✅ 团队协作

九、一句话总结

MLflow 实验跟踪 = 自动记录“你做了什么、效果如何、模型在哪”

如果你愿意,我也可以:

  • 给你 PyTorch / TensorFlow 示例
  • MLflow + 超参数搜索
  • MLflow 和模型注册(Model Registry)
  • 帮你 设计一套实验管理规范

你现在用的是 sklearn / PyTorch / 还是深度学习框架

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

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序