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

如何配置Mlflow的SQLite后端存储与Azure Blob Storage制品存储

MLflow + Azure Data Lake Storage Gen2 完整配置步骤

一、基础概念澄清

先明确两个容易混淆的概念,解答你对依赖安装要求的疑问:

  • 服务端:运行mlflow server命令启动跟踪服务的设备
  • 客户端:运行训练代码、执行mlflow run/kedro run命令提交任务的设备
    要求两端都安装依赖的原因是:MLflow的制品上传是客户端直接写入Azure存储,不会经过跟踪服务器中转,因此两端都需要存储访问依赖和权限凭证。
    azure-identity的作用是实现无密钥身份认证,比如通过Azure CLI登录、托管身份等方式获取存储访问权限,避免硬编码密钥泄露,个人使用场景直接用连接字符串即可,不需要额外配置。

二、前置依赖安装

在服务端和客户端的Python环境中分别安装以下包(如果服务端和客户端是同一台本地电脑,在同一个环境安装一次即可):

pip install mlflow azure-storage-blob azure-identity

三、修正并配置环境变量

你之前的核心错误是AZURE_STORAGE_ACCESS_KEY配置错误,该变量应该存储Azure存储账户的密钥字符串,不是Blob存储路径,实际使用时只需配置连接字符串一个变量即可,避免多个凭证冲突。
Windows 10环境变量配置步骤:

  1. 按下Win+R输入sysdm.cpl打开系统属性面板,切换到「高级」选项卡,点击「环境变量」
  2. 在用户变量或系统变量区域点击「新建」:
    • 变量名:AZURE_STORAGE_CONNECTION_STRING
    • 变量值:从Azure门户存储账户→访问密钥页面复制的完整连接字符串,格式为DefaultEndpointsProtocol=https;AccountName=你的存储账户名;AccountKey=你的访问密钥;EndpointSuffix=core.windows.net
  3. 删除你之前错误配置的AZURE_STORAGE_ACCESS_KEY变量
  4. 配置完成后重启所有打开的命令提示符/终端窗口,新的环境变量才会生效

四、后端存储配置

  1. 手动创建本地SQLite存储的文件夹路径:C:\sqlite\db\
  2. 不需要提前创建mlruns.db文件,MLflow启动时会自动生成初始化

五、启动MLflow跟踪服务器

打开新的终端窗口,执行以下启动命令(注意路径用正斜杠避免转义问题):

mlflow server --backend-store-uri sqlite:///C:/sqlite/db/mlruns.db --default-artifact-root wasbs://你的容器名@你的存储账户名.blob.core.windows.net/mlartifacts -h 0.0.0.0 -p 8000

启动后检查终端无报错即可,访问http://localhost:8000可以打开MLflow UI。


六、客户端运行配置

通用MLflow配置

在执行训练任务的终端中先设置跟踪服务器地址:

# Windows cmd终端
set MLFLOW_TRACKING_URI=http://localhost:8000
# PowerShell终端
$env:MLFLOW_TRACKING_URI = "http://localhost:8000"

Kedro适配配置

在Kedro项目的conf/base/mlflow.yml中修改跟踪地址配置:

tracking_uri: "http://localhost:8000"

七、功能验证

先跑一个极简测试脚本验证配置是否生效,不需要先跑Kedro任务:

import mlflow
import os

# 确认配置读取正常
print("跟踪地址:", os.getenv("MLFLOW_TRACKING_URI"))
print("存储连接字符串是否存在:", os.getenv("AZURE_STORAGE_CONNECTION_STRING") is not None)

mlflow.set_tracking_uri("http://localhost:8000")
with mlflow.start_run(run_name="azure_blob_test"):
    # 测试写入参数、指标到SQLite
    mlflow.log_param("test_params", 123)
    mlflow.log_metric("test_metric", 0.987)
    # 测试上传制品到Azure存储
    with open("test_artifact.txt", "w", encoding="utf-8") as f:
        f.write("测试制品内容")
    mlflow.log_artifact("test_artifact.txt")

print("测试完成,请打开MLflow UI查看run记录,同时检查Azure Blob的mlartifacts目录下是否生成对应run的制品文件")

常见问题排查

  • 启动服务器/运行任务无响应:首先检查Azure存储账户的防火墙设置,是否允许你本地IP访问
  • 制品无法上传:确认客户端的环境变量已经生效,重启终端后再运行任务
  • SQLite空表:确认训练代码中已经正确设置tracking_uri指向你的跟踪服务器,不是默认的本地./mlruns目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:04