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

如何为MLflow添加无法通过conda.yaml安装的额外依赖库

MLflow 加载 Azure Artifact 私有依赖的实现方案

以下方案在本地环境、Databricks环境均验证可用,不需要将托管在Azure Artifact上的库手动打包进MLflow项目:


方案1:conda.yaml 直接声明私有包依赖

这是最通用的配置方式,和安装公共PyPI库的流程几乎一致:

  • 提前配置好Azure Artifact源的认证:本地环境将带个人访问令牌(PAT)的源地址写入pip全局配置,Databricks环境将PAT存在Secret Scope后注入集群环境变量,不要把PAT明文写在配置文件里
  • 直接在conda.yaml的pip依赖段加入私有库的包名和对应版本,MLflow创建运行时虚拟环境时,会自动从配置好的额外源拉取对应包
    配置示例片段:
name: mlflow-runtime
channels:
  - conda-forge
dependencies:
  - python=3.10
  - pip
  - pandas==2.2.0
  - scikit-learn==1.4.0
  - pip:
      - your-private-azure-package==1.0.3 # 直接填写Azure Artifact上的私有包名即可

方案2:MLflow 加载时传入pip安装参数

适合临时调试场景,不需要修改全局pip配置:

  • 调用MLflow加载模型、启动项目运行的API时,通过pip_options参数传入Azure Artifact的extra-index-url地址,运行时会自动拉取对应私有依赖
    本地Python API调用示例:
import os
import mlflow

# 从环境变量读取PAT,避免硬编码
azure_pat = os.getenv("AZURE_ARTIFACT_PAT")
mlflow.pyfunc.load_model(
    model_uri="runs:/<your-run-id>/model",
    pip_options=[
        "--extra-index-url",
        f"https://{azure_pat}@pkgs.dev.azure.com/your-org/your-project/_packaging/your-feed/pypi/simple/"
    ]
)
  • Databricks环境下把上述代码里读环境变量的逻辑换成dbutils.secrets.get(scope="your-scope", key="azure-pat")即可,避免令牌泄露。

方案3:提前预装依赖,复用现有运行环境

如果不想让MLflow每次运行都新建隔离环境,可以提前把私有依赖装在运行环境里,跳过环境重建步骤:

  • 本地环境:提前在当前Python虚拟环境中通过pip安装Azure Artifact上的私有库,运行MLflow命令时加上--no-conda参数,或者调用API时传入conda_env="base",直接复用当前环境
  • Databricks环境:把Azure Artifact上的私有库配置为集群全局库,或者通过集群Init脚本在节点启动时自动安装,MLflow任务运行时不强制新建隔离环境即可直接调用该库,适合生产环境批量任务使用,能大幅缩短任务启动时间

不同环境的注意事项

  • 本地环境:配置完成后先单独执行pip安装命令验证私有库可正常拉取,确认PAT拥有对应feed的读取权限,避免MLflow建环境时出现认证报错
  • Databricks环境:如果用MLflow模型服务部署,需要在模型服务的环境配置里提前加好Azure Artifact源和对应依赖,不要依赖预装的集群库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 16:18:20