Mengonfigurasi resource komputasi untuk inferensi

Vertex AI mengalokasikan node untuk menangani inferensi online dan batch. Saat men-deploy model yang dilatih khusus atau model AutoML ke resource Endpoint untuk menyajikan inferensi online atau saat meminta inferensi batch, Anda dapat menyesuaikan jenis virtual machine yang digunakan layanan inferensi untuk node ini. Anda dapat mengonfigurasi node inferensi secara opsional untuk menggunakan GPU.

Jenis mesin berbeda dalam beberapa hal:

  • Jumlah CPU virtual (vCPU) per node
  • Jumlah memori per node
  • Harga

Dengan memilih jenis mesin dengan resource komputasi lebih banyak, Anda dapat menyajikan inferensi dengan latensi lebih rendah atau menangani lebih banyak permintaan inferensi secara bersamaan.

Mengelola biaya dan ketersediaan

Untuk membantu mengelola biaya atau memastikan ketersediaan resource VM, Vertex AI menyediakan hal berikut:

  • Untuk memastikan resource VM tersedia saat tugas inferensi Anda membutuhkannya, Anda dapat menggunakan reservasi Compute Engine. Pemesanan memberikan tingkat jaminan yang tinggi dalam mendapatkan kapasitas untuk resource Compute Engine. Untuk mengetahui informasi selengkapnya, lihat Menggunakan reservasi dengan inferensi.

  • Untuk mengurangi biaya menjalankan tugas inferensi, Anda dapat menggunakan Spot VM. Spot VM adalah instance virtual machine (VM) yang merupakan kapasitas berlebih Compute Engine. Spot VM memiliki diskon yang signifikan, tetapi Compute Engine dapat menghentikan atau menghapus Spot VM secara preemptif untuk memulihkan kapasitas kapan saja. Untuk mengetahui informasi selengkapnya, lihat artikel Menggunakan Spot VM dengan inferensi.

Tempat menentukan resource komputasi

Inferensi online

Jika ingin menggunakan model yang dilatih khusus atau model tabulasi AutoML untuk menyajikan inferensi online, Anda harus menentukan jenis mesin saat men-deploy resource Model sebagai DeployedModel ke Endpoint. Untuk jenis model AutoML lainnya, Vertex AI mengonfigurasi jenis mesin secara otomatis.

Tentukan jenis mesin (dan, secara opsional, konfigurasi GPU) di kolom dedicatedResources.machineSpec DeployedModel.

Pelajari cara men-deploy setiap jenis model:

Inferensi batch

Jika ingin mendapatkan inferensi batch dari model yang dilatih khusus atau model tabulasi AutoML, Anda harus menentukan jenis mesin saat membuat resource BatchPredictionJob. Tentukan jenis mesin (dan, secara opsional, konfigurasi GPU) di kolom dedicatedResources.machineSpec pada BatchPredictionJob.

Jenis mesin

Tabel berikut membandingkan jenis mesin yang tersedia untuk menyajikan inferensi dari model yang dilatih khusus dan model tabulasi AutoML:

Seri E2

Nama vCPU Memori (GB)
e2-standard-2 2 8
e2-standard-4 4 16
e2-standard-8 8 32
e2-standard-16 16 64
e2-standard-32 32 128
e2-highmem-2 2 16
e2-highmem-4 4 32
e2-highmem-8 8 64
e2-highmem-16 16 128
e2-highcpu-2 2 2
e2-highcpu-4 4 4
e2-highcpu-8 8 8
e2-highcpu-16 16 16
e2-highcpu-32 32 32

Seri N1

Nama vCPU Memori (GB)
n1-standard-2 2 7,5
n1-standard-4 4 15
n1-standard-8 8 30
n1-standard-16 16 60
n1-standard-32 32 120
n1-highmem-2 2 13
n1-highmem-4 4 26
n1-highmem-8 8 52
n1-highmem-16 16 104
n1-highmem-32 32 208
n1-highcpu-4 4 3,6
n1-highcpu-8 8 7,2
n1-highcpu-16 16 14,4
n1-highcpu-32 32 28,8

Seri N2

