设置 Vertex AI TensorBoard

设置 Vertex AI TensorBoard 需要具备以下条件:

  1. 创建具有所需权限的服务账号
  2. 创建 Cloud Storage 存储桶以存储 Vertex AI TensorBoard 日志
  3. 创建 Vertex AI TensorBoard 实例

创建具有所需权限的服务账号

如需将 Vertex AI TensorBoard 与自定义训练进行集成,您需要关联一个服务账号

  1. 创建服务账号:

    gcloud --project=PROJECT_ID iam service-accounts create USER_SA_NAME
    

    请替换以下内容:

    • PROJECT_ID:您要在其中创建服务账号的项目的 ID。

    • USER_SA_NAME:您要创建的服务账号的唯一名称。

  2. Vertex AI Training 服务会使用该新的服务账号来访问 Google Cloud 服务和资源。如果需要,请使用以下命令授予相应角色:

    SA_EMAIL="USER_SA_NAME@PROJECT_ID.iam.gserviceaccount.com"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member="serviceAccount:${SA_EMAIL}" \
       --role="roles/storage.admin"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member="serviceAccount:${SA_EMAIL}" \
       --role="roles/aiplatform.user"
    

创建 Cloud Storage 存储桶以存储 Vertex AI TensorBoard 日志

您需要使用 Cloud Storage 存储桶来存储训练脚本生成的 Vertex AI TensorBoard 日志。该存储桶必须是单区域(非多区域或双区域),并且以下资源必须位于同一区域:

  • Cloud Storage 存储桶
  • Vertex AI 训练作业
  • Vertex AI TensorBoard 实例

您可以使用现有存储桶,而不是按照此处所述的存储桶创建步骤执行操作。使用现有存储桶时,该存储桶的位置必须是在其中创建 Vertex AI TensorBoard 实例的位置。

GCS_BUCKET_NAME="PROJECT_ID-tensorboard-logs-LOCATION_ID"
gcloud storage buckets create "gs://${GCS_BUCKET_NAME}" --location=LOCATION_ID

LOCATION_ID 替换为在其中创建 Vertex AI TensorBoard 实例的位置,例如 us-central1

创建 Vertex AI TensorBoard 实例

必须先存在 Vertex AI TensorBoard 实例(该实例是存储 Vertex AI TensorBoard 实验的区域化资源),然后才能直观呈现实验。具体有两种方案可供选择。您可以使用默认实例,也可以手动创建一个。您可以在项目和区域中创建多个实例,但大多数用户只需要单个实例。

使用默认 Vertex AI TensorBoard 实例

初始化 Vertex AI 实验时,系统会自动创建默认的 TensorBoard 实例。此支持性 TensorBoard 与 Vertex AI 实验关联,并与所有后续 Vertex AI Experiments 运行搭配使用。这是 Vertex AI TensorBoard 的最简单入门方式,应满足大多数用户的需求。

Python 版 Vertex AI SDK

使用 Vertex AI SDK for Python 通过默认实例创建 Vertex AI TensorBoard 实验。请参阅 Vertex AI SDK 参考文档中的 init

Python

from google.cloud import aiplatform


def create_experiment_default_tensorboard_sample(
    experiment_name: str,
    experiment_description: str,
    project: str,
    location: str,
):
    aiplatform.init(
        experiment=experiment_name,
        experiment_description=experiment_description,
        project=project,
        location=location,
    )

    tensorboard = aiplatform.Experiment(experiment_name).get_backing_tensorboard_resource()
    print(f"Tensorboard resource name: {tensorboard.name}")

experiment_name:str,experiment_description:str,project:str,location:str,
  • experiment_name:实验的名称。
  • experiment_description:实验的说明。
  • project:要在其中创建 TensorBoard 实例的项目的 PROJECT_ID
  • location:要在其中创建 TensorBoard 实例的位置。Vertex AI TensorBoard 位置是区域级位置。请务必选择支持 Vertex AI TensorBoard 的区域

手动创建 Vertex AI TensorBoard 实例

您可以手动创建 Vertex AI TensorBoard。这对于更适合 Google Cloud 控制台的用户、需要启用 CMEK 的 TensorBoard(请参阅 CMEK)的用户或希望使用多个 TensorBoard 的用户非常有用。然后,您可以在初始化 Vertex AI 实验、启动实验运行或配置训练代码时直接指定此实例。

Python 版 Vertex AI SDK

使用 Python 版 Vertex AI SDK 创建 Vertex AI TensorBoard 实例。

Python

