Membuat profil performa pelatihan model menggunakan Cloud Profiler

Halaman ini menunjukkan cara mengaktifkan Cloud Profiler sehingga Anda dapat men-debug performa pelatihan model untuk tugas pelatihan kustom.

Melatih model bisa menjadi mahal secara komputasi. Profiler memungkinkan Anda memantau dan mengoptimalkan performa pelatihan model dengan membantu Anda memahami penggunaan resource dari 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

Untuk mengaktifkan Profiler untuk tugas pelatihan Anda, tambahkan hal berikut ke skrip pelatihan:

  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

Setelah mengonfigurasi skrip pelatihan untuk mengaktifkan Profiler, 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 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 meskipun tugas pelatihan dalam status Selesai.

  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 Experiments

Anda dapat menggunakan metode ini untuk mengakses dasbor Profiler hanya jika tugas pelatihan dalam status Berjalan.

  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