Vertex AI TensorBoard を使ってみる

テストを可視化する前に、Vertex AI TensorBoard のテストを保存するリージョン リソースとして Vertex AI TensorBoard インスタンスが存在する必要があります。1 つのプロジェクトに複数のインスタンスを作成できます(たとえば、手動で作成するか、テスト SDK でデフォルトで作成するなど)。

Vertex AI TensorBoard インスタンスを作成する

Vertex AI SDK for Python

Vertex AI SDK for Python を使用して Vertex AI TensorBoard インスタンスを作成します。

Vertex AI SDK for 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: プロジェクト ID。これらの ID は、Google Cloud コンソールの [ようこそ] ページで確認できます。
  • display_name: TensorBoard インスタンスの名前を指定します。
  • location: 使用可能なロケーションのリストをご覧ください。TensorBoard インスタンスを作成する場合は、必ず TensorBoard をサポートしているリージョンを使用してください。

Google Cloud コンソール

Google Cloud コンソールを使用して Vertex AI TensorBoard インスタンスを作成する手順は次のとおりです。

  1. Vertex AI を初めて使う場合や新しいプロジェクトを開始する場合は、プロジェクトと開発環境を設定します。
  2. Google Cloud コンソールの [Vertex AI] セクションで、[テスト] ページに移動します。

    [テスト] ページに移動
  3. [TensorBoard インスタンス] タブに移動します。
  4. ページの上部にある [作成] をクリックします。
  5. [リージョン] プルダウン リストからリージョンを選択します。
  6. 説明を追加します。(省略可)
  7. [作成] をクリックして、TensorBoard インスタンスを作成します。

TensorBoard インスタンスの作成

gcloud CLI

Google Cloud CLI を使用して Vertex AI TensorBoard インスタンスを作成します。
  1. gcloud CLI をインストールする
  2. gcloud init を実行して、Google Cloud CLI を初期化します。
  3. インストールを確認するには、コマンドを調べます。
     gcloud ai tensorboards --help 

    コマンドには createdescribelistdelete があります。先に進む前に、必要に応じてこちらの手順に沿ってプロジェクトとリージョンのデフォルト値を設定します。
    これで、Vertex AI TensorBoard インスタンスを作成できます。
  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 インスタンスのわかりやすい名前


TensorBoard のログ

Vertex AI TensorBoard には、TensorBoard ログをアップロードするための Google Cloud CLI と Vertex AI SDK for Python が用意されています。Google Cloud に接続できるすべての環境からログをアップロードできます。

仮想環境を作成する(省略可)

省略可、ただし推奨される最初の手順:

  1. Vertex AI TensorBoard アップローダ Python CLI をインストールする専用の仮想環境を作成します。
python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
  1. PATH/TO/VIRTUAL/ENVIRONMENT は、専用の仮想環境のパスに置き換えます。

Vertex AI SDK を使用して Vertex AI TensorBoard パッケージをインストールする

適切にインストールするには、アップローダに pip の最新バージョンが必要です。

pip install -U pip
pip install google-cloud-aiplatform[tensorboard]

Vertex AI TensorBoard ログをアップロードする

Vertex AI SDK for Python

継続的なモニタリング

トレーニングの開始時に aiplatform.start_upload_tb_log を呼び出します。SDK によりアップロード用の新しいスレッドが開きます。このスレッドは、ディレクトリに新しいデータがある場合でもモニタリングを継続します。トレーニングが完了したら、アップローダ スレッドを強制終了する end_upload_tb_log を呼び出します。end_upload_tb_log が呼び出されない場合、タイムアウト プランはスレッドを閉じます。

Vertex AI SDK for Python

def upload_tensorboard_log_continuously_sample(
    tensorboard_experiment_name: str,
    logdir: str,
    tensorboard_id: str,
    project: str,
    location: str,
    experiment_display_name: Optional[str] = None,
    run_name_prefix: Optional[str] = None,
    description: Optional[str] = None,
) -> None:

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

    # Continuous monitoring
    aiplatform.start_upload_tb_log(
        tensorboard_id=tensorboard_id,
        tensorboard_experiment_name=tensorboard_experiment_name,
        logdir=logdir,
        experiment_display_name=experiment_display_name,
        run_name_prefix=run_name_prefix,
        description=description,
    )
    aiplatform.end_upload_tb_log()

  • tensorboard_experiment_name: このテストの名前。
  • logdir: ローカル ファイル システムと Cloud Storage のいずれかに存在する TensorBoard ログのロケーション。
  • tensorboard_id:
    • tensorboard_id を確認するには、Google Cloud コンソールで [テスト] ページの [Vertex AI] セクションに移動し、[TensorBoard インスタンス] タブを選択します。
      [テスト] ページに移動

      TensorBoard インスタンスの作成
    設定しない場合、aiplatform.inittensorboard_id が使用されます。
  • project: プロジェクト ID。これらのプロジェクト ID は、Google Cloud コンソールの [ようこそ] ページで確認できます。
  • location: 利用可能なロケーションの一覧をご覧ください。
  • experiment_display_name: テストの表示名。
  • run_name_prefix: 存在する場合、この呼び出しによって作成されたすべての実行には、この値の先頭にそれらの名前が付けられます。
  • description: テストに割り当てる文字列の説明。

1 回限りのロギング