def create_tensorboard_sample(
    project: str,
    location: str,
    display_name: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    tensorboard = aiplatform.Tensorboard.create(
        display_name=display_name,
        project=project,
        location=location,
    )

    aiplatform.init(
        project=project,
        location=location,
        experiment_tensorboard=tensorboard
    )

    return tensorboard

  • project:要在其中创建 TensorBoard 实例的项目的 PROJECT_ID
  • display_name:Vertex AI TensorBoard 实例的描述性名称。
  • location:要在其中创建 TensorBoard 实例的位置。Vertex AI TensorBoard 位置是区域级位置。请务必选择支持 Vertex AI TensorBoard 的区域

Google Cloud CLI

使用 Google Cloud CLI 创建 Vertex AI TensorBoard 实例。

  1. 安装 gcloud CLI
  2. 通过运行 gcloud init 初始化 Google Cloud CLI。
  3. 如需确认安装,请探索以下命令。
     gcloud ai tensorboards --help 

    这些命令包括 createdescribelistupdatedelete。如果需要,您可以先按照这些步骤设置项目和位置的默认值,然后再继续操作。
  4. 向 gcloud CLI 进行身份验证。
    gcloud auth application-default login
  5. 通过提供项目名称和显示名来创建 Vertex AI TensorBoard 实例。第一次在项目中执行此步骤时,可能需要几分钟时间才能完成。记下将在以下命令结束时输出的 Vertex AI TensorBoard 实例名称(例如 projects/123/locations/us-central1/tensorboards/456)。您将在后续步骤中用到此名称。
    gcloud ai tensorboards create --display-name DISPLAY_NAME \
           --project PROJECT_NAME
         

    替换以下内容:
    • PROJECT_NAME:要在其中创建 TensorBoard 实例的项目。
    • DISPLAY_NAME:TensorBoard 实例的描述性名称。

Google Cloud 控制台

如果您希望对 Vertex AI TensorBoard 数据进行加密,则必须在创建实例时启用 CMEK 密钥

请按照以下步骤使用 Google Cloud 控制台创建已启用 Vertex AI TensorBoard CMEK 的实例。

  1. 如果您刚开始接触 Vertex AI 或要启动新项目,请设置项目和开发环境
  2. 在 Google Cloud 控制台的 Vertex AI 部分中,转到实验页面。

    转到“实验”页面
  3. 转到 TensorBoard 实例标签页。
  4. 点击页面顶部的创建
  5. 区域下拉列表中选择一个位置。
  6. (可选)添加说明。
  7. (可选)在加密下,选择客户管理的加密密钥 (CMEK),然后选择客户管理的密钥。
  8. 点击创建以创建 TensorBoard 实例。

创建 TensorBoard 实例

Terraform

以下示例使用 google_vertex_ai_tensorboard Terraform 资源创建未加密的 Vertex AI TensorBoard 实例。

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

Terraform

resource "google_vertex_ai_tensorboard" "default" {
  display_name = "vertex-ai-tensorboard-sample-name"
  region       = "us-central1"
}

删除 TensorBoard 实例

删除 TensorBoard 实例会删除该 TensorBoard 以及所有关联的 TensorBoard 实验和 TensorBoard 运行。与实例关联的 Vertex AI Experiments 不会删除。

如需删除 Vertex AI Experiments 及其关联的 Vertex AI TensorBoard 实验,请参阅删除实验

Python 版 Vertex AI SDK

使用 Python 版 Vertex AI SDK 删除 Vertex AI TensorBoard 实例。

Python

def delete_tensorboard_instance_sample(
    tensorboard_resource_name: str,
    project: str,
    location: str,
):
    aiplatform.init(project=project, location=location)

    tensorboard = aiplatform.Tensorboard(
        tensorboard_name=tensorboard_resource_name
    )

    tensorboard.delete()

  • tensorboard_resource_name:提供 TensorBoard 资源名称
  • project:您的 TensorBoard 实例所在的 PROJECT_ID
  • location:TensorBoard 实例所在的位置。

Google Cloud 控制台

请按照以下步骤使用 Google Cloud 控制台删除 Vertex AI TensorBoard 实例。

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,转到实验页面。

    转到“实验”页面
  2. 选择 TensorBoard 实例标签页。系统会显示 TensorBoard 实例列表。
  3. 选择 ,并点击删除

删除 TensorBoard 实例

相关术语

许多示例中都提及了这些术语:“TensorBoard 资源名称”和“TensorBoard 实例 ID”。

TensorBoard 资源名称

TensorBoard 资源名称用于完全标识 Vertex AI TensorBoard 实例。其格式如下所示:

projects/PROJECT_ID_OR_NUMBER/locations/REGION/tensorboards/TENSORBOARD_INSTANCE_ID

使用 gcloud CLI 或 Vertex AI SDK 创建 TensorBoard 资源名称时,它会输出到日志消息,或者通过为占位符提供适当的值来创建。

TensorBoard 实例 ID

TensorBoard 实例 ID 是与 TensorBoard 实例关联的生成的 ID 值。如需查找 TENSORBOARD_INSTANCE_ID,请转到 Google Cloud 控制台的 Vertex AI 部分中的“实验”页面,然后选择 TensorBoard 实例标签页。TensorBoard ID