Vertex AI TensorBoard を使用したジョブの可視化

Gemini Enterprise Agent Platform Managed Training に関心をお持ちの場合は、営業担当者にお問い合わせください。

Managed Training を使用すると、Vertex AI TensorBoard を使用してトレーニング ログを準リアルタイムで可視化できます。ワークロードを構成してログを Cloud Storage バケットに保存するだけで、ログは分析用に TensorBoard インターフェースに自動的にストリーミングされます。

前提条件

始める前に、次の準備をしてください。

  • 実行中の Managed Training クラスタ。
  • TensorBoard ログを保存する Cloud Storage バケット。このバケットは、TensorBoard インスタンスと同じリージョンに存在する必要があります。設定手順については、Cloud Storage バケットを作成するをご覧ください。
  • Vertex AI TensorBoard インスタンス。作成手順については、Vertex AI TensorBoard インスタンスを作成するをご覧ください。
  • 適切な IAM 権限。Cloud Storage FUSE がストレージ バケットに対して読み取りと書き込みを行えるようにするには、クラスタの VM で使用されるサービス アカウントに Storage オブジェクト ユーザー(roles/storage.objectUser)ロールが必要です。

TensorBoard のアップロードを有効にする

ジョブの TensorBoard インテグレーションを構成するには、Slurm ジョブの送信で --extra フラグを使用して次の引数を渡します。

  • tensorboard_base_output_dir: ログのアップロード先の Cloud Storage パスを指定します。例: gs://my-bucket/my-logs

  • tensorboard_url: Vertex AI TensorBoard インスタンス、テスト、実行の URL を指定します。インスタンスのみが指定されている場合は、新しいテストと実行が作成されます。省略すると、プロジェクトのデフォルトの TensorBoard インスタンスが使用されます。例: projects/123/locations/us-central1/tensorboards/456

例

# Using specific tensorboard instance
sbatch --extra="tensorboard_base_output_dir=<your-cloud-storage-dir>,tensorboard_url=projects/<project-id>/locations/<location>/tensorboards/<tensorboard-instance-id>" your_script.sbatch

トレーニング ジョブからのログの書き込み

トレーニング スクリプト内で、AIP_TENSORBOARD_LOG_DIR 環境変数にアクセスします。この変数には、スクリプトが TensorBoard ログを書き込む一意の Cloud Storage パスが指定されます。

パスは次の構造になっています。

gs://<your-cloud-storage-path>/<cluster-id>-<cluster-uuid>/tensorboard/job-<job-id>/

次の例は、ジョブを構成する Slurm 送信スクリプトと、環境変数を読み取ってログを書き込む Python トレーニング スクリプトという 2 つの主要コンポーネントを含む完全なワークフローを示しています。

Slurm ジョブ スクリプト(simple_job.sbatch):

#!/bin/bash
#SBATCH --job-name=tensorboard-simple-test
#SBATCH --output=tensorboard-simple-test-%j.out
# Activate your Python virtual environment if needed
# source /path/to/your/venv/bin/activate
python3 simple_logger.py

Python スクリプト(simple_logger.py):

import tensorflow as tf
import os

# Get the log directory from the environment variable
log_dir = os.environ.get("AIP_TENSORBOARD_LOG_DIR")

print(f"Writing TensorBoard logs to: {log_dir}")
writer = tf.summary.create_file_writer(log_dir)

with writer.as_default():
    for step in range(10):
        # Simulate some metrics
        loss = 1.0 - (step * 0.1)
        accuracy = 0.6 + (step * 0.04)

        # Log the metrics
        tf.summary.scalar('loss', loss, step=step)
        tf.summary.scalar('accuracy', accuracy, step=step)
        writer.flush()
        print(f"Step {step}: loss={loss:.4f}, accuracy={accuracy:.4f}")

writer.close()
print(f"--- Finished writing metrics to {log_dir} ---")

リアルタイム ログ同期

実行中のジョブの指標を可視化するには、トレーニング コードでサマリー ライターを定期的に閉じて再作成する必要があります。これは、gcsfuse がログファイルを閉じた後にのみ Cloud Storage に同期するためです。この「フラッシュ」手法により、ジョブが完了する前に中間結果が TensorBoard コンソールに表示されます。

Vertex AI TensorBoard の表示

ジョブを送信したら、 Vertex AI Experiments ページに移動して、進行状況をモニタリングできます。 Cloud de Confiance

次のステップ

Vertex AI TensorBoard でトレーニング指標の分析、モデルグラフの可視化、パフォーマンスのプロファイリングを行い、問題をデバッグしてモデルを最適化し、完全な MLOps ワークフローに統合できるようにモデルを準備します。