Bersiap menghadapi peristiwa pemeliharaan

VM TPU adalah instance VM Compute Engine dengan hardware TPU terpasang. VM Compute Engine tunduk pada peristiwa pemeliharaan VM Compute Engine. Setiap TPU terhubung ke VM Compute Engine, sehingga menggunakan lebih banyak TPU (misalnya, dalam Pod TPU) akan meningkatkan kemungkinan salah satu VM Anda mengalami peristiwa pemeliharaan.

Dokumen ini membahas pendekatan untuk menangani peristiwa pemeliharaan untuk tugas pelatihan yang berjalan lama di Cloud TPU. Untuk informasi tentang cara menangani peristiwa pemeliharaan untuk TPU di Google Kubernetes Engine (GKE), lihat Mengelola gangguan node GKE untuk GPU dan TPU.

Melihat notifikasi untuk pemeliharaan mendatang

Anda dapat melihat notifikasi untuk peristiwa pemeliharaan host mendatang. Dengan memantau periode pemeliharaan mendatang untuk instance, Anda dapat secara proaktif menyiapkan workload untuk menangani pemeliharaan mendatang dengan gangguan minimal. Untuk mengetahui informasi selengkapnya, lihat Melihat notifikasi pemeliharaan.

Menggunakan titik pemeriksaan untuk pemulihan cepat dari peristiwa pemeliharaan

Titik pemeriksaan adalah kunci untuk pemulihan singkat dari peristiwa pemeliharaan dan harus disimpan secara rutin. Aturan praktis yang baik adalah menyimpan checkpoint kira-kira setiap jam. Jika tidak sering melakukan pemeriksaan titik, Anda berisiko kehilangan banyak progres pelatihan karena peristiwa pemeliharaan atau gangguan pelatihan lainnya.

Titik pemeriksaan umumnya mengacu pada semua parameter tersimpan yang digunakan dalam pelatihan, seperti bobot model. Waktu yang diperlukan untuk menyimpan titik pemeriksaan dapat berkisar dari urutan detik hingga urutan menit.

Meskipun TPU dapat pulih secara otomatis dari sebagian besar peristiwa pemeliharaan dan tugas pelatihan berlanjut tanpa intervensi manual, mungkin ada kasus ekstrem saat tugas tidak dimulai ulang dan berlanjut secara otomatis. Jika hal ini terjadi, Anda perlu menghapus dan membuat ulang resource TPU serta memulai ulang tugas pelatihan dari checkpoint tersimpan. Untuk mengetahui informasi tentang cara mendeteksi dan memulihkan dari kegagalan pemulihan otomatis, lihat Mendeteksi dan memulihkan dari kegagalan TPU.

Ada mekanisme yang berbeda untuk menyimpan dan memuat titik pemeriksaan untuk setiap framework ML. Model Cloud TPU yang didukung umumnya memiliki checkpoint bawaan. Untuk informasi selengkapnya tentang pembuatan checkpoint, lihat: TensorFlow 2.x, PyTorch, atau JAX/flax.

Menggunakan Titik pemeriksaan otomatis

Anda dapat menggunakan fitur Autocheckpoint untuk mempertahankan progres pelatihan dengan mengonfigurasi kode untuk menyimpan checkpoint yang tidak terjadwal saat peristiwa pemeliharaan terjadi. Untuk mengetahui informasi selengkapnya tentang Autocheckpoint, lihat Autocheckpoint Cloud TPU.

Mencoba lagi skrip pelatihan

Skrip pelatihan mungkin berhenti karena peristiwa gangguan. Anda dapat menggunakan skrip bash untuk terus mencoba ulang skrip pelatihan hingga pelatihan selesai. Contoh:

while ! gcloud compute tpus tpu-vm ssh ${TPU_NAME} --command "python3 TRAINING_COMMAND"; do sleep 1; done

Setiap percobaan ulang harus dilanjutkan dari checkpoint terbaru, jadi Anda harus selalu menggunakan skrip percobaan ulang bersama dengan checkpoint.

