MLflow切换模型阶段时目标阶段内已有模型的处理方法
MLflow模型阶段转换时实现同阶段单版本留存的方法
使用MLflow客户端执行模型阶段转换的基础代码如下:
client = MlflowClient() client.transition_model_version_stage( name="sk-learn-random-forest-reg-model", version=3, stage="Production" )
上述默认写法存在固定特性:转换操作不会对目标阶段内已存在的模型版本做任何修改。举例来说,如果版本2当前处于Production阶段,执行上述代码将版本3也切换到Production阶段后,版本2仍会保留Production阶段标签,最终出现同一阶段存在多个模型版本的情况。
如果要实现和Databricks UI原生逻辑一致的效果——即同一时间指定阶段内仅允许存在一个版本的模型,只需要在调用方法时增加archive_existing_versions=True参数即可。
该参数开启后,系统会在将目标版本切换到指定阶段前,自动把该阶段下所有已存在的其他模型版本归档到Archived阶段,从根本上避免多版本并存的问题。
修改后的可直接复用的代码如下:
client = MlflowClient() client.transition_model_version_stage( name="sk-learn-random-forest-reg-model", version=3, stage="Production", archive_existing_versions=True )
参数行为说明:
archive_existing_versions=False(默认值):不改动目标阶段已有版本,允许同阶段多版本共存archive_existing_versions=True:自动归档同阶段所有历史版本,保证阶段内仅当前转换的版本生效
Databricks UI对应的原生功能界面参考:
内容的提问来源于stack exchange,提问作者Minura Punchihewa
相关产品推荐
相关产品推荐

