You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过MLflow API事后修改已注册模型版本的标签?

MLflow 注册模型版本标签修改问题答复

完全可以通过MLflow官方Python API实现你需要的已注册模型版本标签修改操作,不需要额外开发适配逻辑,对应你的月度重训练流水线场景,实现流程如下:

  • 新模型版本注册阶段:调用创建模型版本接口时直接传入初始标签即可,接口会自动将标签绑定到对应新版本上
  • 旧版本标签更新阶段:直接调用标签设置接口覆盖旧版本原有valid_to_date标签值即可,接口原生支持已存在标签的覆写,不需要先删后加

核心实现代码参考

初始化MLflow客户端:

from mlflow.tracking import MlflowClient
from datetime import datetime

# 初始化客户端,会自动读取你当前配置的MLflow跟踪服务地址
client = MlflowClient()
MODEL_NAME = "your_monthly_retrained_model"  # 替换成你自己的模型名

新模型训练完成后注册新版本,绑定初始生效标签:

current_train_date = datetime.now().strftime("%Y-%m-%d")
# 替换成你本次训练产出的模型存储uri
model_source_uri = "runs:/<your_training_run_id>/model"

# 注册新版本,设置初始生效区间
new_mv = client.create_model_version(
    name=MODEL_NAME,
    source=model_source_uri,
    tags={
        "valid_from_date": current_train_date,
        "valid_to_date": "2099-01-01"
    }
)

更新上一版本的失效日期为新版本上线日期:

# 查询当前模型所有版本,筛选出上一个正式版本
all_model_versions = client.search_model_versions(f"name='{MODEL_NAME}'")
prev_version = sorted(
    [v for v in all_model_versions if int(v.version) != int(new_mv.version)],
    key=lambda x: int(x.version),
    reverse=True
)[0]

# 直接覆写上一版本的valid_to_date标签值
client.set_model_version_tag(
    name=MODEL_NAME,
    version=prev_version.version,
    key="valid_to_date",
    value=current_train_date
)

落地注意事项

  • 日期标签统一使用YYYY-MM-DD格式的字符串存储,不要使用1-1-2099这类月、日不带前导零的格式,否则字符串排序逻辑会出错,后续按时间过滤模型版本时会出现匹配错误
  • 后续做历史数据回填时,不需要拉取全量模型版本遍历匹配,直接在search_model_versions接口里传入标签过滤条件即可,例如要匹配2024年5月20日生效的模型,过滤条件写为valid_from_date <= '2024-05-20' AND valid_to_date > '2024-05-20'就能直接拿到对应版本
  • 如果需要给版本打其他自定义标签,同样使用set_model_version_tag接口即可,单版本的标签数量没有硬性限制

内容的提问来源于stack exchange,提问作者jswtraveler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:33:35