怎样用MLflow管实验跟踪

GPU
小华
2026-10-19

下面用“概念 + 实操步骤 + 示例”的方式,讲清楚如何用 MLflow 做实验跟踪(Experiment Tracking)。

一、MLflow 实验跟踪能做什么?

MLflow Tracking 主要解决:

  • 记录 每次实验的参数(params)
  • 记录 模型指标(metrics)
  • 保存 模型文件 / 工件(artifacts)
  • 对比不同实验运行(runs)
  • 可复现实验

核心概念:

  • Experiment:一组相关实验
  • Run:一次训练过程
  • Param:超参数
  • Metric:评估指标
  • Artifact:模型、图片、日志等文件

二、基本使用流程(最常用)

1️⃣ 安装 MLflow

pip install mlflow

2️⃣ 启动 Tracking Server(可选但推荐)

本地模式(最简单):

mlflow ui

访问:

http://localhost:5000

也可以用远程 server(团队用):

mlflow server \
--host 0.0.0.0 \
--port 5000 \
--backend-store-uri sqlite:///mlflow.db \
--default-artifact-root s3://your-bucket/mlflow

3️⃣ 在代码中记录实验

示例:训练一个简单模型

import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 设置实验
mlflow.set_experiment("iris_classification")
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)
with mlflow.start_run():
params = {
"n_estimators": 100,
"max_depth": 5
}
mlflow.log_params(params)
model = RandomForestClassifier(**params)
model.fit(X_train, y_train)
preds = model.predict(X_test)
acc = accuracy_score(y_test, preds)
mlflow.log_metric("accuracy", acc)
mlflow.sklearn.log_model(model, "model")

三、在 UI 中查看实验

启动后访问:

http://localhost:5000

你可以看到:

  • 每次 Run 的参数
  • 指标对比
  • 模型文件
  • 训练时间线

✅ 非常适合 调参对比

四、进阶用法

1️⃣ 自动记录(Auto Logging)

mlflow.sklearn.autolog()

会自动记录:

  • 参数
  • 指标
  • 模型

2️⃣ 深度学习(PyTorch / TensorFlow)

import mlflow.pytorch
mlflow.pytorch.log_model(model, "model")

TensorFlow:

import mlflow.tensorflow
mlflow.tensorflow.autolog()

3️⃣ 保存自定义 Artifact

mlflow.log_artifact("confusion_matrix.png")

4️⃣ 远程 Tracking(团队)

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

五、典型实验管理建议

✅ 每个项目一个 Experiment
✅ 用 tags 区分实验目的
✅ 重要模型用 registered model
✅ 结合 Git Commit 记录版本

mlflow.set_tag("owner", "alice")
mlflow.set_tag("purpose", "baseline")

六、最小可运行总结

1. 安装 mlflow
2. mlflow ui
3. 写代码:
- set_experiment
- start_run
- log_params / log_metrics
- log_model
4. 在 UI 对比实验

如果你愿意,我可以:

  • 给你一个 PyTorch / TensorFlow 完整示例
  • 教你 MLflow + Optuna 自动调参
  • 讲 MLflow Model Registry(模型管理)

你现在是个人用还是团队用?

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

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序