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 jendela 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. Tidak membuat checkpoint yang cukup sering 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 checkpoint 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 harus 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 checkpointing bawaan. Untuk mengetahui 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 Anda untuk menyimpan titik pemeriksaan yang tidak terjadwal saat peristiwa pemeliharaan terjadi. Untuk mengetahui informasi selengkapnya tentang Autocheckpoint, lihat Autocheckpoint Cloud TPU.

Coba lagi skrip pelatihan Anda

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 lagi menjalankan skrip pelatihan.

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 data, yang menawarkan dua jenis kumpulan data 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 menerapkan jadwal pemeliharaan unik yang paling sesuai dengan aplikasi. 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 pembatasan gangguan tak terduga 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 peristiwa
    • Untuk peristiwa "berhenti", alasan penghentian di kolom protoPayload.metadata.terminateReason

Langkah berikutnya