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
- 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
Untuk mengaktifkan Profiler untuk tugas pelatihan Anda, tambahkan hal berikut ke skrip pelatihan:
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
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 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 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.
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 Experiments
Anda dapat menggunakan metode ini untuk mengakses dasbor Profiler hanya jika tugas pelatihan dalam status Berjalan.
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 Profiler Tensorflow guna mempelajari alat profiler dan cara menggunakannya untuk mengoptimalkan performa model.