Halaman ini menyediakan metode langsung yang didorong API untuk membuat dan mengelola
cluster pelatihan. Anda akan mempelajari cara menentukan konfigurasi lengkap cluster, termasuk node login, partisi GPU berperforma tinggi seperti A4, dan setelan pengelola Slurm—dalam file JSON.
Selain itu, disertakan juga cara menggunakan panggilan curl dan REST API untuk men-deploy konfigurasi ini, membuat cluster, dan mengelola siklus prosesnya dengan operasi GET, LIST, UPDATE, dan DELETE.
Tentukan konfigurasi cluster
Buat file JSON untuk menentukan konfigurasi lengkap untuk cluster pelatihan Anda.
Jika kebijakan organisasi Anda melarang alamat IP Publik pada instance
compute, deploy cluster pelatihan
dengan parameter enable_public_ips: false dan gunakan Cloud NAT untuk
keluar dari internet.
Langkah pertama dalam menyediakan cluster pelatihan adalah menentukan konfigurasi lengkapnya dalam file JSON. File ini berfungsi sebagai cetak biru untuk cluster Anda, yang menentukan semuanya mulai dari nama dan setelan jaringannya hingga hardware untuk node pekerja dan loginnya.
Bagian berikut menyediakan beberapa file konfigurasi JSON lengkap yang berfungsi sebagai template praktis untuk berbagai kasus penggunaan umum. Lihat daftar ini untuk menemukan contoh yang paling sesuai dengan kebutuhan Anda dan gunakan sebagai titik awal.
GPU dengan Filestore saja: Konfigurasi standar untuk pelatihan GPU tujuan umum.
GPU dengan Filestore dan Managed Lustre: Konfigurasi lanjutan untuk tugas yang intensif I/O.
GPU dengan skrip startup: Menunjukkan cara menjalankan perintah kustom pada node saat startup.
Cluster khusus CPU: Konfigurasi dasar yang hanya menggunakan resource CPU.
CPU dengan konfigurasi Slurm lanjutan: Contoh yang menunjukkan setelan penjadwal Slurm kustom.
Setiap contoh diikuti dengan deskripsi mendetail tentang parameter utama yang digunakan dalam konfigurasi tertentu tersebut.
GPU dengan Filestore saja
Ini adalah konfigurasi standar. Direktori ini menyediakan instance Filestore yang berfungsi sebagai direktori /home untuk cluster, yang cocok untuk penggunaan umum dan penyimpanan data pengguna.
Contoh berikut menunjukkan konten gpu-filestore.json. Spesifikasi ini membuat cluster dengan partisi GPU. Anda dapat menggunakan ini sebagai template dan mengubah nilai seperti machineType atau nodeCount agar sesuai dengan kebutuhan Anda.
Untuk mengetahui daftar parameter, lihat Referensi parameter.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 200 } }, { "id": "a4", "machine_spec": { "machine_type": "a4-highgpu-8g", "accelerator_type": "NVIDIA_B200", "accelerator_count": 8, "reservation_affinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION" ] } }, "provisioning_model": "RESERVATION", "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 200 } } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "a4", "node_pool_ids": [ "a4" ] } ], "login_node_pool_id": "login" } } }
GPU dengan Filestore dan Managed Lustre
Konfigurasi lanjutan ini mencakup instance Filestore standar selain sistem file Lustre berperforma tinggi. Pilih opsi ini jika tugas pelatihan Anda memerlukan akses throughput tinggi ke set data besar.
Untuk mengetahui daftar parameter, lihat Referensi parameter.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/asia-sREGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 200 }, "lustres": [ "projects/PROJECT_ID/locations/ZONE/instances/LUSTRE" ] }, { "id": "a4", "machine_spec": { "machine_type": "a4-highgpu-8g", "accelerator_type": "NVIDIA_B200", "accelerator_count": 8, "reservation_affinity": { "reservation_affinity_type": RESERVATION_AFFINITY_TYPE, "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME" ] } }, "provisioning_model": "RESERVATION", "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 200 }, "lustres": [ "projects/PROJECT_ID/locations/ZONE/instances/LUSTRE" ] } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "a4", "node_pool_ids": [ "a4" ] } ], "login_node_pool_id": "login" } } }
GPU dengan skrip startup
Contoh ini menunjukkan cara menambahkan skrip kustom ke node pool. Skrip ini dijalankan di semua node dalam pool tersebut saat startup. Untuk mengonfigurasi ini, tambahkan kolom yang relevan ke definisi node pool Anda selain setelan umum. Untuk mengetahui daftar parameter dan deskripsinya, lihat Referensi parameter.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 200 }, "startup_script" : "#Example script\nsudo mkdir -p /data\necho 'Script Finished'\n", }, { "id": "a4", "machine_spec": { "machine_type": "a4-highgpu-8g", "accelerator_type": "NVIDIA_B200", "accelerator_count": 8, "reservation_affinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME" ] } }, "provisioning_model": "PROVISIONING_MODEL", "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 200 }, "startup_script" : "#Example script\nsudo mkdir -p /data\necho 'Script Finished'\n", } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "a4", "node_pool_ids": [ "a4" ] } ], "login_node_pool_id": "login" } } }
Cluster khusus CPU
Untuk menyediakan lingkungan cluster pelatihan, Anda harus menentukan konfigurasi lengkapnya terlebih dahulu dalam file JSON. File ini berfungsi sebagai cetak biru untuk cluster Anda, yang menentukan semuanya mulai dari nama dan setelan jaringannya hingga hardware untuk node pekerja dan loginnya.
Untuk mengetahui daftar parameter, lihat Referensi parameter.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "cpu", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } }, { "id": "login", "machine_spec": { "machine_type": "n2-standard-8", } "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } }, ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "cpu", "node_pool_ids": [ "cpu" ] } ], "login_node_pool_id": "login" } } }
CPU dengan konfigurasi Slurm lanjutan
Contoh ini menunjukkan cara menyesuaikan orkestrator Slurm dengan parameter lanjutan. Gunakan template ini jika Anda memerlukan kontrol terperinci atas perilaku penjadwalan tugas, seperti menetapkan bobot prioritas multi-faktor, mengonfigurasi pendahuluan tugas, dan menjalankan skrip prolog dan epilog untuk penyiapan dan pembersihan tugas otomatis.
Untuk mengetahui daftar parameter, lihat Referensi parameter.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "cpu", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } }, { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "accounting": { "accounting_storage_enforce": "ACCOUNTING_STORAGE_ENFORCE" }, "scheduling": { "priority_type": "PRIORITY_TYPE", "priority_weight_age": PRIORITY_WEIGHT_AGE, "priority_weight_assoc": PRIORITY_WEIGHT_ASSOC, "priority_weight_fairshare": PRIORITY_WEIGHT_FAIRSHARE, "priority_weight_job_size": PRIORITY_WEIGHT_JOB_SIZE, "priority_weight_partition": PRIORITY_WEIGHT_PARTITION, "priority_weight_qos": PRIORITY_WEIGHT_QOS, "priority_weight_tres": "PRIORITY_WEIGHT_TRES", "preempt_type": "PREEMPT_TYPE", "preempt_mode": "PREEMPT_MODE", "preempt_exempt_time": "PREEMPT_EXEMPT_TIME" }, "prolog_bash_scripts": [ "#!/bin/bash\necho 'First prolog script running'", "#!/bin/bash\necho 'Second prolog script running'" ], "epilog_bash_scripts": [ "#!/bin/bash\necho 'Epilog script running'" ] "partitions": [ { "id": "cpu", "node_pool_ids": [ "cpu" ] } ], "login_node_pool_id": "login" } } }
Setelah cluster ditentukan dalam file JSON, gunakan perintah REST API berikut untuk men-deploy dan mengelola cluster. Contoh menggunakan alias gcurl, yang merupakan pintasan yang diautentikasi dan praktis untuk berinteraksi dengan endpoint API. Perintah ini mencakup siklus proses penuh, mulai dari men-deploy
cluster Anda hingga memperbarui cluster, mendapatkan statusnya, mencantumkan semua cluster,
dan akhirnya menghapus cluster.
Autentikasi
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Buat file JSON
Buat file JSON (misalnya, @cpu-cluster.json) untuk menentukan
konfigurasi untuk cluster Pelatihan Model Anda.
Deploy cluster
Setelah membuat file konfigurasi JSON, Anda dapat men-deploy cluster menggunakan REST API.
Menetapkan variabel lingkungan
Sebelum menjalankan perintah, tetapkan variabel lingkungan berikut. Hal ini membuat perintah API lebih rapi dan lebih mudah dikelola.
- PROJECT_ID: Project ID Google Cloud tempat cluster akan dibuat.
- REGION: Google Cloud Region untuk cluster dan resourcenya.
- ZONE: Google Cloud zona tempat resource cluster akan disediakan.
- CLUSTER_ID: ID unik untuk cluster pelatihan Anda, yang juga digunakan sebagai awalan untuk memberi nama resource terkait.
Jalankan perintah create
Sekarang, jalankan perintah gcurl berikut. Aplikasi ini menggunakan file JSON (dalam contoh ini,
cpu-cluster.json) sebagai isi
permintaan dan variabel lingkungan yang baru saja Anda tetapkan untuk membuat endpoint API dan parameter
kueri.
gcurl -X POST -d @cpu-cluster.json https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?model_development_cluster_id=CLUSTER_ID
Setelah deployment dimulai, ID Operasi akan dibuat. Pastikan untuk menyalin ID ini. Anda akan memerlukannya untuk memvalidasi cluster pada langkah berikutnya.
gcurl -X POST -d @cpu-cluster.json https://us-central1-aiplatform.googleapis.com/v1beta1/projects/managedtraining-project/locations/us-central1/modelDevelopmentClusters?model_development_cluster_id=training { "name": "projects/1059558423163/locations/us-central1/operations/2995239222190800896", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateModelDevelopmentClusterOperationMetadata", "genericMetadata": { "createTime": "2025-10-24T14:16:59.233332Z", "updateTime": "2025-10-24T14:16:59.233332Z" }, "progressMessage": "Create Model Development Cluster request received, provisioning..." }
Memvalidasi deployment cluster
Lacak progres deployment menggunakan ID operasi yang diberikan saat Anda men-deploy cluster. Misalnya, 2995239222190800896 adalah ID
operasi dalam contoh yang dikutip sebelumnya.
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Ringkasan
Mengirimkan konfigurasi cluster dengan perintah POST gcurl akan memulai
penyediaan cluster Anda, yang merupakan operasi asinkron yang berjalan lama. API akan segera menampilkan respons yang berisi Operation ID.
Anda harus menyimpan ID ini karena akan menggunakannya di langkah-langkah berikut untuk
memantau progres deployment, memverifikasi bahwa cluster telah berhasil dibuat, dan mengelola siklus prosesnya.
Referensi parameter
Daftar berikut menjelaskan semua parameter yang digunakan dalam contoh konfigurasi. Parameter diatur ke dalam grup logis berdasarkan resource yang dikonfigurasi.
Setelan umum dan jaringan
- DISPLAY_NAME: Nama unik untuk cluster pelatihan Anda. String hanya boleh berisi karakter alfanumerik huruf kecil, harus diawali dengan huruf, dan dibatasi hingga 10 karakter.
- PROJECT_ID: Project ID Google Cloud Anda.
- REGION: Google Cloud region tempat cluster dan resourcenya akan berada.
- NETWORK: Jaringan Virtual Private Cloud yang akan digunakan untuk resource cluster.
- ZONE: Google Cloud Zona untuk cluster dan resource-nya.
- SUBNETWORK: Subnetwork yang akan digunakan untuk resource cluster.
Konfigurasi node pool
Parameter berikut digunakan untuk menentukan node pool untuk node login dan pekerja.
Setelan umum kumpulan node
-
ID: ID unik untuk node pool dalam cluster
(misalnya, "
login", "a4", "cpu"). -
PROVISIONING_MODEL: Model penyediaan untuk node pekerja
(misalnya,
ON_DEMAND,SPOT,RESERVATION,FLEX_START). -
MACHINE_TYPE: Jenis mesin untuk node pekerja. Nilai yang didukung adalah
a3-megagpu-8g,a3-ultragpu-8g,a4-highgpu-8g. -
MIN_NODE_COUNT:
MIN_NODE_COUNTharus sama denganMAX_NODE_COUNT. -
MAX_NODE_COUNT: Untuk node pool login,
MAX_NODE_COUNTharus sama denganMIN_NODE_COUNT. -
ENABLE_PUBLIC_IPS: Boolean (
trueataufalse) untuk menentukan apakah node login memiliki alamat IP publik. -
BOOT_DISK_TYPE: Jenis disk booting untuk node login (misalnya,
pd-standard,pd-ssd). - BOOT_DISK_SIZE_GB: Ukuran boot disk dalam GB untuk node login.
Setelan Khusus Pekerja
-
ACCELERATOR_TYPE: Akselerator GPU yang sesuai untuk dipasang ke node pekerja.
Nilai yang didukung adalah:
NVIDIA_H100_MEGA_80GBNVIDIA_H200_141GBNVIDIA_B200
- ACCELERATOR_COUNT: Jumlah akselerator yang akan dipasang ke setiap node pekerja.
-
RESERVATION_AFFINITY_TYPE: Afinitas reservasi untuk node pool (misalnya,
SPECIFIC_RESERVATION). - RESERVATION_NAME: Nama reservasi yang akan digunakan untuk node pool.
Konfigurasi orchestrator dan penyimpanan
Kolom ini ditentukan dalam blok orchestrator_spec.slurm_spec dari file JSON.
Setelan Slurm dan Penyimpanan Inti
-
FILESTORE (sesuai dengan
home_directory_storage): Nama resource lengkap instance Filestore yang akan di-mount sebagai direktori/home. -
LUSTRE (sesuai dengan
lustresdi dalam objeknode_pools): Daftar instance Managed Lustre yang sudah ada untuk di-mount di node cluster untuk akses file berperforma tinggi. -
LOGIN_NODE_POOL_ID (sesuai dengan
login_node_pool_id): ID node pool yang akan digunakan untuk node login. -
partitions: Daftar objek partisi, dengan setiap objek memerlukaniddan daftarnode_pool_ids.
Setelan Slurm lanjutan
-
prolog_bash_scripts: Daftar string, di mana setiap string berisi konten lengkap skrip Bash yang akan dieksekusi sebelum tugas dimulai. -
epilog_bash_scripts: Daftar string, di mana setiap string berisi konten lengkap skrip Bash yang akan dieksekusi setelah tugas selesai. - ACCOUNTING_STORAGE_ENFORCE: Menerapkan batas akuntansi untuk penggunaan penyimpanan.
-
PRIORITY_TYPE: Algoritma prioritas penjadwalan yang akan digunakan (misalnya,
priority/multifactor). priority_weight_*: Serangkaian nilai bilangan bulat yang menetapkan bobot ke berbagai faktor dalam perhitungan prioritas penjadwalan (misalnya,priority_weight_age,priority_weight_fairshare).- PREEMPT_TYPE: Plugin preempti yang akan digunakan (misalnya, preempt/partition_prio).
-
PREEMPT_MODE: Mode untuk plugin preempti (misalnya,
REQUEUE). - PREEMPT_EXEMPT_TIME: Waktu setelah tugas dimulai dan tidak dapat didahului.
Langkah berikutnya
Gunakan cluster pelatihan persisten aktif untuk menjalankan workload machine learning Anda.
- Menjalankan tugas di cluster Anda: Kirim
CustomJobuntuk menjalankan tugas pelatihan di cluster persisten Anda. - Mengorkestrasi pelatihan dengan Vertex AI Pipelines: Untuk alur kerja tingkat produksi yang dapat diulang, otomatiskan proses pengiriman tugas menggunakan Vertex AI Pipelines.
- Melihat dan mengelola cluster: Mencantumkan cluster yang ada, memeriksa statusnya, dan melihat detail konfigurasi menggunakan Google Cloud CLI atau konsol Google Cloud .
- Hapus cluster Anda agar tidak menimbulkan biaya: Cluster pelatihan bersifat persisten dan menimbulkan biaya saat aktif.