Dokumen ini menjelaskan cara menggunakan pemesanan Compute Engine untuk mendapatkan tingkat jaminan yang tinggi bahwa tugas pelatihan serverless Anda memiliki resource virtual machine (VM) yang diperlukan untuk dijalankan.
Pemesanan adalah fitur Compute Engine. Pemesanan membantu memastikan bahwa Anda memiliki resource yang tersedia untuk membuat VM dengan hardware yang sama (memori dan vCPU) dan resource opsional (CPU, GPU, TPU, dan disk SSD Lokal) kapan pun Anda membutuhkannya.
Saat Anda membuat pemesanan, Compute Engine akan memverifikasi bahwa kapasitas yang diminta tersedia di zona yang ditentukan. Jika ya, Compute Engine akan memesan resource, membuat pemesanan, dan hal berikut akan terjadi:
- Anda dapat segera menggunakan resource yang dipesan, dan resource tersebut akan tetap tersedia hingga Anda menghapus pemesanan.
- Anda akan dikenai biaya untuk resource yang dipesan dengan tarif on-demand yang sama seperti VM yang berjalan, termasuk diskon yang berlaku, hingga pemesanan dihapus. VM yang menggunakan pemesanan tidak dikenakan biaya terpisah. Anda hanya akan dikenai biaya untuk resource di luar pemesanan, seperti disk atau alamat IP. Untuk mempelajari lebih lanjut, lihat harga untuk pemesanan.
Batasan dan persyaratan
Saat menggunakan pemesanan Compute Engine dengan Agent Platform, pertimbangkan batasan dan persyaratan berikut:
- Agent Platform hanya dapat menggunakan pemesanan untuk CPU, VM GPU, atau TPU (Pratinjau).
- Agent Platform tidak dapat menggunakan pemesanan VM yang memiliki disk SSD Lokal yang dipasang secara manual.
- Penggunaan pemesanan Compute Engine dengan Agent Platform hanya didukung untuk pelatihan serverless, inferensi, dan Gemini Enterprise Agent Platform Workbench (Pratinjau).
- Properti VM pemesanan harus sama persis dengan workload Agent Platform Anda
untuk menggunakan pemesanan. Misalnya, jika pemesanan menentukan jenis mesin
a2-ultragpu-8g, workload Agent Platform hanya dapat menggunakan pemesanan tersebut jika workload tersebut juga menggunakan jenis mesina2-ultragpu-8g. Lihat Persyaratan. - Untuk menggunakan pemesanan bersama VM GPU atau TPU, Anda harus menggunakannya menggunakan project pemiliknya atau project konsumen yang menggunakan pemesanan bersama tersebut. Lihat Cara kerja pemesanan bersama.
- Untuk mendukung update rutin deployment Agent Platform, sebaiknya tingkatkan jumlah VM Anda setidaknya 1 VM tambahan untuk setiap deployment serentak.
-
Flex Start untuk Dynamic Workload Scheduler dan menjalankan tugas pelatihan pada resource persisten didukung, kecuali saat menggunakan pemesanan Compute Engine dengan pelatihan Agent Platform.
Penagihan
Saat menggunakan pemesanan Compute Engine, Anda akan ditagih untuk hal-hal berikut:
- Harga Compute Engine untuk resource Compute Engine, termasuk diskon abonemen (DA) yang berlaku. Lihat harga Compute Engine.
- Biaya pengelolaan pelatihan serverless Agent Platform selain penggunaan infrastruktur Anda. Lihat Harga model yang dilatih secara khusus.
Sebelum memulai
- Tinjau persyaratan dan batasan untuk pemesanan.
- Tinjau persyaratan kuota dan batasan untuk pemesanan bersama.
Mengizinkan reservasi digunakan
Sebelum menggunakan pemesanan CPU, VM GPU, atau TPU, Anda harus menetapkan kebijakan berbagi untuk mengizinkan Agent Platform menggunakan pemesanan tersebut. Untuk melakukannya, gunakan salah satu metode berikut:
Mengizinkan pemakaian saat membuat pemesanan
Saat membuat project tunggal atau pemesanan bersama VM GPU, Anda dapat mengizinkan Agent Platform menggunakan pemesanan sebagai berikut:
- Jika Anda menggunakan konsol Google Cloud , di bagian Google Cloud services, pilih Share reservation.
- Jika Anda menggunakan Google Cloud CLI, sertakan flag
--reservation-sharing-policyyang ditetapkan keALLOW_ALL. - Jika Anda menggunakan REST API, sertakan kolom
serviceShareTypeyang ditetapkan keALLOW_ALLdalam isi permintaan.
Mengizinkan pemakaian reservasi yang ada
Anda hanya dapat mengubah pemesanan yang dibuat otomatis untuk VM GPU atau TPU untuk pemesanan untuk masa mendatang setelah waktu mulai pemesanan.
Agar Agent Platform dapat menggunakan reservasi yang ada, gunakan salah satu metode berikut:
Memverifikasi bahwa reservasi digunakan
Untuk memverifikasi bahwa pemesanan sedang digunakan, lihat Memverifikasi pemakaian pemesanan dalam dokumentasi Compute Engine.Membuat tugas pelatihan serverless dengan pemesanan
Gunakan REST API untuk membuat tugas pelatihan serverless yang menggunakan pemesanan VM GPU Compute Engine.
Cara kerja afinitas dan validasi pemesanan
Saat Anda mengirimkan tugas pelatihan kustom yang menentukan konfigurasi reservationAffinity, Agent Platform akan memvalidasi konfigurasi pemesanan Anda sebelum mengantrekan tugas:
- Untuk
ANY_RESERVATION:- Setidaknya satu pemesanan yang digunakan secara otomatis harus ada di region tugas Anda dan dibagikan kepada Agent Platform (dan dibagikan kepada project Anda, jika pemesanan berada di project host yang berbeda).
- Kolom
keydanvaluesdireservationAffinityharus dihilangkan atau kosong.
- Untuk
SPECIFIC_RESERVATION:- Kolom
keyharus ditetapkan kecompute.googleapis.com/reservation-name, dan kolomvaluesharus menentukan satu pemesanan yang ada di zona dalam region tugas. - Pemesanan yang ditentukan harus dikonfigurasi untuk penargetan tertentu (bukan penggunaan otomatis) dan harus dibagikan kepada Agent Platform (dan kepada project Anda, jika pemesanan berada di project host yang berbeda).
- Kolom
Jika salah satu pemeriksaan validasi ini gagal, API akan langsung menolak permintaan
dengan error INVALID_ARGUMENT. Validasi di awal tidak memverifikasi kompatibilitas jenis mesin atau kapasitas pemesanan yang tersedia pada saat pengiriman tugas.
Tabel berikut merangkum cara Agent Platform menangani tugas pelatihan
berdasarkan status pemesanan dan reservationAffinityType:
| Skenario | Perilaku dengan ANY_RESERVATION |
Perilaku dengan SPECIFIC_RESERVATION |
|---|---|---|
| Pemesanan ada, cocok dengan properti mesin, dan memiliki kapasitas yang tersedia | Tugas diterima, dirutekan ke zona pemesanan, dan menggunakan pemesanan. | Tugas diterima dan menggunakan pemesanan yang ditentukan. |
| Pemesanan ada dan cocok dengan properti mesin, tetapi sudah penuh | Tugas diterima dan dirutekan ke zona tempat pemesanan yang cocok berada. Karena kapasitas yang dipesan habis, Platform Agen akan mencoba menyediakan kapasitas on-demand. | Tugas diterima, tetapi jika kapasitas tidak tersedia dalam pemesanan yang ditargetkan, Agent Platform. Kapasitas ini tidak akan beralih ke kapasitas on-demand. |
| Pemesanan ada, tetapi tidak dibagikan kepada Agent Platform atau project konsumen |
Tugas akan langsung gagal saat pengiriman dengan error INVALID_ARGUMENT (kecuali jika ada pemesanan lain yang dapat diakses dan digunakan secara otomatis di region tersebut).
|
Tugas akan langsung gagal saat pengiriman dengan error INVALID_ARGUMENT.
|
| Tidak ada pemesanan yang dapat diakses di region tugas |
Tugas akan langsung gagal saat pengiriman dengan error INVALID_ARGUMENT. Kapasitas ini tidak akan kembali ke kapasitas on-demand.
|
Tugas akan langsung gagal saat pengiriman dengan error INVALID_ARGUMENT.
|
REST
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION: Region tempat container atau paket Python akan dijalankan.
- PROJECT_ID: project tempat pemesanan dibuat. Untuk menggunakan pemesanan bersama dari project lain, Anda harus membagikan pemesanan tersebut ke project tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengubah project konsumen dalam pemesanan bersama.
-
JOB_NAME: Wajib diisi. Nama tampilan untuk
CustomJob. - MACHINE_TYPE: jenis mesin yang akan digunakan untuk tugas. Setelan defaultnya adalah
n1-standard-2. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang didukung, lihat Mengonfigurasi resource komputasi untuk pelatihan kustom. - ACCELERATOR_TYPE: jenis akselerator yang akan dipasang ke mesin. Untuk mengetahui informasi selengkapnya tentang jenis GPU yang didukung setiap jenis mesin, lihat GPU untuk workload komputasi.
- ACCELERATOR_COUNT: jumlah akselerator yang akan dipasang ke mesin.
- Tentukan tugas pelatihan kustom:
RESERVATION_AFFINITY_TYPE: Harus berupa
ANY_RESERVATION,SPECIFIC_RESERVATION, atauNO_RESERVATION.ANY_RESERVATIONberarti VMcustomJobAnda dapat otomatis menggunakan pemesanan apa pun dengan properti yang cocok.SPECIFIC_RESERVATIONberarti VMcustomJobAnda hanya dapat menggunakan pemesanan yang secara khusus ditargetkan oleh VM berdasarkan nama.NO_RESERVATIONberarti VMcustomJobAnda tidak dapat menggunakan pemesanan apa pun. MenentukanNO_RESERVATIONmemiliki efek yang sama dengan menghilangkan spesifikasi afinitas reservasi.
- ZONE: zona tempat pemesanan dibuat.
- RESERVATION_NAME: nama pemesanan Anda.
- DISK_TYPE: Opsional. Jenis boot disk yang akan digunakan untuk tugas,
pd-standard(default) ataupd-ssd. Pelajari jenis disk lebih lanjut - DISK_SIZE: Opsional. Ukuran boot disk yang digunakan untuk tugas dalam satuan GB. Nilai defaultnya adalah 100.
- REPLICA_COUNT: jumlah replika worker yang akan digunakan. Pada umumnya,
tetapkan ini ke
1untuk kumpulan worker pertama Anda. - Jika aplikasi pelatihan Anda berjalan dalam container kustom, tentukan hal berikut:
- CUSTOM_CONTAINER_IMAGE_URI: URI image container di Artifact Registry atau Docker Hub yang akan dijalankan di setiap replika worker.
- CUSTOM_CONTAINER_COMMAND: Opsional. Perintah yang akan dipanggil saat container dimulai. Perintah ini mengganti titik entri default container.
- CUSTOM_CONTAINER_ARGS: Opsional. Argumen yang akan diteruskan saat memulai container.
- Jika aplikasi pelatihan Anda adalah paket Python yang berjalan dalam container bawaan,
tentukan hal berikut:
- EXECUTOR_IMAGE_URI: URI image container yang menjalankan kode yang disediakan. Lihat container bawaan yang tersedia untuk pelatihan.
- PYTHON_PACKAGE_URIS: Daftar URI Cloud Storage yang dipisahkan koma yang menentukan file paket Python yang merupakan program pelatihan dan paket dependensinya. Jumlah maksimum URI paket adalah 100.
- PYTHON_MODULE: Nama modul Python yang akan dijalankan setelah menginstal paket.
- PYTHON_PACKAGE_ARGS: Opsional. Argumen command line yang akan diteruskan ke modul Python.
- TIMEOUT: Opsional. Waktu berjalan maksimum untuk tugas.
- Tentukan LABEL_NAME dan LABEL_VALUE untuk setiap label yang ingin Anda terapkan ke tugas kustom ini.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
Meminta isi JSON:
{
"displayName": "JOB_NAME",
"jobSpec": {
"workerPoolSpecs": [
{
"machineSpec": {
"machineType": "MACHINE_TYPE",
"acceleratorType": "ACCELERATOR_TYPE",
"acceleratorCount": ACCELERATOR_COUNT,
"reservationAffinity": {
"reservationAffinityType": "RESERVATION_AFFINITY_TYPE",
// Use the following key and values only if
// the reservationAffinityType is SPECIFIC_RESERVATION.
"key": "compute.googleapis.com/reservation-name",
"values": [
"projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"
]
},
},
"replicaCount": REPLICA_COUNT,
"diskSpec": {
"bootDiskType": DISK_TYPE,
"bootDiskSizeGb": DISK_SIZE
},
// Union field task can be only one of the following:
"containerSpec": {
"imageUri": CUSTOM_CONTAINER_IMAGE_URI,
"command": [
CUSTOM_CONTAINER_COMMAND
],
"args": [
CUSTOM_CONTAINER_ARGS
]
},
"pythonPackageSpec": {
"executorImageUri": EXECUTOR_IMAGE_URI,
"packageUris": [
PYTHON_PACKAGE_URIS
],
"pythonModule": PYTHON_MODULE,
"args": [
PYTHON_PACKAGE_ARGS
]
}
// End of list of possible types for union field task.
}
// Specify one workerPoolSpec for single replica training, or multiple workerPoolSpecs
// for distributed training.
],
"scheduling": {
"timeout": TIMEOUT
}
},
"labels": {
LABEL_NAME_1": LABEL_VALUE_1,
LABEL_NAME_2": LABEL_VALUE_2
}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
Respons ini berisi informasi tentang spesifikasi serta TRAININGPIPELINE_ID.
Langkah berikutnya
- Pelajari lebih lanjut pemesanan resource zona Compute Engine.
- Pelajari cara menggunakan pemesanan dengan inferensi online Agent Platform.
- Pelajari cara menggunakan pemesanan dengan inferensi batch Agent Platform.
- Pelajari cara melihat pemesanan.
- Pelajari cara memantau pemakaian pemesanan.