Vertex AI TensorBoard を設定する

Vertex AI TensorBoard を設定するには、以下の手順が必要です。

  1. 必要な権限を持つサービス アカウントを作成する
  2. Vertex AI TensorBoard のログを保存する Cloud Storage バケットを作成する
  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"
    

Vertex AI TensorBoard のログを保存する Cloud Storage バケットを作成する

トレーニング スクリプトが生成する Vertex AI TensorBoard のログを保存するには、Cloud Storage バケットが必要です。バケットがマルチリージョンやデュアルリージョン以外のリージョンで、次のリソースが同じリージョンに存在している必要があります。

  • Cloud Storage バケット
  • Vertex AI Training ジョブ
  • 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 インスタンスが存在する必要があります。選択肢は 2 つです。デフォルトのインスタンスを使用することも、手動で作成することもできます。1 つのプロジェクトとリージョン内に複数のインスタンスを作成できますが、ほとんどのユーザーは 1 つのインスタンスのみが必要です。

デフォルトの Vertex AI TensorBoard インスタンスを使用する

Vertex AI Experiments を初期化すると、デフォルトの TensorBoard インスタンスが自動的に作成されます。このバッキング TensorBoard は Vertex AI Experiments に関連付けられており、後続のすべての Vertex AI Experiments の実行で使用されます。tensorboard_resource_name はテストから直接取得できます。これは Vertex AI TensorBoard の使用を開始する最も簡単な方法であり、ほとんどのユーザーの要望にかなうはずです。

Vertex AI SDK for Python

デフォルト インスタンスで Vertex AI SDK for Python を使用して Vertex AI TensorBoard テストを作成します。テストから tensorboard_resource_name を取得します。Vertex AI SDK リファレンス ドキュメントの initExperiment をご覧ください。

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 Experiment の初期化、テスト実行の開始、トレーニング コードの構成時に直接指定できます。

Vertex AI SDK for Python

Vertex AI SDK for Python を使用して 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 テストを削除するには、テストを削除するをご覧ください。

Vertex AI SDK for Python

Vertex AI SDK for Python を使用して 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

TensorBoard リソース名は、gcloud CLI または Vertex AI SDK を使用して作成時にログメッセージに出力されるか、プレースホルダに適切な値を指定して作成できます。

Vertex AI SDK for Python

TensorBoard リソース名は、Vertex AI SDK を使用して Vertex AI Experiments から取得できます。

Python

from google.cloud import aiplatform


def get_experiment_backing_tensorboard_sample(
    experiment_name: str,
    project: str,
    location: str,
):
    backing_tensorboard = aiplatform.Experiment(
        project=project,
        location=location,
        experiment_name=experiment_name
    ).get_backing_tensorboard_resource()

    return backing_tensorboard.name

  • experiment_name: テストの名前。
  • project: テストの PROJECT_ID
  • location: テストが配置されているロケーション。

TensorBoard インスタンス ID

TensorBoard インスタンス ID は、生成され、TensorBoard インスタンスに関連付けられた ID 値です。TENSORBOARD_INSTANCE_ID を確認するには、Google Cloud コンソールで [テスト] ページの [Vertex AI] セクションに移動し、[TensorBoard インスタンス] タブを選択します。

インスタンス ID は、TensorBoard リソース名から取得することもできます。 TensorBoard ID