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

MLFlow调用API无法查询实验对应run列表,如何通过实验id获取run id列表

Search Runs返回空的常见原因

  • 请求方法错误:Search Runs API仅支持POST请求,使用GET方式调用会忽略所有传入参数,大概率返回空结果
  • 参数格式错误:experiment_ids必须传入数组格式,哪怕仅查询单个实验,也要将ID放在数组中传递
  • 过滤条件限制:默认仅返回ACTIVE状态的run,已删除、归档状态的run会被默认过滤;如果额外配置了时间、标签、参数等过滤条件,也可能导致匹配结果为空
  • 分页参数限制:默认单页返回的最大条目数有限,若实验下run数量超过上限,未配置分页参数会只返回第一页结果,甚至部分场景下配置错误会返回空

正确获取指定实验下所有run ID的方法

方法1:使用MLFlow Python SDK(推荐)

import mlflow

# 配置MLFlow跟踪服务地址
mlflow.set_tracking_uri("http://localhost:5000")

# 查询实验0下的所有run,包含非活跃状态的run
runs_df = mlflow.search_runs(
    experiment_ids=["0"],
    run_view_type=mlflow.entities.ViewType.ALL,
    max_results=1000
)

# 提取run ID列表
run_id_list = runs_df["run_id"].tolist()

如果实验下run总数超过1000,SDK会自动处理分页拉取全量数据,无需额外配置。

方法2:直接调用REST API

调用地址为 http://localhost:5000/api/2.0/mlflow/runs/search,必须使用POST方法,请求头指定Content-Type: application/json,请求体示例如下:

{
  "experiment_ids": ["0"],
  "run_view_type": "ALL",
  "max_results": 1000
}

请求成功后,返回结果的runs数组中每个对象的info.run_id字段即为对应run的ID。如果返回结果中存在next_page_token字段,说明还有未拉取的run,下次请求时将该字段值作为page_token参数传入即可拉取下一页数据,直到返回结果无next_page_token即可拿到全量run ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:57:04