Nama vCPU Memori (GB)
n2-standard-2 2 8
n2-standard-4 4 16
n2-standard-8 8 32
n2-standard-16 16 64
n2-standard-32 32 128
n2-standard-48 48 192
n2-standard-64 64 256
n2-standard-80 80 320
n2-standard-96 96 384
n2-standard-128 128 512
n2-highmem-2 2 16
n2-highmem-4 4 32
n2-highmem-8 8 64
n2-highmem-16 16 128
n2-highmem-32 32 256
n2-highmem-48 48 384
n2-highmem-64 64 512
n2-highmem-80 80 640
n2-highmem-96 96 768
n2-highmem-128 128 864
n2-highcpu-2 2 2
n2-highcpu-4 4 4
n2-highcpu-8 8 8
n2-highcpu-16 16 16
n2-highcpu-32 32 32
n2-highcpu-48 48 48
n2-highcpu-64 64 64
n2-highcpu-80 80 80
n2-highcpu-96 96 96

Seri N2D

Nama vCPU Memori (GB)
n2d-standard-2 2 8
n2d-standard-4 4 16
n2d-standard-8 8 32
n2d-standard-16 16 64
n2d-standard-32 32 128
n2d-standard-48 48 192
n2d-standard-64 64 256
n2d-standard-80 80 320
n2d-standard-96 96 384
n2d-standard-128 128 512
n2d-standard-224 224 896
n2d-highmem-2 2 16
n2d-highmem-4 4 32
n2d-highmem-8 8 64
n2d-highmem-16 16 128
n2d-highmem-32 32 256
n2d-highmem-48 48 384
n2d-highmem-64 64 512
n2d-highmem-80 80 640
n2d-highmem-96 96 768
n2d-highcpu-2 2 2
n2d-highcpu-4 4 4
n2d-highcpu-8 8 8
n2d-highcpu-16 16 16
n2d-highcpu-32 32 32
n2d-highcpu-48 48 48
n2d-highcpu-64 64 64
n2d-highcpu-80 80 80
n2d-highcpu-96 96 96
n2d-highcpu-128 128 128
n2d-highcpu-224 224 224

Seri C2

Nama vCPU Memori (GB)
c2-standard-4 4 16
c2-standard-8 8 32
c2-standard-16 16 64
c2-standard-30 30 120
c2-standard-60 60 240

Seri C2D

Nama vCPU Memori (GB)
c2d-standard-2 2 8
c2d-standard-4 4 16
c2d-standard-8 8 32
c2d-standard-16 16 64
c2d-standard-32 32 128
c2d-standard-56 56 224
c2d-standard-112 112 448
c2d-highcpu-2 2 4
c2d-highcpu-4 4 8
c2d-highcpu-8 8 16
c2d-highcpu-16 16 32
c2d-highcpu-32 32 64
c2d-highcpu-56 56 112
c2d-highcpu-112 112 224
c2d-highmem-2 2 16
c2d-highmem-4 4 32
c2d-highmem-8 8 64
c2d-highmem-16 16 128
c2d-highmem-32 32 256
c2d-highmem-56 56 448
c2d-highmem-112 112 896

Seri C3

Nama vCPU Memori (GB)
c3-highcpu-4 4 8
c3-highcpu-8 8 16
c3-highcpu-22 22 44
c3-highcpu-44 44 88
c3-highcpu-88 88 176
c3-highcpu-176 176 352

Seri A2

Nama vCPU Memori (GB) GPU (NVIDIA A100)
a2-highgpu-1g 12 85 1 (A100 40GB)
a2-highgpu-2g 24 170 2 (A100 40GB)
a2-highgpu-4g 48 340 4 (A100 40GB)
a2-highgpu-8g 96 680 8 (A100 40GB)
a2-megagpu-16g 96 1360 16 (A100 40GB)
a2-ultragpu-1g 12 170 1 (A100 80GB)
a2-ultragpu-2g 24 340 2 (A100 80GB)
a2-ultragpu-4g 48 680 4 (A100 80GB)
a2-ultragpu-8g 96 1360 8 (A100 80GB)

Seri A3

Nama vCPU Memori (GB) GPU (NVIDIA H100 atau H200)
a3-highgpu-1g 26 234 1 (H100 80GB)
a3-highgpu-2g 52 468 2 (H100 80GB)
a3-highgpu-4g 104 936 4 (H100 80GB)
a3-highgpu-8g 208 1872 8 (H100 80GB)
a3-edgegpu-8g 208 1872 8 (H100 80GB)
a3-ultragpu-8g 224 2952 8 (H200 141GB)

Seri A4X

Nama vCPU Memori (GB) GPU (NVIDIA GB200)
a4x-highgpu-4g 140 884 4

