[ PROMPT_NODE_22680 ]
model-registry
[ SKILL_DOCUMENTATION ]
# 模型注册表指南
MLflow 模型注册表的完整指南,用于版本控制、生命周期管理和协作。
## 目录
- 什么是模型注册表
- 注册模型
- 模型版本
- 阶段转换
- 模型别名(现代方法)
- 搜索模型
- 模型注释
- 协作工作流
- 最佳实践
## 什么是模型注册表
模型注册表是一个集中式模型存储库,用于管理 MLflow 模型的完整生命周期。
**主要功能:**
- **版本控制**:自动版本递增 (v1, v2, v3...)
- **阶段**:无、Staging(预发布)、Production(生产)、Archived(归档)
- **别名**:champion(冠军)、challenger(挑战者)、latest(最新)(现代方法)
- **注释**:描述、标签、元数据
- **血缘**:跟踪哪些运行产生了模型
- **协作**:团队范围的模型治理
- **部署**:生产模型的单一事实来源
**使用场景:**
- 模型审批工作流
- A/B 测试(冠军 vs 挑战者)
- 生产部署跟踪
- 模型性能监控
- 合规性审计
## 注册模型
### 训练期间注册
python
import mlflow
import mlflow.sklearn
with mlflow.start_run():
model = train_model()
# 一步完成记录和注册
mlflow.sklearn.log_model(
model,
"model",
registered_model_name="product-classifier" # 创建或更新
)
### 训练后注册
python
from mlflow.tracking import MlflowClient
client = MlflowClient()
# 从实验获取运行 ID
run_id = "abc123"
# 从运行中注册模型
model_uri = f"runs:/{run_id}/model"
result = mlflow.register_model(
model_uri,
"product-classifier"
)
print(f"模型名称: {result.name}")
print(f"版本: {result.version}")
### 带签名注册
python
from mlflow.models.signature import infer_signature
with mlflow.start_run():
model = train_model()
# 推断签名
signature = infer_signature(X_train, model.predict(X_train))
# 带签名注册
mlflow.sklearn.log_model(
model,
"model",
signature=signature,
registered_model_name="product-classifier"
)
## 模型版本
### 自动版本控制
python
# 首次注册:创建版本 1
with mlflow.start_run():
model_v1 = train_model()
mlflow.sklearn.log_model(model_v1, "model", registered_model_name="my-model")
# 结果:my-model 版本 1
# 第二次注册:创建版本 2
with mlflow.start_run():