Ringkasan
Anda dapat mengurangi biaya menjalankan tugas prediksi dengan menggunakan Spot VM. Spot VM adalah instance virtual machine (VM) yang merupakan kapasitas Compute Engine ekstra. Spot VM memiliki diskon yang signifikan, tetapi Compute Engine dapat menghentikan atau menghapus (mem-preempt) Spot VM secara preemptif untuk mengklaim kembali kapasitas kapan saja.
Untuk mempelajari lebih lanjut, lihat Spot VM.
Batasan dan persyaratan
Pertimbangkan batasan dan persyaratan berikut saat menggunakan Spot VM dengan Agent Platform:
- Semua Spot VM batasan berlaku saat menggunakan Spot VM dengan Agent Platform.
- Penggunaan Spot VM dengan Agent Platform hanya didukung untuk pelatihan dan inferensi tanpa server.
- Penggunaan Spot VM dengan Pod TPU tidak didukung.
- Pengiriman tugas melalui konsol tidak didukung. Google Cloud
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 melambat tetapi tidak berhenti sepenuhnya. Spot VM menyelesaikan tugas batch processing tanpa menempatkan beban tambahan pada VM yang ada dan tanpa mengharuskan Anda membayar VM standar tambahan dengan harga penuh. Lihat Penanganan preemption.
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. Untuk mempelajari cara memaksimalkan Spot VM, lihat Praktik terbaik Spot VM.
Mendapatkan inferensi menggunakan Spot VM
Untuk menggunakan Spot VM saat men-deploy model untuk mendapatkan inferensi, Anda dapat menggunakan REST API atau Agent Platform SDK untuk Python.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda menggunakan Agent Platform.
- PROJECT_ID: [Project ID](/resource-manager/docs/creating-managing-projects#identifiers) Anda. .
- 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 tampilanModeluntukDeployedModel. -
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 yang akan digunakan untuk setiap replika.
- 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 node ini dan tidak pernah kurang dari jumlah minimum node.
- 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 Agent Platform SDK untuk Python, lihat Menginstal Agent Platform SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Agent Platform 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 Membuat dan menggunakan Spot VM.
- Menggunakan Spot VM dengan pelatihan Agent Platform training.
- Menggunakan VM Flex-start dengan Agent Platform inferensi.