Performa pelatihan model profil menggunakan profiler Vertex AI TensorBoard

Halaman ini menunjukkan cara mengaktifkan profiler Vertex AI TensorBoard sehingga Anda dapat men-debug performa pelatihan model untuk tugas pelatihan kustom.

Melatih model bisa menjadi mahal secara komputasi. Dengan Vertex AI TensorBoard profiler, Anda dapat memantau dan mengoptimalkan performa pelatihan model dengan membantu memahami konsumsi resource untuk operasi pelatihan. Berbekal informasi ini, Anda dapat menemukan dan memperbaiki bottleneck performa untuk melatih model dengan lebih cepat dan lebih murah.

Sebelum memulai

Mengaktifkan profiler Vertex AI TensorBoard

Agar dapat mengaktifkan profiler Vertex AI TensorBoard untuk tugas pelatihan, tambahkan kode berikut ke skrip pelatihan Anda:

  1. Tambahkan impor cloud_profiler pada impor tingkat teratas:

    from google.cloud.aiplatform.training_utils import cloud_profiler
    
  2. Inisialisasi plugin cloud_profiler dengan menambahkan:

    cloud_profiler.init()
    

Contoh

Berikut adalah contoh skrip pelatihan:

#!/usr/bin/env python

import tensorflow as tf
import argparse
import os
from google.cloud.aiplatform.training_utils import cloud_profiler
import time

"""Train an mnist model and use cloud_profiler for profiling."""

def _create_model():
    model = tf.keras.models.Sequential(
        [
            tf.keras.layers.Flatten(input_shape=(28, 28)),
            tf.keras.layers.Dense(128, activation="relu"),
            tf.keras.layers.Dropout(0.2),
            tf.keras.layers.Dense(10),
        ]
    )
    return model

def main(args):
    strategy = None
    if args.distributed:
        strategy = tf.distribute.MultiWorkerMirroredStrategy()

    mnist = tf.keras.datasets.mnist

    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0

    if args.distributed:
        strategy = tf.distribute.MultiWorkerMirroredStrategy()
        with strategy.scope():
            model = _create_model()
            model.compile(
                optimizer="adam",
                loss=tf.keras.losses.sparse_categorical_crossentropy,
                metrics=["accuracy"],
            )
    else:
        model = _create_model()
        model.compile(
            optimizer="adam",
            loss=tf.keras.losses.sparse_categorical_crossentropy,
            metrics=["accuracy"],
        )

    # Initialize the profiler.
    cloud_profiler.init()

    # Use AIP_TENSORBOARD_LOG_DIR to update where logs are written to.
    tensorboard_callback = tf.keras.callbacks.TensorBoard(
        log_dir=os.environ["AIP_TENSORBOARD_LOG_DIR"], histogram_freq=1
    )

    model.fit(
        x_train,
        y_train,
        epochs=args.epochs,
        verbose=0,
        callbacks=[tensorboard_callback],
    )
if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--epochs", type=int, default=100, help="Number of epochs to run model."
    )
    parser.add_argument(
        "--distributed", action="store_true", help="Use MultiWorkerMirroredStrategy"
    )
    args = parser.parse_args()
    main(args)

Mengakses dasbor profiler Vertex AI TensorBoard

Setelah mengonfigurasi skrip pelatihan untuk mengaktifkan profiler Vertex AI TensorBoard, jalankan skrip pelatihan dengan instance Vertex AI TensorBoard.

Dalam skrip pelatihan Anda, pastikan konfigurasi berikut:

  • Tetapkan BASE_OUTPUT_DIR: ke bucket Cloud Storage tempat Anda ingin menyimpan log Vertex AI TensorBoard yang dihasilkan oleh skrip pelatihan.
  • Tetapkan 'serviceAccount': ke akun layanan yang Anda buat dengan peran roles/storage.admin dan roles/aiplatform.user.
  • Tetapkan 'tensorboard': ke nama instance Vertex AI TensorBoard yang sepenuhnya memenuhi syarat dan ingin Anda gunakan dengan tugas pelatihan ini. Nama yang sepenuhnya memenuhi syarat memiliki format berikut:

    projects/PROJECT_NUMBER_OR_ID/locations/REGION/tensorboards/TENSORBOARD_INSTANCE_ID
    

Ada dua cara untuk mengakses dasbor profiler Vertex AI TensorBoard dari Konsol Google Cloud:

  • Dari halaman Tugas kustom.
  • Dari halaman Experiments.

Mengakses dasbor profiler melalui halaman Tugas kustom

Anda dapat menggunakan metode ini untuk mengakses dasbor profiler Vertex AI TensorBoard meskipun tugas pelatihan dalam status Finished.

  1. Di konsol Google Cloud, buka tab Tugas kustom di halaman Pelatihan.

    Buka Tugas kustom

  2. Klik nama tugas pelatihan yang baru saja Anda buat untuk membuka halaman detail tugas.

  3. Klik Buka TensorBoard.

  4. Klik tab Profil.

Mengakses dasbor profiler melalui halaman Eksperimen

Anda dapat menggunakan metode ini untuk mengakses dasbor profiler Vertex AI TensorBoard hanya saat tugas pelatihan dalam status Running.

  1. Di konsol Google Cloud, buka halaman Vertex AI Experiments.

    Buka Vertex AI Experiments

  2. Pilih region tugas pelatihan yang baru saja Anda buat.

  3. Klik Buka TensorBoard di samping nama tugas pelatihan.

  4. Klik tab Profil.

Merekam sesi pembuatan profil

Untuk merekam sesi pembuatan profil, tugas pelatihan Anda harus dalam status Berjalan. Dari tab Profil pada instance Vertex AI TensorBoard, lakukan langkah-langkah berikut:

  1. Klik Rekam profil.
  2. Di kolom URL Layanan Profil atau nama TPU, masukkan:

    workerpool0-0
    
  3. Untuk Jenis alamat, pilih Alamat IP.

  4. Klik Rekam.

Notebook

Langkah selanjutnya