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
- Pastikan Anda menggunakan TensorFlow 2.4 atau versi yang lebih baru.
Instal Vertex AI SDK dengan plugin
cloud_profiler
. Dari container Docker lokal, jalankan:pip install google-cloud-aiplatform[cloud_profiler]
Anda harus memiliki instance Vertex AI TensorBoard. Lihat Membuat instance Vertex AI TensorBoard untuk mengetahui petunjuknya.
Anda harus memiliki akun layanan dengan peran
roles/storage.admin
danroles/aiplatform.user
. Lihat Membuat akun layanan dengan izin yang diperlukan untuk mengetahui petunjuknya.Anda harus memiliki bucket Cloud Storage untuk menyimpan log Vertex AI TensorBoard. Baca bagian Membuat bucket Cloud Storage untuk menyimpan log Vertex AI TensorBoard guna mendapatkan petunjuk.
Mengaktifkan profiler Vertex AI TensorBoard
Agar dapat mengaktifkan profiler Vertex AI TensorBoard untuk tugas pelatihan, tambahkan kode berikut ke skrip pelatihan Anda:
Tambahkan impor
cloud_profiler
pada impor tingkat teratas:from google.cloud.aiplatform.training_utils import cloud_profiler
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 peranroles/storage.admin
danroles/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.
Di konsol Google Cloud, buka tab Tugas kustom di halaman Pelatihan.
Klik nama tugas pelatihan yang baru saja Anda buat untuk membuka halaman detail tugas.
Klik Buka TensorBoard.
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.
Di konsol Google Cloud, buka halaman Vertex AI Experiments.
Pilih region tugas pelatihan yang baru saja Anda buat.
Klik Buka TensorBoard di samping nama tugas pelatihan.
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:
- Klik Rekam profil.
Di kolom URL Layanan Profil atau nama TPU, masukkan:
workerpool0-0
Untuk Jenis alamat, pilih Alamat IP.
Klik Rekam.
Notebook
Langkah selanjutnya
- Lihat dokumentasi Tensorflow Profiler untuk mempelajari alat profiler dan cara menggunakannya untuk mengoptimalkan performa model.