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

如何将Azure Databricks工作区已注册的MLflow模型迁移到其他工作区

跨Databricks工作区MLflow模型迁移方案解答

虚拟训练脚本方案可行性

该方案完全可行,你之前下载注册失败大概率是未完整导出模型的所有元数据(包括MLmodel配置文件、依赖环境声明、输入输出schema等),仅导出了模型权重文件导致的。
你可以按照以下逻辑编写无训练的迁移脚本:

# ========== 源工作区执行:导出完整模型包 ==========
import mlflow

# 替换为你要迁移的模型名和版本号
source_model_name = "classification_v2"
source_model_version = 3

# 从源工作区注册表加载模型
model_uri = f"models:/{source_model_name}/{source_model_version}"
loaded_model = mlflow.pyfunc.load_model(model_uri)

# 导出完整模型包到本地/共享存储路径,包含所有元数据和依赖声明
mlflow.pyfunc.save_model(
    model=loaded_model,
    path="./migrated_model_package"
)

# ========== 目标工作区执行:注册模型 ==========
import mlflow

# 如果目标工作区使用Unity Catalog管理模型,先指定注册表URI
# mlflow.set_registry_uri("databricks-uc")

with mlflow.start_run(run_name="model_migration_task"):
    # 直接日志记录已导出的模型包,无需训练运算
    logged_model_info = mlflow.pyfunc.log_model(
        artifact_path="migrated_model",
        python_model="./migrated_model_package",
        registered_model_name="target_classification_v2"
    )

迁移完成后可以抽样调用模型验证推理结果和源工作区一致即可。

更规范的官方迁移方案

除了手动写迁移脚本,还有三种更适合批量、生产级迁移的规范方案:

  • 基于Databricks CLI的批量迁移:使用databricks mlflow命令组,可以批量拉取源工作区所有模型的版本、标签、阶段标记、描述等全量元数据,同步导出模型包后再批量推送到目标工作区注册,信息完整性更高,适合几十上百个模型的批量迁移场景。
  • 共享存储直连方案:如果两个工作区都挂载了同一ADLS Gen2存储账户,可直接将源工作区的模型 artifact 转存到共享存储路径,目标工作区无需下载中转,直接从共享路径加载模型注册,大模型迁移效率提升明显。
  • 跨工作区注册表授权方案:Azure Databricks支持给目标工作区的服务主体授予源工作区MLflow注册表的读取权限,配置完成后可以直接在目标工作区调用源工作区的模型URI直接注册,无需导出导入操作,是官方推荐的低代码迁移方案。

注意:所有迁移方案完成后都需要验证模型的依赖环境版本、输入输出schema、推理结果和源工作区完全一致,避免环境差异导致模型不可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:06:03