Dokumen ini menjelaskan cara menggunakan reservasi Compute Engine untuk mendapatkan tingkat kepastian yang tinggi bahwa tugas prediksi Anda memiliki resource virtual machine (VM) yang diperlukan untuk dijalankan.
Pemesanan adalah fitur Compute Engine. Pemesanan ini 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 mencadangkan resource, membuat pemesanan, dan hal berikut akan terjadi:
- Anda dapat langsung menggunakan resource yang dicadangkan, dan resource tersebut tetap tersedia hingga Anda menghapus pemesanan.
- Anda akan ditagih untuk resource yang dicadangkan dengan tarif on-demand yang sama seperti VM yang berjalan, termasuk diskon yang berlaku, hingga reservasi dihapus. VM yang menggunakan pemesanan tidak dikenakan biaya terpisah. Anda hanya ditagih untuk resource di luar reservasi, seperti disk atau alamat IP. Untuk mempelajari lebih lanjut, lihat harga untuk reservasi.
Batasan dan persyaratan
Saat menggunakan reservasi Compute Engine dengan Vertex AI, pertimbangkan batasan dan persyaratan berikut:
- Vertex AI hanya dapat menggunakan reservasi untuk CPU (Pratinjau), GPU VM, atau TPU (Pratinjau).
- Vertex AI tidak dapat menggunakan reservasi VM yang memiliki disk SSD Lokal yang terpasang secara manual.
- Penggunaan reservasi Compute Engine dengan Vertex AI hanya didukung untuk pelatihan dan inferensi kustom serta untuk Vertex AI Workbench (Pratinjau).
- Properti VM pemesanan harus sama persis dengan beban kerja Vertex AI Anda
untuk menggunakan pemesanan. Misalnya, jika reservasi menentukan jenis mesin
a2-ultragpu-8g
, maka beban kerja Vertex AI hanya dapat menggunakan reservasi jika 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 memiliki akses ke pemesanan tersebut. Lihat Cara kerja pemesanan bersama.
- Untuk mendukung update rutin deployment Vertex AI, sebaiknya tingkatkan
jumlah VM Anda lebih dari jumlah total replika sebagai berikut, sesuai dengan
jenis reservasi yang digunakan oleh
DeployedModel
:SPECIFIC_RESERVATION
: Harus menentukan setidaknya 1 VM tambahan; kami merekomendasikan 10% (tetapi setidaknya 1). Model yang di-deploy menggunakanSPECIFIC_RESERVATION
dijamin hanya menggunakan VM dari reservasi. Vertex AI tidak dapat melakukan update jika tidak ada VM tambahan.ANY
:- Tidak perlu memiliki VM tambahan, karena model yang di-deploy menggunakan reservasi
ANY
menggunakan VM sesuai permintaan jika kapasitas reservasi tidak mencukupi. Namun, tanpa VM tambahan, reservasi Anda mungkin tidak sepenuhnya digunakan setelah upgrade. Misalnya, Anda memiliki reservasi dengan 40 VM dan men-deploy model dengan 40 replika menggunakan reservasi tersebut. Saat Anda men-deploy pertama kali, semua 40 VM dalam reservasi digunakan olehDeployedModel
. Setelah upgrade, hanya 36 VM yang berasal dari pemesanan, dan 4 VM bersifat on-demand. - Jika Anda ingin mempertahankan penggunaan dalam pemesanan, sebaiknya miliki setidaknya 1
VM tambahan untuk setiap
DeployedModel
atauDeploymentResourcePool
yang menggunakan pemesanan. Jika jumlah total VM dengan jenis yang sama dalam pemesananANY
Anda kurang dari 50, sebaiknya tambahkan 10% (tetapi minimal 1). Jika lebih besar dari 50, sebaiknya tambahkan 25%. Contoh:- Jika Anda berencana men-deploy model menggunakan 40 VM A3, Anda dapat memiliki 1 pemesanan A3 dengan 44 VM, atau 2 pemesanan A3: pemesanan X dengan 30 VM, dan pemesanan Y dengan 14 VM (total 44). Hal yang sama berlaku untuk jumlah reservasi lainnya, selama semuanya dibagikan dengan Vertex AI dan jumlah total VM dalam reservasi tersebut adalah minimal 44.
- Jika Anda berencana men-deploy model menggunakan 100 VM A3, jumlah total VM di semua reservasi A3 yang dibagikan dengan Vertex AI harus minimal 125.
- Jika Anda berencana men-deploy 2 model menggunakan 10 VM, jumlah total VM di semua reservasi A3 yang dibagikan dengan Vertex AI harus minimal 12. Jumlah VM kurang dari 50, tetapi jumlah VM tambahan adalah 2
(1 per
DeployedModel
).
- Untuk menggunakan reservasi
SPECIFIC_RESERVATION
, berikan peran IAM Compute Viewer kepada akun layanan Vertex AI di project yang memiliki reservasi (service-${PROJECT_NUMBER}@gcp-sa-aiplatform.iam.gserviceaccount.com
, dengan PROJECT_NUMBER adalah nomor project dari project yang menggunakan reservasi). -
Layanan dan kemampuan berikut tidak didukung saat menggunakan reservasi Compute Engine dengan inferensi Vertex AI:
- Kepatuhan terhadap Federal Risk and Authorization Management Program (FedRAMP)
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 prediksi Vertex AI selain penggunaan infrastruktur Anda. Lihat Harga prediksi.
Sebelum memulai
- Tinjau persyaratan dan batasan untuk pemesanan.
- Tinjau persyaratan kuota dan batasan untuk pemesanan bersama.
Mengizinkan penggunaan reservasi
Sebelum menggunakan reservasi CPU, VM GPU, atau TPU, Anda harus menetapkan kebijakan berbagi untuk mengizinkan Vertex AI menggunakan reservasi. Untuk melakukannya, gunakan salah satu metode berikut:
Mengizinkan konsumsi saat membuat reservasi
Saat membuat pemesanan satu project atau pemesanan bersama VM GPU, Anda dapat mengizinkan Vertex AI menggunakan pemesanan sebagai berikut:
- Jika Anda menggunakan konsol Google Cloud , di bagian layanan Google Cloud, pilih Bagikan reservasi.
- Jika Anda menggunakan Google Cloud CLI, sertakan
flag
--reservation-sharing-policy
yang ditetapkan keALLOW_ALL
. - Jika Anda menggunakan REST API, sertakan kolom
serviceShareType
yang ditetapkan keALLOW_ALL
di isi permintaan.
Mengizinkan konsumsi dalam reservasi yang ada
Anda dapat mengubah pemesanan yang dibuat secara otomatis untuk VM GPU atau TPU untuk pemesanan untuk masa mendatang hanya setelah waktu mulai pemesanan.
Untuk mengizinkan Vertex AI menggunakan reservasi yang ada, gunakan salah satu metode berikut:
Memverifikasi bahwa reservasi telah digunakan
Untuk memverifikasi bahwa pemesanan sedang digunakan, lihat Memverifikasi pemakaian pemesanan dalam dokumentasi Compute Engine.Mendapatkan inferensi menggunakan reservasi
Untuk membuat deployment model yang menggunakan reservasi Compute Engine untuk VM GPU, gunakan REST API atau Vertex AI SDK untuk Python.
REST
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project tempat reservasi dibuat. Untuk menggunakan pemesanan bersama dari project lain, Anda harus membagikan pemesanan tersebut ke project itu. Untuk mengetahui informasi selengkapnya, lihat Mengubah project konsumen dalam pemesanan bersama.
- ENDPOINT_ID: ID untuk endpoint.
- MODEL_ID: ID untuk model yang akan di-deploy.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
. - MACHINE_TYPE: jenis mesin yang akan digunakan untuk setiap node dalam deployment ini. Setelan
default-nya adalah
n1-standard-2
. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang didukung, lihat Mengonfigurasi resource komputasi untuk prediksi. - ACCELERATOR_TYPE: jenis akselerator yang akan dipasang ke mesin. Untuk mengetahui informasi selengkapnya tentang jenis GPU yang didukung setiap jenis mesin, lihat GPU untuk beban kerja komputasi.
- ACCELERATOR_COUNT: jumlah akselerator yang akan dipasang ke mesin.
- RESERVATION_AFFINITY_TYPE: Harus berupa
ANY
,SPECIFIC_RESERVATION
, atauNONE
.ANY
berarti VMcustomJob
Anda dapat otomatis menggunakan reservasi apa pun dengan properti yang cocok.SPECIFIC_RESERVATION
berarti VMcustomJob
hanya dapat menggunakan reservasi yang secara khusus ditargetkan oleh VM berdasarkan nama.NONE
berarti VMcustomJob
Anda tidak dapat menggunakan reservasi apa pun. MenentukanNONE
memiliki efek yang sama dengan menghilangkan spesifikasi afinitas reservasi.
- ZONE: zona tempat pemesanan dibuat.
- RESERVATION_NAME: nama pemesanan Anda.
- MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban inferensi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini. Nilai ini harus lebih besar dari atau sama dengan 1.
- MAX_REPLICA_COUNT: Jumlah maksimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban inferensi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
- TRAFFIC_SPLIT_THIS_MODEL: persentase traffic prediksi ke endpoint ini yang akan dirutekan ke model yang di-deploy dengan operasi ini. Setelan defaultnya adalah 100. Semua persentase traffic harus berjumlah 100. Pelajari pemisahan traffic lebih lanjut.
- DEPLOYED_MODEL_ID_N: Opsional. Jika model lain di-deploy ke endpoint ini, Anda harus memperbarui persentase pemisahan traffic agar semua persentase berjumlah 100.
- TRAFFIC_SPLIT_MODEL_N: nilai persentase pemisahan traffic untuk kunci ID model yang di-deploy.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Meminta isi JSON:
{ "deployedModel": { "model": "projects/PROJECT/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": ACCELERATOR_COUNT, "reservationAffinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME" ] } }, "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Vertex AI SDK untuk Python.
Sebelum menjalankan salah satu skrip berikut, lakukan penggantian berikut:
- DEPLOYED_NAME: nama untuk model yang di-deploy.
- TRAFFIC_SPLIT: nilai persentase pemisahan traffic untuk kunci ID model yang di-deploy.
- MACHINE_TYPE: mesin yang digunakan untuk setiap node
deployment ini. Setelan defaultnya adalah
n1-standard-2
. Pelajari lebih lanjut jenis mesin. - ACCELERATOR_TYPE: jenis akselerator yang akan dipasang ke mesin. Untuk mengetahui informasi selengkapnya tentang jenis GPU yang didukung setiap jenis mesin, lihat GPU untuk beban kerja komputasi.
- ACCELERATOR_COUNT: jumlah akselerator yang akan dipasang ke mesin.
- PROJECT_ID: project tempat reservasi dibuat. Untuk menggunakan pemesanan bersama dari project lain, Anda harus membagikan pemesanan ke project tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengubah project konsumen dalam pemesanan bersama.
- ZONE: zona tempat pemesanan berada.
- RESERVATION_NAME: nama pemesanan Anda.
- MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban inferensi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini. Nilai ini harus lebih besar dari atau sama dengan 1.
- MAX_REPLICA_COUNT: Jumlah maksimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban inferensi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
Bergantung pada jenis reservasi yang ingin Anda gunakan, lakukan salah satu hal berikut:
- Untuk memakai reservasi tertentu:
endpoint5.deploy( model = model, deployed_model_display_name=DEPLOYED_NAME, traffic_split=TRAFFIC_SPLIT, machine_type="MACHINE_TYPE", accelerator_type="ACCELERATOR_TYPE", accelerator_count=ACCELERATOR_COUNT, reservation_affinity_type="SPECIFIC_RESERVATION", reservation_affinity_key="compute.googleapis.com/reservation-name", reservation_affinity_values=["projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"], min_replica_count=MIN_REPLICA_COUNT, max_replica_count=MAX_REPLICA_COUNT, sync=True )
- Untuk menggunakan pemesanan yang digunakan secara otomatis:
endpoint5.deploy( model = model, deployed_model_display_name=DEPLOYED_NAME, traffic_split=TRAFFIC_SPLIT, machine_type="MACHINE_TYPE", accelerator_type="ACCELERATOR_TYPE", accelerator_count=ACCELERATOR_COUNT, reservation_affinity_type="ANY_RESERVATION", min_replica_count=MIN_REPLICA_COUNT, max_replica_count=MAX_REPLICA_COUNT, sync=True )
Langkah berikutnya
- Pelajari lebih lanjut reservasi resource zona Compute Engine.
- Pelajari cara menggunakan reservasi dengan pelatihan Vertex AI.
- Pelajari cara melihat pemesanan.
- Pelajari cara memantau pemakaian pemesanan.