Cluster pelatihan Gemini Enterprise Agent Platform mengintegrasikan sistem health check komprehensif untuk memastikan keandalan node komputasi dan stabilitas tugas Slurm Anda. Sistem ini memiliki opsi pemulihan otomatis dan manual. Proses otomatis berjalan selama eksekusi tugas untuk memantau komponen penting seperti kondisi GPU dan penggunaan disk, serta mengganti node yang gagal secara otomatis. Untuk situasi yang memerlukan intervensi pengguna, cluster pelatihan Anda menyediakan reportFaultyNodes API, yang memungkinkan Anda menghapus node yang rusak tertentu secara manual atau melaporkan dugaan kegagalan hardware pada host yang mendasarinya.
Menjalankan workload pengujian untuk memverifikasi fungsi GPU
Langkah 1: Menghubungkan ke node cluster menggunakan SSH
Dari Cloud Shell atau Google Cloud konsol, hubungkan ke Node Login menggunakan IAP. Contoh berikut menunjukkan perintah untuk Cloud Shell:
gcloud compute ssh --zone $ZONE "Login Node Name" --tunnel-through-iap --project $PROJECT_ID
Langkah 2: Menjalankan perintah Slurm standar
Setelah terhubung ke node login, jalankan beberapa perintah Slurm standar untuk memverifikasi bahwa cluster berfungsi dengan benar.
~$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
partition1* up infinite 2 idle hcsa3m1236-a3mnodeset-[0-1]
Selanjutnya, kirimkan tugas batch.
~$ sbatch --qos normal --wrap "echo start! && sleep 10s && echo done!"
Anda akan melihat bahwa file slurm-job-id.out dibuat di direktori beranda Anda.
Langkah 3: Menjalankan workload GPU
Simpan konten berikut sebagai file skrip bernama test.sh di direktori beranda Anda.
#!/bin/bash
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=4
#SBATCH --gres=gpu:8
#SBATCH --job-name=nvidia_smi
srun nvidia-smi -L
Tetapkan izin skrip ke 755 agar dapat dieksekusi, lalu kirimkan tugas Slurm:
~$ sbatch ./test.sh
Slurm menyimpan output skrip ke file bernama slurm-job-id.out.
Output yang diharapkan:
GPU 0: NVIDIA H100 80GB HBM3 (UUID: GPU-f75045e8-4d87-49d1-2eb9-39ec2baddf9b)
GPU 1: NVIDIA H100 80GB HBM3 (UUID: GPU-b91556d8-5215-d0ed-50b8-a88720e5b29c)
GPU 2: NVIDIA H100 80GB HBM3 (UUID: GPU-7600155a-0036-35f5-9489-a7b4ed0ce887)
GPU 3: NVIDIA H100 80GB HBM3 (UUID: GPU-a402e125-7841-033f-f08b-7921526c121f)
GPU 4: NVIDIA H100 80GB HBM3 (UUID: GPU-20eef8f8-b2c7-1716-5ce7-7f64475bd2c0)
GPU 5: NVIDIA H100 80GB HBM3 (UUID: GPU-65463286-e587-b52f-4d5b-8880eecbf0e7)
GPU 6: NVIDIA H100 80GB HBM3 (UUID: GPU-d5ff75e7-dd54-edf6-a684-33c26fc365e1)
GPU 7: NVIDIA H100 80GB HBM3 (UUID: GPU-26e81ae2-11fd-9d7e-95b6-c186e5173007)
GPU 0: NVIDIA H100 80GB HBM3 (UUID: GPU-e66a185a-b40c-81d9-d35d-19cab811df34)
GPU 1: NVIDIA H100 80GB HBM3 (UUID: GPU-d23e5cf7-afd8-bec2-1487-9e27eeb6aae0)
GPU 2: NVIDIA H100 80GB HBM3 (UUID: GPU-4dde1b05-ea5e-01e9-5c1e-e1c0d3b4b113)
GPU 3: NVIDIA H100 80GB HBM3 (UUID: GPU-3a0d734a-6fb8-d841-a97f-d6846553ea7f)
GPU 4: NVIDIA H100 80GB HBM3 (UUID: GPU-76fe0d37-08b2-a3a6-8ddf-55501426bc7c)
GPU 5: NVIDIA H100 80GB HBM3 (UUID: GPU-9e0a41e1-b399-8934-01af-6198b749c02a)
GPU 6: NVIDIA H100 80GB HBM3 (UUID: GPU-dddd09ee-c944-1098-9c4e-d96f8762ecb1)
GPU 7: NVIDIA H100 80GB HBM3 (UUID: GPU-df52c109-0ac1-30cc-226b-85b1a8a6bc16)
Health check dan pemulihan otomatis
Untuk memastikan keandalan node, cluster pelatihan terus memantau kondisi node menggunakan rangkaian pemeriksaan otomatis berikut. Cluster pelatihan menjalankan health check selama prolog Slurm (sebelum tugas dimulai) dan epilog (setelah tugas selesai).
Rangkaian health check
- Kondisi GPU: Melakukan diagnostik GPU individual yang mendetail, termasuk pemantauan kode
nvidia-smi,dcgmi, danxid. - Penggunaan Disk: Memeriksa penggunaan disk yang tinggi pada partisi penting
(
/,/mnt/localssd,/mnt/localdisk) untuk mencegah tugas gagal karena kurangnya ruang. - Kondisi Jaringan: Memverifikasi bahwa antarmuka jaringan utama memiliki alamat IPv4. Jika masalah ditemukan, sistem akan mencoba melakukan pemulihan sendiri dengan mereset antarmuka.
- Beban CPU: Memantau rata-rata beban sistem dan mencatat peringatan jika melebihi nilai minimum yang telah ditentukan.
Proses pemulihan kegagalan
Jika pemeriksaan mendeteksi error parah yang tidak dapat dipulihkan, cluster pelatihan Gemini Enterprise Agent Platform akan otomatis memulai proses pemulihan kegagalan. Proses standar mencakup menguras node yang rusak, mengantrekan ulang tugas Slurm yang terpengaruh, lalu menghapus dan membuat ulang node yang dikuras untuk memulihkannya ke kondisi yang baik.
Pemulihan otomatis ini tunduk pada kondisi berikut:
Batas Mulai Ulang: Proses pemulihan akan dilewati jika tugas Slurm yang terpengaruh telah dimulai ulang beberapa kali.
Penggunaan GPU: Penghapusan dan pembuatan ulang node juga akan dilewati jika tugas yang berjalan di node tidak menggunakan semua GPU yang tersedia. Dalam hal ini, node hanya dikuras untuk mencegah tugas baru dijadwalkan di node tersebut.
Setiap tindakan pemulihan dicatat dalam log project Anda sebagai peristiwa ketahanan. Untuk membuat grafik peristiwa ini terhadap status Slurm node Anda, lihat Memantau peristiwa ketahanan dengan dasbor.
Mengelola node komputasi yang rusak secara manual
Cluster pelatihan menyediakan API untuk melaporkan dan mengelola node komputasi yang rusak secara manual, yang sangat berguna jika health check otomatis tidak menyelesaikan masalah. Anda hanya dapat menjalankan operasi ini pada satu node dalam satu waktu.
| Tindakan | Deskripsi | Paling Cocok Untuk |
|---|---|---|
| Menghapus Node | Menghapus node yang rusak tertentu dari cluster. Ini adalah tindakan default. | Error umum atau saat node tidak responsif dan perlu didaur ulang. |
| Melaporkan Host sebagai Rusak | Melaporkan host fisik yang mendasarinya sebagai rusak, yang memicu proses perbaikan atau migrasi. | Dugaan kegagalan hardware pada mesin fisik yang menghosting node GPU. |
Tindakan 1: Menghapus node yang rusak
Tindakan ini akan menghapus node yang ditentukan. Hasil operasi ini bergantung pada apakah node diklasifikasikan sebagai "statis" atau "dinamis" oleh Slurm:
Node Statis: Jika indeks node yang dihapus kurang dari jumlah node minimum node pool, node komputasi baru akan dibuat ulang dengan nama dan spesifikasi yang sama.
Node Dinamis: Jika indeks node yang dihapus lebih besar dari jumlah node minimum, node tersebut hanya akan dibuat ulang jika ada workload tertunda yang dijadwalkan untuk node tersebut. Jika tidak, node akan dihapus.
Contoh ini menggunakan alias gcurl, yang merupakan pintasan autentikasi yang praktis untuk berinteraksi dengan endpoint API. Perintah berikut membuat alias untuk curl yang menyertakan header otorisasi yang diperlukan.
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Permintaan API untuk menghapus node
Untuk menghapus node yang rusak, jalankan permintaan POST berikut. NODE_ID
harus dalam format CLUSTER_ID-NODEPOOL_ID-INDEX.
gcurl -X POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID:reportFaultyNodes -d '{"nodeActions": [{"nodeId": "NODE_ID"}]}'
Memeriksa status operasi
Anda dapat memantau hasil tindakanreportFaultyNodes dengan memeriksa status operasi.
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Tindakan 2: Melaporkan host sebagai rusak
Anda dapat melaporkan host fisik node GPU sebagai rusak jika menduga adanya kegagalan hardware.
VM yang Didukung: A3 Ultra dan A4 High-GPU
Status Node: Node target harus dalam status
RUNNINGsebelum Anda memanggil API. Node akan bertransisi keREPAIRINGsetelah panggilan berhasil dan kembali keRUNNINGsetelah host diperbaiki atau node dibuat ulang di host baru. Ini adalah operasi terbaik.
Prasyarat: Memberikan peran IAM
Untuk menggunakan fitur ini, Anda harus memberikan peran Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) kepada Agen Layanan Agent Platform.
PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") gcloud projects add-iam-policy-binding PROJECT_ID\ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.iam.gserviceaccount.com" \ --role="roles/compute.instanceAdmin.v1"
Permintaan API untuk melaporkan host
Jalankan permintaan POST berikut untuk melaporkan host yang mendasarinya sebagai rusak. Saat melakukannya,
Anda harus memberikan satu atau beberapa perilaku dan deskripsi yang diamati untuk faultReasons.
Untuk kolom behavior, Anda harus menggunakan salah satu nilai berikut:
| Perilaku | Deskripsi |
|---|---|
PERFORMANCE |
GPU yang terpasang ke VM memiliki masalah performa dibandingkan dengan GPU lain di cluster, Anda tidak melihat error XID di log, dan Compute Engine tidak mendeteksi pola kegagalan biasa lainnya seperti kerusakan data senyap. |
SILENT_DATA_CORRUPTION |
Anda melihat kerusakan data di VM, tetapi VM tetap berjalan. Hal ini dapat disebabkan oleh masalah seperti kerusakan vCPU, bug software, atau masalah kernel. |
UNRECOVERABLE_GPU_ERROR |
Anda telah mengidentifikasi error GPU yang tidak dapat dipulihkan dengan XID. |
BEHAVIOR_UNSPECIFIED |
Anda tidak yakin apa masalah pada VM Anda. |
Berikut adalah contoh permintaan API.
gcurl -X POST \
https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID:reportFaultyNodes \
-d '{"nodeActions": [{"nodeId": "NODE_ID", "reportFaultyHost": {"faultReasons": [{"behavior": "BEHAVIOR_1", "description": "DESCRIPTION_1"}, {"behavior": "BEHAVIOR_2", "description": "DESCRIPTION_2"}]}}]}'
Menggabungkan semuanya
Dengan memanfaatkan health check otomatis dan kontrol manual yang dijelaskan di halaman ini, Anda dapat mempertahankan lingkungan pelatihan yang sangat tangguh. Mengelola kondisi cluster Anda secara proaktif dengan menghapus node yang rusak atau melaporkan masalah hardware akan memastikan waktu aktif maksimum dan keberhasilan penyelesaian tugas pelatihan Anda. Untuk masalah yang persisten atau kompleks, selalu pertimbangkan untuk berkonsultasi dengan tim dukungan Google Cloud untuk mendapatkan diagnostik dan bantuan mendalam.
Langkah berikutnya
Mengonfigurasi cluster pelatihan Anda untuk toleransi fault adalah langkah penting dalam membangun alur kerja MLOps yang lengkap dan siap produksi.
- Memantau dan men-debug tugas pelatihan Anda: Melacak progres, penggunaan resource, dan kondisi tugas pelatihan Anda, termasuk cara mengidentifikasi kapan node telah dipulihkan atau tugas telah dimulai ulang karena kegagalan.
- Mengatur tugas yang tangguh dengan Gemini Enterprise Agent Platform Pipelines: Untuk lingkungan produksi, gunakan Gemini Enterprise Agent Platform Pipelines untuk membuat alur kerja otomatis dan berulang yang mengirimkan tugas pelatihan yang tangguh ke cluster Anda.
- Mengelola dan men-deploy model Anda: Setelah tugas pelatihan yang tangguh selesai, gunakan Gemini Enterprise Agent Platform Model Registry untuk membuat versi artefak model Anda sebelum men-deploy model ke endpoint untuk menayangkan permintaan inferensi online.