Ringkasan
Anda dapat mengurangi biaya menjalankan tugas prediksi dengan menggunakan Spot VM. Spot VM adalah instance virtual machine (VM) yang merupakan kapasitas Compute Engine berlebih. Spot VM memiliki diskon yang signifikan, tetapi Compute Engine dapat menghentikan atau menghapus (mem-preempt) Spot VM secara preemptif untuk memulihkan kapasitas kapan saja.
Untuk mempelajari lebih lanjut, lihat Spot VM.
Batasan dan persyaratan
Pertimbangkan batasan dan persyaratan berikut saat menggunakan Spot VM dengan Vertex AI:
- Semua batasan Spot VM berlaku saat menggunakan Spot VM dengan Vertex AI.
- Penggunaan Spot VM dengan Vertex AI hanya didukung untuk pelatihan dan inferensi kustom.
- Penggunaan Spot VM dengan Pod TPU tidak didukung.
- Pengiriman tugas melalui konsol Google Cloud tidak didukung.
Penagihan
Jika workload Anda fault-tolerant dan dapat menahan kemungkinan preemption VM, Spot VM dapat mengurangi biaya komputasi Anda secara signifikan. Jika beberapa VM Anda berhenti selama pemrosesan, tugas akan berjalan lambat tetapi tidak akan berhenti sepenuhnya. Spot VM akan menyelesaikan tugas batch processing tanpa menempatkan beban tambahan di VM yang ada dan tanpa mengharuskan Anda membayar VM standar tambahan dengan harga penuh. Lihat Penanganan pengambilalihan.
Saat menggunakan Spot VM, Anda akan ditagih berdasarkan durasi tugas dan jenis mesin. Anda tidak membayar waktu saat tugas berada dalam antrean atau di-preempt.
Penanganan preemption
Spot VM dapat diklaim kembali oleh Compute Engine kapan saja.
Saat Spot VM di-preempt, tugas prediksi akan gagal dengan error STOCKOUT
dan Compute Engine akan mencoba memulai ulang tugas hingga enam kali. Untuk mempelajari cara memaksimalkan Spot VM, lihat praktik terbaik Spot VM.
Mendapatkan inferensi menggunakan Spot VM
Untuk menggunakan VM Spot saat men-deploy model guna mendapatkan inferensi, Anda dapat menggunakan 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 ID Anda.
- ENDPOINT_ID: ID untuk endpoint tersebut.
- MODEL_ID: ID untuk model yang akan di-deploy.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
. -
MACHINE_TYPE: Opsional. Resource mesin yang digunakan untuk setiap node deployment ini. Setelan defaultnya adalah
n1-standard-2
. Pelajari jenis-jenis mesin lebih lanjut. - ACCELERATOR_TYPE: Opsional. Jenis akselerator yang akan dipasang ke mesin. Pelajari lebih lanjut.
- ACCELERATOR_COUNT: Opsional. Jumlah akselerator untuk setiap replika yang akan digunakan.
- 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:
{ "acceleratorCount": 1}, "spot": true, "minReplicaCount": 1, "maxReplicaCount": 1}}, "trafficSplit": {"0": 100}}' \ "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel" "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "enableContainerLogging": true, "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": ACCELERATOR_COUNT }, "spot": true, "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/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.
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, min_replica_count=MIN_REPLICA_COUNT, max_replica_count=MAX_REPLICA_COUNT, spot=True, sync=True )
Langkah berikutnya
- Pelajari Spot VM lebih lanjut.
- Untuk mempelajari lebih lanjut VM Compute Engine secara umum, baca dokumentasi Instance virtual machine.
- Untuk mempelajari cara membuat Spot VM, baca artikel Membuat dan menggunakan Spot VM.
- Menggunakan Spot VM dengan pelatihan Vertex AI.
- Gunakan VM flex-start DWS dengan inferensi Vertex AI.