[ PROMPT_NODE_22676 ]
mlflow
[ SKILL_DOCUMENTATION ]
# MLflow:机器学习生命周期管理平台
## 何时使用此技能
当您需要执行以下操作时,请使用 MLflow:
- **跟踪机器学习实验**:记录参数、指标和产出物
- **管理模型注册表**:进行版本控制和阶段转换
- **部署模型**:发布到各种平台(本地、云端、服务化)
- **复现实验**:通过项目配置进行复现
- **比较模型版本**:对比模型版本和性能指标
- **协作**:通过团队工作流进行机器学习项目协作
- **集成**:与任何机器学习框架集成(框架无关)
**用户**:20,000+ 组织 | **GitHub Stars**:23k+ | **许可证**:Apache 2.0
## 安装
bash
# 安装 MLflow
pip install mlflow
# 安装额外组件
pip install mlflow[extras] # 包含 SQLAlchemy, boto3 等
# 启动 MLflow UI
mlflow ui
# 访问地址 http://localhost:5000
## 快速入门
### 基础跟踪
python
import mlflow
# 开启一个运行
with mlflow.start_run():
# 记录参数
mlflow.log_param("learning_rate", 0.001)
mlflow.log_param("batch_size", 32)
# 您的训练代码
model = train_model()
# 记录指标
mlflow.log_metric("train_loss", 0.15)
mlflow.log_metric("val_accuracy", 0.92)
# 记录模型
mlflow.sklearn.log_model(model, "model")
### 自动记录 (Autologging)
python
import mlflow
from sklearn.ensemble import RandomForestClassifier
# 启用自动记录
mlflow.autolog()
# 训练(自动记录)
model = RandomForestClassifier(n_estimators=100, max_depth=5)
model.fit(X_train, y_train)
# 指标、参数和模型会自动记录!
## 核心概念
### 1. 实验 (Experiments) 和 运行 (Runs)
**实验**:相关运行的逻辑容器
**运行**:机器学习代码的单次执行(包含参数、指标、产出物)
python
import mlflow
# 创建/设置实验
mlflow.set_experiment("my-experiment")
# 开启一个运行
with mlflow.start_run(run_name="baseline-model"):
# 记录参数
mlflow.log_param("model", "ResNet50")
mlflow.log_param("epochs", 10)
# 训练
model = train()
# 记录指标
mlflow.log_metric("accuracy", 0.95)
# 记录模型
mlflow.pytorch.log_model(model, "model")
# 运行 ID 会自动生成
print(f"Run ID: {mlflow.active_run().info.run_id}")
### 2. 记录参数
python
with mlflow.start_run():
# 单个参数
mlflow.log_param("learning_rate", 0.001)
# 多个参数
mlflow.log_params({
"batch_size": 32,
"epochs": 50,
"optimizer":