Seri G2

Nama vCPU Memori (GB) GPU (NVIDIA L4)
g2-standard-4 4 16 1
g2-standard-8 8 32 1
g2-standard-12 12 48 1
g2-standard-16 16 64 1
g2-standard-24 24 96 2
g2-standard-32 32 128 1
g2-standard-48 48 192 4
g2-standard-96 96 384 8

Pelajari harga untuk setiap jenis mesin. Baca selengkapnya tentang spesifikasi mendetail dari jenis mesin ini di dokumentasi Compute Engine tentang jenis mesin.

Menemukan jenis mesin yang ideal

Inferensi online

Guna menemukan jenis mesin yang ideal untuk kasus penggunaan Anda, sebaiknya muat model Anda pada beberapa jenis mesin dan ukur karakteristik seperti latensi, biaya, konkurensi, dan throughput.

Salah satu cara untuk melakukannya adalah dengan menjalankan notebook ini di beberapa jenis mesin dan membandingkan hasilnya untuk menemukan yang paling cocok untuk Anda.

Vertex AI mencadangkan sekitar 1 vCPU pada setiap replika untuk menjalankan proses sistem. Artinya, menjalankan notebook pada satu jenis mesin inti akan sebanding dengan menggunakan jenis mesin 2 inti untuk menyajikan inferensi.

Saat mempertimbangkan biaya inferensi, ingat bahwa meskipun mesin yang lebih besar memerlukan biaya lebih mahal, biaya keseluruhan dapat diturunkan karena replika yang diperlukan untuk melayani workload yang sama berjumlah lebih sedikit. Hal ini sangat jelas untuk GPU, yang cenderung menghabiskan biaya lebih tinggi per jam, tetapi keduanya dapat memberikan latensi yang lebih rendah dan biaya yang lebih murah secara keseluruhan.

Inferensi batch

Untuk mengetahui informasi selengkapnya, lihat Memilih jenis mesin dan jumlah replika.

Akselerator GPU opsional

Beberapa konfigurasi, seperti seri A2 dan seri G2, memiliki jumlah GPU bawaan tetap.

Seri A4X (a4x-highgpu-4g) memerlukan jumlah replika minimum 18. Mesin ini dibeli per rak, dan memiliki minimal 18 VM.

Konfigurasi lain, seperti seri N1, memungkinkan Anda menambahkan GPU secara opsional untuk mempercepat setiap node inferensi.

Untuk menambahkan akselerator GPU opsional, Anda harus memperhitungkan beberapa persyaratan:

  • Anda hanya dapat menggunakan GPU saat resource Model didasarkan pada TensorFlow SavedModel, atau saat Anda menggunakan container kustom yang telah dirancang untuk memanfaatkan GPU. Anda tidak dapat menggunakan GPU untuk model scikit-learn atau XGBoost.
  • Ketersediaan setiap jenis GPU bervariasi, bergantung pada region yang Anda gunakan untuk model. Pelajari jenis GPU apa yang tersedia di region mana.
  • Anda hanya dapat menggunakan satu jenis GPU untuk resource DeployedModel atau BatchPredictionJob, dan ada batasan jumlah GPU yang dapat ditambahkan bergantung pada jenis mesin yang Anda gunakan. Tabel berikut menjelaskan batasan ini.

Tabel berikut menunjukkan GPU opsional yang tersedia untuk inferensi online dan jumlah setiap jenis GPU yang dapat Anda gunakan dengan setiap jenis mesin Compute Engine:

Jumlah GPU yang valid untuk setiap jenis mesin
Jenis mesin NVIDIA Tesla P100 NVIDIA Tesla V100 NVIDIA Tesla P4 NVIDIA Tesla T4
n1-standard-2 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-standard-4 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-standard-8 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-standard-16 1, 2, 4 2, 4, 8 1, 2, 4 1, 2, 4
n1-standard-32 2, 4 4, 8 2, 4 2, 4
n1-highmem-2 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-highmem-4 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-highmem-8 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-highmem-16 1, 2, 4 2, 4, 8 1, 2, 4 1, 2, 4
n1-highmem-32 2, 4 4, 8 2, 4 2, 4
n1-highcpu-2 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-highcpu-4 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-highcpu-8 1, 2, 4 1, 2, 4, 8 1, 2, 4 1, 2, 4
n1-highcpu-16 1, 2, 4 2, 4, 8 1, 2, 4 1, 2, 4
n1-highcpu-32 2, 4 4, 8 2, 4 2, 4

