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

调用mlflow.set_experiment()报Enum ErrorCode无403值错误,求原因

问题原因与解决方法

核心原因

这个报错的本质是请求被Databricks MLflow服务拒绝(HTTP 403状态码),但旧版本的MLflow SDK没有将403状态码纳入ErrorCode枚举类,导致无法解析错误,抛出了枚举值不存在的异常。具体触发场景通常有以下几种:

  • 权限不足:你的Databricks账号没有目标实验的创建权限(实验不存在时)或读写权限(实验已存在时)。
  • 版本不兼容:本地使用的MLflow SDK、Databricks Connect版本与Databricks集群上的MLflow服务版本不匹配,旧版本SDK不支持处理403错误码。
  • 认证失效:Databricks Connect的配置信息(如token、集群ID)不正确或已过期,导致请求被拒绝。

解决步骤

1. 检查并修复权限

登录Databricks workspace,找到目标实验(或要创建的实验路径):

  • 如果实验已存在:确认你的账号被赋予了编辑或管理权限。
  • 如果实验不存在:确认你的账号有在对应路径下创建实验的权限(可联系Workspace管理员配置)。

2. 同步MLflow与Databricks Connect版本

确保本地安装的依赖版本与集群一致:

# 先查看集群上的MLflow版本,再安装对应版本
pip install mlflow==<集群MLflow版本>
pip install databricks-connect==<集群Databricks Runtime版本>

3. 验证Databricks Connect认证

执行以下命令测试连接有效性,确保token和集群配置正确:

databricks-connect test

如果认证失败,重新配置Databricks Connect:

databricks-connect configure

4. 手动处理实验(替代方案)

如果mlflow.set_experiment()仍报错,可改用MlflowClient手动管理实验,更清晰地排查权限问题:

# 先尝试获取实验,不存在则创建
try:
    experiment = client.get_experiment_by_name(experiment_name)
    if experiment is None:
        # 创建实验(需要对应路径的创建权限)
        experiment_id = client.create_experiment(experiment_name)
    else:
        experiment_id = experiment.experiment_id
    # 设置实验ID
    mlflow.set_experiment(experiment_id=experiment_id)
except Exception as e:
    print(f"实验操作失败: {str(e)}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:45:41