Memahami layanan pelatihan kustom

Halaman ini menjelaskan status cluster pelatihan melalui siklus proses tugas pelatihan, dan cara Vertex AI menangani error pelatihan. Anda dapat menggunakan informasi ini untuk menyesuaikan kode pelatihan Anda.

Siklus proses tugas pelatihan

Bagian ini menjelaskan cara Vertex AI menangani worker VM melalui siklus proses tugas pelatihan.

Mengantrekan tugas baru

Saat Anda membuat CustomJob atau HyperparameterTuningJob, tugas mungkin tetap dalam status JOB_STATE_QUEUED selama beberapa waktu sebelum Vertex AI menjalankannya. Periode ini biasanya singkat, tetapi jika project Google Cloud Anda tidak memiliki sisa kuota pelatihan kustom yang memadai untuk tugas Anda, Vertex AI akan membuat tugas tersebut diantreakan sampai Anda memiliki kuota yang memadai.

Memulai worker secara paralel

Saat tugas pelatihan dimulai, Vertex AI menjadwalkan sebanyak mungkin worker dalam waktu singkat. Akibatnya, worker dapat memulai secara paralel, bukan secara berurutan. Untuk mengurangi latensi saat memulai, Vertex AI mulai menjalankan kode Anda pada setiap worker segera setelah tersedia. Setelah semua worker tersedia, Vertex AI akan menetapkan status tugas ke JOB_STATE_RUNNING.

Pada umumnya, framework machine learning Anda akan otomatis menangani worker secara paralel. Jika menggunakan strategi distribusi dalam kode pelatihan, Anda mungkin perlu menyesuaikannya secara manual untuk menangani worker yang dimulai secara paralel. Pelajari lebih lanjut strategi distribusi di TensorFlow dan di PyTorch.

Memulai ulang worker selama tugas pelatihan

Selama tugas pelatihan, Vertex AI dapat memulai ulang worker Anda dari pool worker mana pun dengan nama host yang sama. Masalah ini dapat terjadi karena alasan berikut:

  • Pemeliharaan VM: Saat VM yang menjalankan worker tunduk pada pemeliharaan VM, Vertex AI akan memulai ulang worker di VM lain. Pelajari lebih lanjut migrasi langsung untuk pemeliharaan VM.
  • Exit selain nol: Jika worker mana pun keluar dengan kode exit selain nol, Vertex AI akan segera memulai ulang worker tersebut di VM yang sama.

    • Jika worker gagal karena error umum, worker tersebut akan diperlakukan sebagai error permanen, dan Vertex AI akan menghentikan seluruh tugasnya. Jika ada container dimulai ulang sebelum Vertex AI menghentikan seluruh tugas, container ini dapat menghasilkan log di Cloud Logging.
    • Jika worker gagal karena error non-permanen (error yang tidak tercantum di error umum), Vertex AI memungkinkan worker yang dimulai ulang dapat terus berjalan, dengan maksimum lima kali mulai ulang per worker. Setelah lima kali dimulai ulang, jika worker gagal lagi, Vertex AI akan mencoba ulang seluruh tugas hingga tiga kali sebelum menggagalkan seluruhnya.

Untuk menangani mulai ulang worker dalam kode pelatihan, simpan checkpoint secara rutin selama pelatihan sehingga Anda dapat memulihkan dari checkpoint saat worker dimulai ulang. Jika Anda memperkirakan pelatihan akan memakan waktu lebih dari empat jam, sebaiknya simpan checkpoint setidaknya sekali setiap empat jam. Pelajari cara menggunakan checkpoint pelatihan di TensorFlow dan di PyTorch.

Berhasil menyelesaikan tugas

Tugas pelatihan berhasil diselesaikan saat replika utamanya keluar dengan kode exit 0. Pada saat itu, Vertex AI akan menghentikan semua worker yang berjalan lainnya.

Cara Vertex AI menangani error tugas pelatihan

Bagian ini menjelaskan cara Vertex AI menangani error tugas pelatihan umum dan error internal.

Sekitar satu menit setelah tugas berakhir, Vertex AI akan menetapkan kode error pada objek tugas pelatihan, berdasarkan kode exit.

Menangani error umum

Vertex AI akan menghentikan semua worker jika mengalami salah satu masalah berikut:

Jenis Error Log/Pesan Error Catatan
Pengecualian kode pengguna Replika REPLICA_NAME keluar dengan status EXIT_CODE bukan nol. Alasan penghentian: REASON. Jika tugas menemukan kode exit yang bersifat sementara, Vertex AI akan mencoba memulai ulang tugas hingga tiga kali. Kode error yang berpotensi sementara yang meminta Vertex AI mencoba ulang tugas mencakup hal berikut:
  • SIGABRT
    • ExitCode 6
    • ExitCode 134 (container kustom)
  • SIGSEGV
    • ExitCode 11
    • ExitCode 139 (container kustom)
Kehabisan memori Replika REPLICA_NAME kehabisan memori dan keluar dengan status EXIT_CODE bukan nol. GKE mereservasi memori pada node Vertex AI. Pada jenis mesin terkecil (seperti n1-standard-4), agen sistem Vertex AI dapat menggunakan hingga 40% total memori. Untuk VM yang lebih besar, overhead-nya relatif kecil. Bandingkan memori yang dapat dialokasikan untuk jenis mesin n1-standard.
Kapasitas tidak memadai di region Anda (kehabisan stok Compute Engine) Resource tidak memadai di region: REGION_NAME. Coba region lain atau gunakan akselerator lain. Stok habis terjadi saat Compute Engine mencapai kapasitasnya untuk CPU atau GPU yang dipilih di region Anda. Hal ini tidak terkait dengan kuota project Anda. Jika hal ini terjadi, Vertex AI akan mencoba memulai ulang tugas hingga tiga kali.

Untuk tugas yang berjalan di VM A2 dan A3, Dynamic Workload Scheduler memungkinkan Anda menjadwalkan tugas yang berjalan saat resource GPU yang diminta tersedia, bukan gagal dengan error kehabisan stok. Untuk informasi selengkapnya, lihat Menjadwalkan tugas pelatihan berdasarkan ketersediaan resource.

Menangani error internal

Jika mengalami error internal, Vertex AI akan mencoba memulai ulang tugas dua kali (total tiga kali percobaan). Jika upaya mulai ulang juga gagal, Vertex AI akan menampilkan error internal dengan pesan: Internal error occurred for the current attempt.