如何配置Databricks工作区,使MLflow默认存储模型到DBFS自定义位置?
配置Databricks工作区让MLflow默认存储模型工件到自定义DBFS路径
完全可以通过以下几种方式配置,实现创建新实验时自动将模型工件存储到你挂载的云存储路径:
1. 工作区全局配置(需管理员权限)
通过Databricks CLI或REST API设置工作区级的MLflow默认工件根路径,所有新创建的实验都会自动使用该路径:
- 执行CLI命令:
替换databricks workspace-conf set mlflow.experiment.default-artifact-root dbfs:/mnt/your-mounted-storage/mlflow-artifactsdbfs:/mnt/your-mounted-storage/mlflow-artifacts为你的实际挂载路径。 - 生效范围:所有新实验,已存在的实验不会受影响,需手动修改其设置。
2. 集群级配置(针对特定集群)
如果只需要特定集群上的实验使用自定义路径,可通过集群配置实现:
- 方式一:初始化脚本
在集群的初始化脚本中添加环境变量设置:export MLFLOW_DEFAULT_ARTIFACT_ROOT=dbfs:/mnt/your-mounted-storage/mlflow-artifacts - 方式二:Spark配置
在集群的「Spark配置」中添加一行:spark.databricks.mlflow.defaultArtifactRoot dbfs:/mnt/your-mounted-storage/mlflow-artifacts - 生效范围:该集群上运行的所有MLflow实验,优先级高于工作区全局配置。
3. 验证配置效果
创建新实验后,运行一段简单的MLflow代码测试:
import mlflow import mlflow.sklearn from sklearn.linear_model import LinearRegression import numpy as np # 训练简单模型并保存 X = np.array([[1, 2], [3, 4]]) y = np.array([3, 7]) model = LinearRegression() model.fit(X, y) with mlflow.start_run(): mlflow.sklearn.log_model(model, "test-model")
之后进入实验的「Artifacts」页面,确认模型存储路径是否指向你的自定义挂载位置。
注意事项
- 确保挂载路径具备所有MLflow用户的读写权限,避免存储失败
- 已存在的实验需手动修改「Artifact Location」设置,才能切换到自定义路径
内容的提问来源于stack exchange,提问作者SenseiH
相关产品推荐
相关产品推荐

