0

0

Vertex AI 实验运行列表获取完整指南

心靈之曲

心靈之曲

发布时间:2026-02-27 17:58:03

|

293人浏览过

|

来源于php中文网

原创

Vertex AI 实验运行列表获取完整指南

本文详解如何在 Vertex AI 中查询指定实验的所有运行(Runs),涵盖 SDK 编程调用、控制台操作及关键注意事项,弥补 google.cloud.aiplatform 官方库缺失原生 list_runs() 方法的空白。

本文详解如何在 vertex ai 中查询指定实验的所有运行(runs),涵盖 sdk 编程调用、控制台操作及关键注意事项,弥补 `google.cloud.aiplatform` 官方库缺失原生 `list_runs()` 方法的空白。

在 Vertex AI 的实验(Experiment)管理中,用户常需批量查看、筛选或分析某次实验下所有历史运行(Run)的元数据(如创建时间、参数、指标、状态等)。然而,截至当前版本(google-cloud-aiplatform >= 1.40.0),官方 Python SDK 并未提供类似 experiment.list_runs() 的直接接口——这是开发者普遍遇到的“功能可见但不可编程调用”的典型场景。

所幸,Google 提供了两种可靠且生产可用的替代方案:基于 REST API 的手动调用(推荐用于自动化与集成),以及通过 Google Cloud Console 可视化查看(适用于调试与快速验证)。以下重点介绍可编程方式。

✅ 方案一:调用 Vertex AI Experiments REST API(推荐)

由于 SDK 尚未封装该能力,需直接调用底层 Experiments.ListTrials 接口(注意:Vertex AI 实验中的 Run 在后端对应 Trial 资源)。需满足前提:

  • 已启用 Vertex AI API;
  • 具备 aiplatform.experiments.get 和 aiplatform.trials.list 权限(如 roles/aiplatform.user);
  • 实验已通过 aiplatform.init(experiment=...) 创建并关联了至少一个 Run。

以下是完整示例代码(使用 google-auth + requests):

MagicLight AI
MagicLight AI

AI动画视频创作平台

下载
import os
from google.auth import default
from google.auth.transport.requests import Request
import requests

def list_experiment_runs(
    experiment_name: str,
    project_id: str,
    location: str = "us-central1",
    page_size: int = 100,
) -> list:
    """
    列出指定 Vertex AI Experiment 下所有 Runs(即 Trials)
    注意:experiment_name 格式为 'projects/{pid}/locations/{loc}/experiments/{exp_name}'
    """
    # 获取认证凭据
    credentials, _ = default()
    if not credentials.valid:
        credentials.refresh(Request())

    # 构造 Trials 列表端点(实验下的 Trials 即 Runs)
    parent = f"projects/{project_id}/locations/{location}/experiments/{experiment_name}"
    url = f"https://{location}-aiplatform.googleapis.com/v1/{parent}/trials"

    headers = {
        "Authorization": f"Bearer {credentials.token}",
        "Content-Type": "application/json",
    }

    params = {"pageSize": page_size}
    runs = []

    while True:
        response = requests.get(url, headers=headers, params=params)
        response.raise_for_status()
        data = response.json()

        runs.extend(data.get("trials", []))

        # 分页处理
        next_page_token = data.get("nextPageToken")
        if not next_page_token:
            break
        params["pageToken"] = next_page_token

    return runs

# 使用示例
if __name__ == "__main__":
    runs = list_experiment_runs(
        experiment_name="my-experiment",
        project_id="my-gcp-project",
        location="us-central1"
    )
    for run in runs[:5]:  # 打印前5个 Run 的基本信息
        print(f"Run ID: {run.get('name')}")
        print(f"  State: {run.get('state')}")
        print(f"  Start Time: {run.get('startTime')}")
        print(f"  Parameters: {run.get('parameters', [])}")
        print(f"  Metrics: {run.get('finalMeasurement', {}).get('metrics', {})}\n")

⚠️ 重要说明

  • experiment_name 参数必须为完整资源路径(如 projects/my-proj/locations/us-central1/experiments/my-exp),而非仅实验名字符串;可通过 aiplatform.Experiment.list() 获取完整路径。
  • 每个 Trial 对应一次 start_run() 调用,其 finalMeasurement 字段包含 log_metrics() 记录的指标,parameters 字段包含 log_params() 记录的超参。
  • 建议配合 page_size 和分页逻辑处理大规模实验(>100 Runs)。

✅ 方案二:Google Cloud Console 可视化查看(辅助验证)

进入 Vertex AI Experiments 控制台 → 选择目标实验 → 点击「Runs」标签页,即可以表格形式查看所有 Run,并支持按状态、时间、指标范围等条件筛选与排序。此方式适合人工排查,不适用于 CI/CD 或监控告警等自动化场景。

? 总结与最佳实践

  • ❌ 不要依赖 aiplatform.Experiment 对象的任意未文档化属性尝试获取 Runs —— 官方明确未实现该功能;
  • ✅ 生产环境强烈推荐使用 REST API 方案,可轻松集成至 ML Ops 流水线、结果看板或自动归档脚本;
  • ? 调用 API 前务必校验服务账号权限,并在敏感环境中使用 Workload Identity Federation 或短期凭据;
  • ? 若未来 SDK 新增 Experiment.list_runs() 方法(可关注 GitHub issue #5823),建议平滑迁移以提升可维护性。

掌握上述方法,即可在无原生 SDK 支持的前提下,高效、可靠地完成 Vertex AI 实验运行的全生命周期可观测性建设。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

638

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

218

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1560

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

643

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

1067

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

1001

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

186

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

89

2025.08.07

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

2

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号