如何搭建MLflow实验跟踪

GPU
小华
2026-07-22

下面给你一个从零开始搭建 MLflow 实验跟踪(Experiment Tracking)的完整指南,涵盖本地、服务器和常见集成场景,适合个人和团队使用。

一、MLflow 是什么?

MLflow 是一个开源的机器学习生命周期管理工具,核心功能包括:

  • Experiment Tracking(实验跟踪):记录参数、指标、模型、日志
  • Model Registry(模型注册)
  • Model Serving(模型部署)
  • Projects(可复现训练)

本文重点讲:实验跟踪(Tracking)

二、安装 MLflow

1️⃣ 安装(推荐 Python ≥ 3.8)

pip install mlflow

如果需要可视化 UI:

pip install mlflow matplotlib scikit-learn

三、快速入门(本地模式)

1️⃣ 启动 MLflow UI

mlflow ui

访问:

http://127.0.0.1:5000

2️⃣ 记录一次实验

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_rf_experiment")
with mlflow.start_run():
# 参数
params = {
"n_estimators": 100,
"max_depth": 5
}
mlflow.log_params(params)
# 数据
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 = RandomForestClassifier(**params)
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}")

✅ 结果可在 UI 中查看:

  • 参数
  • 指标
  • 模型文件(artifacts)

四、MLflow Tracking 架构

+-------------------+
|  Training Code    |
|  (mlflow.log_*)   |
+--------+----------+
|
v
+-------------------+
| Tracking Server   |
| (UI + API)        |
+--------+----------+
|
v
+-------------------+
| Backend Store     |
| (SQLite / MySQL)  |
+-------------------+
|
v
+-------------------+
| Artifact Store    |
| (Local / S3 / OSS)|
+-------------------+

五、搭建 MLflow Tracking Server(推荐团队使用)

✅ 方式一:本地服务器(适合小团队)

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

访问:

http://<服务器IP>:5000

✅ 方式二:使用远程存储(生产推荐)

1️⃣ 后端存储(实验元数据)

  • SQLite(测试)
  • MySQL / PostgreSQL(生产)
--backend-store-uri mysql+pymysql://user:pwd@localhost/mlflow

2️⃣ Artifact 存储(模型文件)

  • 本地目录
  • S3
  • MinIO
  • OSS

示例(S3):

--default-artifact-root s3://my-mlflow-bucket/

六、代码中连接 Tracking Server

import mlflow
mlflow.set_tracking_uri("http://127.0.0.1:5000")
mlflow.set_experiment("my_experiment")
with mlflow.start_run():
mlflow.log_param("lr", 0.01)
mlflow.log_metric("loss", 0.123)

七、常见跟踪内容

类型API
参数mlflow.log_param()
多参数mlflow.log_params()
指标mlflow.log_metric()
模型mlflow.sklearn.log_model()
文件mlflow.log_artifact()
标签mlflow.set_tag()

八、与常见框架集成

✅ PyTorch / TensorFlow

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

✅ AutoML / Hyperparameter Tuning

mlflow.log_params(best_params)
mlflow.log_metric("best_score", best_score)

九、MLflow + Docker(可选)

FROM python:3.10
RUN pip install mlflow
EXPOSE 5000
CMD ["mlflow", "server", "--host", "0.0.0.0"]

十、最佳实践 ✅

✅ 每个项目一个 experiment
✅ 实验名 + 日期 + 版本
✅ 记录:

  • 数据版本
  • 超参数
  • 随机种子

✅ 模型 + 指标一起保存

✅ 生产环境使用 MySQL + S3

十一、下一步你可以做什么?

  • ✅ 模型注册(Model Registry)
  • ✅ 自动记录(autolog)
  • ✅ CI/CD 集成
  • ✅ 多用户权限管理(MLflow + Nginx)

如果你愿意,我可以:

  • ✅ 给你一个 完整项目模板
  • ✅ 帮你 部署到服务器 / 云
  • ✅ 对比 MLflow vs Weights & Biases
  • ✅ 结合 PyTorch / XGBoost / LLM

你现在是个人使用还是团队部署

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

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序