GPU opsional dikenai biaya tambahan.

Menjadwalkan beberapa replika di satu VM

Untuk mengoptimalkan biaya deployment, Anda dapat men-deploy beberapa replika dari model yang sama ke satu VM yang dilengkapi dengan beberapa akselerator hardware GPU, seperti VM a3-highgpu-8g, yang memiliki delapan GPU NVIDIA H100. Setiap replika model dapat ditetapkan ke satu atau beberapa GPU.

Untuk workload yang lebih kecil, Anda juga dapat mempartisi satu GPU menjadi beberapa instance yang lebih kecil menggunakan GPU multi-instance (MIG) NVIDIA. Dengan begitu, Anda dapat menetapkan resource di tingkat sub-GPU, sehingga memaksimalkan penggunaan setiap akselerator. Untuk mengetahui informasi selengkapnya tentang GPU multi-instance, lihat panduan pengguna GPU multi-instance NVIDIA.

Kedua kemampuan ini dirancang untuk memberikan pemanfaatan resource yang lebih efisien dan efektivitas biaya yang lebih besar untuk workload penayangan Anda.

Batasan

Fitur ini tunduk pada batasan berikut:

  • Semua replika model yang dijadwalkan bersama harus memiliki versi model yang sama.
  • Penggunaan kumpulan resource deployment untuk membagikan resource di seluruh deployment tidak didukung.

Jenis mesin yang didukung

Jenis mesin berikut didukung. Perhatikan bahwa untuk jenis mesin yang hanya memiliki satu GPU, tidak diperlukan penjadwalan bersama.

Jenis mesin Coschedule Coschedule + MIG
a2-highgpu-1g T/A Ya
a2-highgpu-2g Ya Ya
a2-highgpu-4g Ya Ya
a2-highgpu-8g Ya Ya
a2-highgpu-16g Ya Ya
a2-ultragpu-1g T/A Ya
a2-ultragpu-2g Ya Ya
a2-ultragpu-4g Ya Ya
a2-ultragpu-8g Ya Ya
a3-edgegpu-8g Ya Ya
a3-highgpu-1g T/A Ya
a3-highgpu-2g Ya Ya
a3-highgpu-4g Ya Ya
a3-highgpu-8g Ya Ya
a3-megagpu-8g Ya Ya
a3-ultragpu-8g Ya Ya
a4-highgpu-8g Ya Ya
a4x-highgpu-8g Ya Tidak

Prasyarat

Sebelum menggunakan fitur ini, baca Men-deploy model menggunakan gcloud CLI atau Vertex AI API.

Men-deploy replika model

Contoh berikut menunjukkan cara men-deploy replika model yang dijadwalkan bersama.

gcloud

Gunakan perintah gcloud berikut untuk men-deploy replika model yang dijadwalkan bersama pada VM:

gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=LOCATION_ID \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --min-replica-count=MIN_REPLICA_COUNT \
  --max-replica-count=MAX_REPLICA_COUNT \
  --machine-type=MACHINE_TYPE \
  --accelerator=type=ACC_TYPE,count=ACC_COUNT \
  --traffic-split=0=100

Ganti kode berikut:

  • ENDPOINT_ID: ID untuk endpoint.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
  • MODEL_ID: ID model yang akan di-deploy.
  • DEPLOYED_MODEL_NAME: Nama untuk DeployedModel. Anda juga dapat menggunakan nama tampilan Model untuk DeployedModel.
  • 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.
  • 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. . Satu VM diperlukan untuk setiap 2 replika yang akan di-deploy.
  • MACHINE_TYPE: Jenis VM yang akan digunakan untuk deployment ini. Harus berasal dari kelompok yang dioptimalkan untuk akselerator.
  • ACC_TYPE: Jenis akselerator GPU. Harus sesuai dengan MACHINE_TYPE. Untuk a3-highgpu-8g, gunakan nvidia-h100-80gb.
  • ACC_COUNT: Jumlah GPU yang dapat digunakan setiap replika. Harus minimal 1 dan tidak lebih dari jumlah total GPU di mesin.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_NUMBER: Nomor project.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
  • MODEL_ID: ID untuk model yang akan di-deploy.
  • DEPLOYED_MODEL_NAME: Nama untuk DeployedModel. Anda juga dapat menggunakan nama tampilan Model untuk DeployedModel.
  • MACHINE_TYPE: Opsional. Resource mesin yang digunakan untuk setiap node deployment ini. Setelan defaultnya adalah n1-standard-2. Pelajari jenis-jenis mesin lebih lanjut.
  • ACC_TYPE: Jenis akselerator GPU. Harus sesuai dengan `GPU_PARTITION_SIZE`.
  • GPU_PARTITION_SIZE: Ukuran partisi GPU. Misalnya, "1g.10gb".
  • ACC_COUNT: Jumlah GPU yang dapat digunakan setiap replika. Harus minimal 1 dan tidak lebih dari jumlah total GPU di mesin.
  • 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.
  • 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.