Pipeline pelatihan yang siap produksi harus menggunakan sistem pengelolaan resource seperti Google Kubernetes Engine (GKE). Untuk informasi selengkapnya tentang cara menggunakan Google Kubernetes Engine dengan VM TPU, lihat Men-deploy beban kerja TPU.

Mendeteksi dan memulihkan dari kegagalan TPU

Jika TPU tidak pulih dari peristiwa pemeliharaan, Anda dapat menggunakan skrip pemulihan untuk mendeteksi status TPU serta menghapus dan membuat ulang TPU. Untuk contoh skrip pemulihan, lihat retry.sh. Jika proses yang menjalankan skrip pelatihan mengalami error, Anda dapat mengubah skrip pemulihan untuk mencoba lagi menjalankan skrip pelatihan.

Untuk informasi tentang cara menghapus dan membuat ulang TPU secara manual, lihat Mengelola resource TPU.

Menggunakan penjadwalan pengumpulan

Cloud TPU memiliki konsep penjadwalan koleksi, yang menawarkan dua jenis koleksi yang dapat digunakan pelanggan untuk mendukung beban kerja pelatihan atau penayangan dan inferensi. Saat Anda menggunakan fitur ini untuk men-deploy instance Cloud TPU, Google Cloud akan menerapkan jadwal pemeliharaan unik yang paling cocok dengan aplikasi. Anda dapat mengharapkan perilaku berikut dari setiap jenis koleksi:

  • Pelatihan (default): Jenis pengumpulan ini bermanfaat untuk beban kerja pelatihan biasa saat Anda memerlukan periode nonaktif minimal di semua instance dan gangguan yang tidak terduga yang terbatas untuk memulihkan layanan dengan cepat selama peristiwa pemeliharaan. Jenis pengumpulan pelatihan menyediakan penjadwalan dan eksekusi peristiwa pemeliharaan secara paralel untuk grup instance.

  • Penayangan (tersedia menggunakan --workload-type=AVAILABILITY_OPTIMIZED): Jenis pengumpulan ini bermanfaat bagi sebagian besar beban kerja penayangan atau inferensi, dengan Anda memerlukan downtime minimal di sebagian instance (replika) untuk memastikan kontinuitas layanan, bahkan selama peristiwa pemeliharaan. Jenis pengumpulan penayangan menyediakan penjadwalan dan eksekusi peristiwa pemeliharaan yang berurutan untuk grup instance. Menentukan koleksi penayangan hanya didukung di TPU v6e.

Untuk mengetahui informasi selengkapnya tentang penjadwalan pengumpulan, lihat Penjadwalan pengumpulan.

Mendeteksi peristiwa pemeliharaan

Anda dapat mendeteksi apakah dan kapan peristiwa pemeliharaan terjadi di TPU menggunakan perintah gcloud compute tpus tpu-vm describe berikut:

$ gcloud compute tpus tpu-vm describe tpu-name --zone=zone  | grep 'health'

Output dari perintah ini menampilkan status TPU saat ini dan deskripsi peristiwa pemeliharaan terbaru. Outputnya akan terlihat mirip dengan berikut ini:

health: HEALTHY
healthDescription: The TPU had a maintenance event at 2022-01-26T03:44:36.265703305Z

Melihat log aktivitas pemeliharaan

Anda dapat melihat log historis peristiwa pemeliharaan di TPU dalam log audit peristiwa sistem.

  1. Di menu navigasi konsol Google Cloud, buka halaman Logs Explorer:

    Buka Logs Explorer

  2. Gunakan kueri penelusuran berikut untuk melihat TPU yang telah dihentikan atau dimulai ulang:

    "tpu.nodes.terminate" OR "tpu.nodes.restart"

    Hasilnya menampilkan log untuk gangguan dan perbaikan pekerja TPU dalam jangka waktu penelusuran Anda. Log tersebut mencakup:

    • Tanggal dan waktu peristiwa
    • Jenis peristiwa
    • Untuk peristiwa "terminate", alasan penghentian di kolom protoPayload.metadata.terminateReason

Langkah selanjutnya