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

mlflow server:--default-artifact-root与--artifacts-destination的差异及优先级

MLflow --default-artifact-root 与 --artifacts-destination:核心区别及优先级

一、两个选项的设计初衷(核心差异)

这两个参数对应MLflow追踪服务器的两种artifact存储模式,各司其职:

1. --default-artifact-root:为新实验指定默认artifact根

  • 作用:给所有新建实验设置默认的artifact存储位置,不依赖服务器是否托管artifact传输流程。
  • 适用场景:
    • 使用SQL类后端(如PostgreSQL)时必须指定——因为SQL后端仅存储元数据,无法保存实际的artifact文件。
    • 服务器关闭artifact代理(添加--no-serve-artifacts参数)时,客户端会直接将artifacts上传到该参数指定的URI(比如你示例中的S3桶),服务器不参与artifact的传输过程。
  • 注意:该参数不会修改已创建实验的artifact配置。

2. --artifacts-destination:服务器代理模式下的实际存储地

  • 作用:仅当服务器开启artifact代理(默认开启,除非添加--no-serve-artifacts),且实验的artifact根为mlflow-artifacts:/或HTTP类URI时生效,是服务器用来解析上传/下载请求的实际存储位置。
  • 适用场景:
    • 希望客户端通过服务器代理访问artifacts(无需客户端直接持有存储服务的凭证)时,客户端使用mlflow-artifacts:/作为artifact根,服务器会将实际数据存储到该参数指定的位置(比如示例中的S3桶)。
  • 本质:它是服务器代理功能的"后端存储配置",和客户端直接指定的artifact根无关,只处理通过代理流转的artifact请求。

你提供的两个示例正好对应这两种模式:

  • 第一个示例用了--no-serve-artifacts:客户端直接上传到--default-artifact-root的S3桶,--artifacts-destination在此场景下无效。
  • 第二个示例未加--no-serve-artifacts:服务器开启代理,客户端用mlflow-artifacts:/作为artifact根,实际数据存在--artifacts-destination的S3桶,无需客户端管理S3凭证。

二、同时指定时的优先级规则

同时设置两个参数时,优先级取决于服务器的运行模式:

  1. 服务器开启artifact代理(默认模式):
    • 如果实验使用默认的mlflow-artifacts:/作为artifact根,实际存储位置由--artifacts-destination决定,--default-artifact-root仅负责将新实验的artifact根默认设为mlflow-artifacts:/。
  2. 服务器关闭artifact代理(--no-serve-artifacts):
    • --artifacts-destination完全失效,客户端直接使用--default-artifact-root指定的URI存储artifacts。
  3. 实验手动配置了专属artifact根:
    • 无论上述两个参数如何设置,都会优先使用实验自身配置的artifact根。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:25:24