aiplatform.upload_tb_log を呼び出して TensorBoard ログの 1 回限りのアップロードを実行します。logdir 内の既存のデータのみがアップロードされ、その後すぐに返されます。

Vertex AI SDK for Python

def upload_tensorboard_log_one_time_sample(
    tensorboard_experiment_name: str,
    logdir: str,
    tensorboard_id: str,
    project: str,
    location: str,
    experiment_display_name: Optional[str] = None,
    run_name_prefix: Optional[str] = None,
    description: Optional[str] = None,
    verbosity: Optional[int] = 1,
) -> None:

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

    # one time upload
    aiplatform.upload_tb_log(
        tensorboard_id=tensorboard_id,
        tensorboard_experiment_name=tensorboard_experiment_name,
        logdir=logdir,
        experiment_display_name=experiment_display_name,
        run_name_prefix=run_name_prefix,
        description=description,
    )

  • tensorboard_experiment_name: この TensorBoard のテストの名前です。projects/{project}/locations/{location}/tensorboards/{tensorboard_id}
  • logdir: ローカル ファイル システムと Cloud Storage のいずれかに存在する TensorBoard ログのロケーション。
  • tensorboard_id:
    • tensorboard_id を確認するには、Google Cloud コンソールで [テスト] ページの [Vertex AI] セクションに移動し、[TensorBoard インスタンス] タブを選択します。
      [テスト] ページに移動

      TensorBoard インスタンスの作成
    設定しない場合、aiplatform.inittensorboard_id が使用されます。
  • project: プロジェクト ID。これらのプロジェクト ID は、Google Cloud コンソールの [ようこそ] ページで確認できます。
  • location: 利用可能なロケーションの一覧をご覧ください。
  • experiment_display_name: テストの表示名。
  • run_name_prefix: 存在する場合、この呼び出しによって作成されたすべての実行には、この値の先頭にそれらの名前が付けられます。
  • description: テストに割り当てる文字列の説明。
  • verbosity: 統計情報の詳細度のレベル(整数)。サポートされる値: 0 - アップロードの統計情報は出力されません。1 - データのアップロード中にアップロードの統計情報を出力します(デフォルト)。

gcloud CLI


tb-gcp-uploader --tensorboard_resource_name \
  TENSORBOARD_INSTANCE_NAME \
  --logdir=LOG_DIR \
  --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
  • TENSORBOARD_INSTANCE_NAME: インスタンス名は次の 2 つの方法で識別できます。
    • フルネームは、以前に使用した gcloud ai tensorboards create コマンドの末尾に出力されます。
    • TensorBoard インスタンスが Google Cloud コンソールを使用して作成された場合、TENSORBOARD_INSTANCE_NAMEprojects/PROJECT_ID_OR_NUMBER/locations/REGION/tensorboards/TENSORBOARD_INSTANCE_ID になります。
      • TENSORBOARD_INSTANCE_ID を確認するには、Google Cloud コンソールで [テスト] ページの [Vertex AI] セクションに移動し、[TensorBoard インスタンス] タブを選択します。
        [テスト] ページに移動

        TensorBoard インスタンスの作成
  • LOG_DIR: イベントログの場所。ローカル ファイル システムまたは Cloud Storage のいずれかになります。
  • TB_EXPERIMENT_NAME: テストの名前(例: test-experiment)。テスト名は TensorBoard リソース内で一意である必要があります。

デフォルトでは、アップロード CLI は無期限に実行され、LOG_DIR で変更をモニタリングし、新しく追加されたログをアップロードします。--one_shot=True は、この動作を無効にします。詳細については、tb-gcp-uploader --help を実行してください。

Vertex AI TensorBoard のテストを表示する

Google Cloud コンソールから Vertex AI TensorBoard テストにアクセスできます。あるいは、Vertex AI TensorBoard パッケージを使用すると、Google Cloud CLI から Vertex AI TensorBoard インスタンスへのリンクが出力されます。

Google Cloud コンソールを使用して Vertex AI TensorBoard にアクセスする

Google Cloud コンソールから次の手順を行って、Vertex AI TensorBoard テストにアクセスできます。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[テスト] ページに移動します。

    [テスト] ページに移動

  2. [テスト] タブで、テストリストをスクロールまたはフィルタリングして該当のテストを見つけます。

  3. Vertex AI TensorBoard ウェブ アプリケーション ページを開くには、テストの横にある [TensorBoard を開く] をクリックします。

TensorBoard を表示

Vertex AI TensorBoard ウェブ アプリケーション ビューが表示されます。

TensorBoard ビューが表示される

このビューへのリンクは、権限を持つ他のユーザーと共有できます。

カスタム トレーニングで Vertex AI TensorBoard を使用する場合は、[テストの追跡] ページからテストを選択します。ページの上部に [TensorBoard を開く] ボタンが表示されます。同様に、Vertex AI Pipelines で Vertex AI TensorBoard を使用している場合は、関連するコンポーネントを選択すると [TensorBoard を開く] ボタンが表示されます。

さらに、Vertex AI TensorBoard パッケージを使用する場合、Google Cloud CLI によって、テストを表示できるログの最初の数行に Vertex AI TensorBoard インスタンスへのリンクが出力されます。次に例を示します。View your TensorBoard at https://us-central1.tensorboard.googleusercontent.com/experiment/projects+123+locations+us-central1+tensorboards+4567+experiments+my-experiment-name

Notebooks

次のステップ