Metode HTTP dan URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel

Meminta isi JSON:

{
  "deployedModel": {
    "model": "projects/PROJECT_NUMBER/locations/LOCATION_ID/models/MODEL_ID",
    "displayName": "DEPLOYED_MODEL_NAME",
    "dedicatedResources": {
      "machineSpec": {
        "machineType": "MACHINE_TYPE",
        "acceleratorType": "ACC_TYPE",
        "gpuPartitionSize": "GPU_PARTITION_SIZE",
        "acceleratorCount": "ACC_COUNT""
      },
      "minReplicaCount": MIN_REPLICA_COUNT,
      "maxReplicaCount": MAX_REPLICA_COUNT,
      "autoscalingMetricSpecs": [
        {
          "metricName": "aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle",
          "target": 70
        }
      ]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.

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 Python.

Gunakan perintah Python berikut untuk men-deploy replika model yang dijadwalkan bersama pada VM.

endpoint.deploy(
    model=<var>MODEL</var>,
    machine_type=MACHINE_TYPE,
    min_replica_count=MIN_REPLICA_COUNT,
    max_replica_count=MAX_REPLICA_COUNT,
    accelerator_type=ACC_TYPE,
    gpu_partition_size=GPU_PARTITION_SIZE,
    accelerator_count=ACC_COUNT
)

Ganti kode berikut:

  • MODEL: Objek model yang ditampilkan oleh panggilan API berikut:

    model = aiplatform.Model(model_name=model_name)
    
  • MACHINE_TYPE: Jenis VM yang akan digunakan untuk deployment ini. Harus berasal dari kelompok yang dioptimalkan untuk akselerator. Dalam pratinjau, hanya a3-highgpu-8g yang didukung.

  • 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.

  • 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.

  • ACC_TYPE: Jenis akselerator GPU. Harus sesuai dengan GPU_PARTITION_SIZE.

  • GPU_PARTITION_SIZE: Ukuran partisi GPU. Contoh, "1g.10gb". Untuk daftar lengkap ukuran partisi yang didukung untuk setiap jenis GPU, lihat Partisi GPU multi-instance.

  • ACC_COUNT: Jumlah GPU yang dapat digunakan setiap replika. Harus minimal 1 dan tidak lebih dari jumlah total GPU di mesin. Untuk a3-highgpu-8g, tentukan antara 1 dan 8.

Memantau penggunaan VM

Gunakan petunjuk berikut untuk memantau jumlah mesin sebenarnya untuk replika yang di-deploy di Metrics Explorer.

  1. Di konsol Google Cloud , buka halaman Metrics Explorer.

    Buka Metrics Explorer

  2. Pilih project yang metriknya ingin Anda lihat.

  3. Dari menu drop-down Metrik, klik Pilih metrik.

  4. Di kotak penelusuran Filter menurut nama resource atau metrik, masukkan Vertex AI Endpoint.

  5. Pilih kategori metrik Vertex AI Endpoint > Prediction. Di bagian Active metrics, pilih Machine count.

  6. Klik Terapkan.

Penagihan

Penagihan didasarkan pada jumlah VM yang digunakan, bukan jumlah GPU. Anda dapat memantau penggunaan VM menggunakan Metrics Explorer.

Ketersediaan tinggi

Karena lebih dari satu replika dijadwalkan bersama di VM yang sama, Inferensi Vertex AI tidak dapat menyebarkan deployment Anda ke beberapa VM dan oleh karena itu ke beberapa zona hingga jumlah replika Anda melebihi node VM tunggal. Untuk tujuan ketersediaan tinggi, Google merekomendasikan deployment di minimal dua node (VM).

Langkah berikutnya