Bersiap untuk 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 penggunaan lebih banyak TPU (misalnya, dalam slice TPU) 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 mengetahui informasi tentang cara menangani peristiwa pemeliharaan 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 masa pemeliharaan mendatang 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 berkala. Aturan praktis yang baik adalah menyimpan titik pemeriksaan setiap jam. Jika checkpoint tidak dilakukan cukup sering, Anda berisiko kehilangan banyak progres pelatihan karena peristiwa pemeliharaan atau gangguan pelatihan lainnya.

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

Meskipun TPU dapat pulih secara otomatis dari sebagian besar peristiwa pemeliharaan dan tugas pelatihan berlanjut tanpa intervensi manual, mungkin ada kasus ekstrem di mana tugas tidak dimulai ulang dan dilanjutkan secara otomatis. Jika hal ini terjadi, Anda perlu menghapus dan membuat ulang resource TPU serta memulai ulang tugas pelatihan dari checkpoint yang disimpan. 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 pembuatan checkpoint bawaan. Untuk mengetahui informasi selengkapnya tentang pembuatan checkpoint, lihat: TensorFlow 2.x, PyTorch, atau JAX/flax.

Menggunakan Titik pemeriksaan otomatis

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

Mencoba lagi skrip pelatihan

Skrip pelatihan dapat berhenti sebagai akibat dari 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 mengetahui informasi selengkapnya tentang penggunaan 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, lalu 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 menjalankan skrip pelatihan lagi.

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

Menggunakan penjadwalan pengumpulan

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

  • Pelatihan (default): Jenis kumpulan ini bermanfaat untuk beban kerja pelatihan umum yang memerlukan periode nonaktif minimal di semua instance dan gangguan tak terduga yang terbatas agar dapat memulihkan layanan dengan cepat selama peristiwa pemeliharaan. Jenis pengumpulan pelatihan menyediakan penjadwalan dan eksekusi paralel peristiwa pemeliharaan untuk sekelompok instance.

  • Penayangan (tersedia menggunakan --workload-type=AVAILABILITY_OPTIMIZED): Jenis koleksi ini bermanfaat bagi sebagian besar beban kerja penayangan atau inferensi yang memerlukan waktu nonaktif minimal di seluruh subset instance (replika) untuk memastikan kelangsungan layanan, bahkan selama peristiwa pemeliharaan. Jenis koleksi penayangan menyediakan penjadwalan dan eksekusi peristiwa pemeliharaan yang bertahap untuk sekelompok instance. Menentukan koleksi penyajian hanya didukung di TPU v6e.

Untuk mengetahui informasi selengkapnya tentang penjadwalan pengumpulan, lihat Penjadwalan pengumpulan TPU untuk workload inferensi.

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. Output-nya akan terlihat seperti berikut:

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

Melihat log peristiwa pemeliharaan

Anda dapat melihat log historis peristiwa pemeliharaan di TPU Anda 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 setiap gangguan dan perbaikan pekerja TPU dalam jangka waktu penelusuran Anda. Log tersebut mencakup:

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

Langkah berikutnya