怎样实现MLflow实验跟踪

GPU
小华
2026-07-22

下面给你一个从零到可用的 MLflow 实验跟踪(Experiment Tracking)实现指南,涵盖核心概念、安装、代码示例、常见问题,适合快速落地。

一、MLflow 实验跟踪是什么?

MLflow Tracking 用于记录和管理机器学习实验,包括:

  • 参数(Parameters)
  • 指标(Metrics)
  • 模型(Artifacts)
  • 代码版本(Git)
  • 运行时间、环境等元信息

✅ 支持本地 / 远程
✅ 支持单机 / 多机

✅ 支持 PyTorch / TensorFlow / XGBoost 等

二、安装 MLflow

pip install mlflow

(可选)如果你想用 UI 查看实验:

pip install mlflow[extras]

三、最简单的实验跟踪示例

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_classification")
# 开始一次实验
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)
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
preds = model.predict(X_test)
acc = accuracy_score(y_test, preds)
# 记录参数
mlflow.log_param("model_type", "LogisticRegression")
mlflow.log_param("max_iter", 200)
# 记录指标
mlflow.log_metric("accuracy", acc)
# 保存模型
mlflow.sklearn.log_model(model, "model")
print(f"Accuracy: {acc}")

四、启动 MLflow UI 查看实验

在项目目录下运行:

mlflow ui

浏览器打开:

http://127.0.0.1:5000

你可以看到:

  • 每次 run
  • 参数 / 指标对比
  • 模型文件
  • 运行时间

五、实验(Experiment)与运行(Run)

核心概念

概念含义
Experiment一组相关实验
Run一次模型训练
Param超参数
Metric评估指标
Artifact模型 / 图片 / 日志

创建实验

mlflow.create_experiment("my_experiment")
mlflow.set_experiment("my_experiment")

六、典型多参数实验示例

import mlflow
mlflow.set_experiment("hyperparam_tuning")
for C in [0.1, 1.0, 10.0]:
with mlflow.start_run():
mlflow.log_param("C", C)
mlflow.log_metric("val_acc", C * 0.1)

✅ UI 中可直接对比不同 C 的结果

七、远程 / 多用户实验跟踪(进阶)

1️⃣ 使用本地文件作为后端(最简单)

mlflow.set_tracking_uri("file:///home/user/mlruns")

2️⃣ 使用服务器(推荐)

启动 MLflow Tracking Server:

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

代码中连接:

mlflow.set_tracking_uri("http://127.0.0.1:5000")

八、记录模型(Artifact)

常见方式

mlflow.log_param("lr", 0.01)
mlflow.log_metric("loss", 0.23)
mlflow.log_artifact("confusion_matrix.png")

自动记录(高级)

mlflow.autolog()

支持:

  • sklearn
  • PyTorch
  • TensorFlow
  • XGBoost
  • LightGBM

九、在训练中最佳实践 ✅

✅ 每个实验一个 experiment
✅ 关键指标必须 log_metric
✅ 模型必须保存
✅ 不用 print,用 MLflow UI 对比

✅ 配合 Git + MLflow 记录代码版本

十、常见坑

❌ 忘记 start_run()
❌ 只 log param 不 log metric
❌ 远程 tracking URI 没配置

❌ artifact 路径不存在

十一、总结一句话

MLflow 实验跟踪 = 用 start_run() 包裹训练代码 + 记录参数 / 指标 / 模型

如果你愿意,我可以:

  • ✅ 给你 PyTorch / TensorFlow 实际训练示例
  • ✅ 设计 企业级 MLflow 架构
  • ✅ 帮你 从本地 MLflow 迁移到远程服务器
  • ✅ 结合 Kubernetes / Docker / 多用户

你现在是个人学习还是生产环境部署

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

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序