Anda harus men-deploy model ke endpoint sebelum model tersebut dapat digunakan untuk menyajikan prediksi online. Men-deploy model akan mengaitkan resource fisik dengan model tersebut, sehingga dapat menyajikan prediksi online dengan latensi rendah.
Anda dapat men-deploy beberapa model ke satu endpoint, dan Anda dapat men-deploy satu model ke beberapa endpoint. Untuk mengetahui informasi selengkapnya tentang opsi dan kasus penggunaan untuk men-deploy model, lihat Alasan men-deploy lebih dari satu model ke endpoint yang sama di bawah ini.
Men-deploy model ke endpoint
Gunakan salah satu metode berikut untuk men-deploy model:
Konsol Google Cloud
Di Konsol Google Cloud, di bagian Vertex AI, buka halaman Model.
Klik nama dan ID versi model yang ingin Anda deploy untuk membuka halaman detailnya.
Pilih tab Deploy & Uji.
Jika model Anda sudah di-deploy ke endpoint, model tersebut akan tercantum di bagian Deploy model Anda.
Klik Deploy to endpoint.
Untuk men-deploy model ke endpoint baru, pilih
Buat endpoint baru, dan beri nama untuk endpoint baru tersebut. Untuk men-deploy model ke endpoint yang ada, pilih Add to existing endpoint, lalu pilih endpoint dari menu drop-down.Anda dapat menambahkan lebih dari satu model ke endpoint dan dapat menambahkan model ke lebih dari satu endpoint.
Jika Anda men-deploy model ke endpoint yang sudah ada dan satu atau beberapa beberapa model telah di-deploy ke endpoint tersebut, Anda harus memperbarui persentase Pemisahan traffic untuk model yang sedang di-deploy dan yang telah di-deploy sehingga jumlah semua persentasenya menjadi 100%.
Jika Anda men-deploy model ke endpoint baru, terima nilai 100 untuk Pemisahan traffic. Jika tidak, sesuaikan nilai pemisahan traffic untuk semua model di endpoint sehingga jumlahnya menjadi 100.
Masukkan Jumlah minimum node komputasi yang ingin Anda berikan untuk model Anda.
Jumlah minimum merupakan jumlah node yang selalu tersedia untuk model setiap saat.
Anda akan dikenai biaya untuk node yang digunakan, baik untuk menangani beban prediksi maupun untuk node standby (minimum) meskipun tanpa traffic prediksi. Lihat halaman harga.
Jumlah node komputasi dapat meningkat jika diperlukan untuk menangani traffic prediksi, tetapi tidak akan pernah melebihi jumlah maksimum node.
Untuk menggunakan penskalaan otomatis, masukkan Jumlah maksimum node komputasi yang Anda inginkan untuk ditingkatkan skalanya oleh Vertex AI.
Pilih Jenis mesin.
Resource mesin yang lebih besar akan meningkatkan performa prediksi dan meningkatkan biaya. Bandingkan jenis mesin yang tersedia.
Pilih Jenis akselerator dan Jumlah akselerator.
Jika Anda mengaktifkan penggunaan akselerator saat mengimpor atau membuat model, opsi ini akan ditampilkan.
Untuk mengetahui jumlah akselerator, lihat tabel GPU untuk memeriksa jumlah GPU yang valid yang dapat Anda gunakan dengan setiap jenis mesin CPU. Jumlah akselerator mengacu pada jumlah akselerator per node, bukan total jumlah akselerator dalam deployment Anda.
Jika Anda ingin menggunakan akun layanan kustom untuk deployment, pilih akun layanan di kotak drop-down Akun layanan.
Pelajari cara mengubah setelan default untuk logging prediksi.
Klik Selesai untuk model Anda, dan jika semua persentase Pemisahan traffic sudah benar, klik Lanjutkan.
Region tempat model Anda men-deploy ditampilkan. Area ini harus menjadi region tempat Anda membuat model.
Klik Deploy untuk men-deploy model Anda ke endpoint.
API
Saat men-deploy model menggunakan Vertex AI API, Anda harus menyelesaikan langkah-langkah berikut:
Membuat endpoint
Jika Anda men-deploy model ke endpoint yang sudah ada, Anda dapat melewati langkah ini.
gcloud
Contoh berikut menggunakan
perintah gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION_ID \
--display-name=ENDPOINT_NAME
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- ENDPOINT_NAME: Nama tampilan endpoint.
Alat Google Cloud CLI mungkin memerlukan waktu beberapa detik untuk membuat endpoint.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region Anda.
- PROJECT_ID: Project ID Anda.
- ENDPOINT_NAME: Nama tampilan endpoint.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
Meminta isi JSON:
{ "display_name": "ENDPOINT_NAME" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done":
true
.
Terraform
Contoh berikut menggunakan resource Terraform google_vertex_ai_endpoint
untuk membuat endpoint.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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 Python API.
Mengambil ID endpoint
Anda memerlukan ID endpoint untuk men-deploy model.
gcloud
Contoh berikut menggunakan perintah gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION_ID \
--filter=display_name=ENDPOINT_NAME
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- ENDPOINT_NAME: Nama tampilan endpoint.
Perhatikan angka yang muncul di kolom ENDPOINT_ID
. Gunakan ID ini dalam langkah berikut.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda.
- ENDPOINT_NAME: Nama tampilan endpoint.
Metode HTTP dan URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Men-deploy model
Pilih tab di bawah ini untuk bahasa atau lingkungan Anda:
gcloud
Contoh berikut menggunakan perintah gcloud ai endpoints deploy-model
.
Contoh berikut men-deploy Model
ke Endpoint
tanpa menggunakan GPU
untuk mempercepat inferensi prediksi dan tanpa membagi traffic antara beberapa
resource DeployedModel
:
Sebelum menggunakan data perintah mana pun di bawah ini, lakukan penggantian berikut:
- ENDPOINT_ID: ID untuk endpoint.
- 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 tampilanModel
untukDeployedModel
. - MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban prediksi, 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 prediksi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
Jika Anda menghapus tanda
--max-replica-count
, jumlah maksimum node akan ditetapkan ke nilai--min-replica-count
.
Jalankan perintah gcloud ai endpoint deploy-model:
Linux, macOS, atau Cloud Shell
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 \ --traffic-split=0=100
Windows (PowerShell)
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 ` --traffic-split=0=100
Windows (cmd.exe)
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 ^ --traffic-split=0=100
Membagi traffic
Flag --traffic-split=0=100
pada contoh sebelumnya mengirim 100% traffic prediksi yang diterima Endpoint
ke DeployedModel
baru, yang diwakili oleh ID sementara 0
. Jika Endpoint
sudah memiliki resource DeployedModel
lain, Anda dapat membagi traffic antara DeployedModel
baru dan yang lama.
Misalnya, untuk mengirim 20% traffic ke DeployedModel
baru dan 80% traffic ke yang lebih lama, jalankan perintah berikut.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- OLD_DEPLOYED_MODEL_ID: ID
DeployedModel
yang ada.
Jalankan perintah gcloud ai endpoint deploy-model:
Linux, macOS, atau Cloud Shell
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 \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
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 ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
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 ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Men-deploy model.
Sebelum menggunakan salah satu data permintaan, 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: Jenis akselerator yang akan dipasang ke mesin. Opsional jika ACCELERATOR_COUNT tidak ditentukan atau nol. Tidak direkomendasikan untuk model AutoML atau model yang dilatih secara khusus yang menggunakan image non-GPU. Pelajari lebih lanjut.
- ACCELERATOR_COUNT: Jumlah akselerator untuk setiap replika yang akan digunakan. Opsional. Harus nol atau tidak ditentukan untuk model AutoML atau model yang dilatih secara khusus yang menggunakan image non-GPU.
- MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan oleh beban prediksi hingga mencapai jumlah maksimum node, dan node 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 prediksi, 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/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": "ACCELERATOR_COUNT" }, "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 menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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 Python API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Pelajari cara mengubah setelan default untuk logging prediksi.
Mendapatkan status operasi
Beberapa permintaan memulai operasi yang berjalan lama dan memerlukan waktu beberapa saat untuk diselesaikan. Permintaan ini menampilkan nama operasi, yang dapat Anda gunakan untuk melihat status operasi atau membatalkan operasi. Vertex AI menyediakan metode helper untuk melakukan panggilan terhadap operasi yang berjalan lama. Untuk mengetahui informasi selengkapnya, lihat Bekerja dengan operasi yang berjalan lama.
Batasan
- Jika Anda mengaktifkan Kontrol Layanan VPC, container model yang di-deploy tidak akan memiliki akses ke internet.
Mengonfigurasi deployment model
Selama deployment model, Anda membuat keputusan penting berikut terkait cara menjalankan prediksi online:
Resource yang dibuat | Setelan yang ditentukan saat pembuatan resource |
---|---|
Endpoint | Lokasi tempat menjalankan prediksi |
Model | Container yang akan digunakan (ModelContainerSpec ) |
DeployedModel | Mesin yang akan digunakan untuk prediksi online |
Anda tidak dapat memperbarui setelan yang tercantum di atas setelah pembuatan awal model atau endpoint, dan Anda tidak dapat menggantinya dalam permintaan prediksi online. Jika perlu mengubah setelan ini, Anda harus men-deploy ulang model.
Yang terjadi saat Anda men-deploy model
Saat men-deploy model ke endpoint, Anda harus menghubungkan resource fisik (mesin) dengan model tersebut agar dapat memberikan prediksi online. Prediksi online memiliki persyaratan latensi rendah. Menyediakan resource ke model terlebih dahulu akan mengurangi latensi.
Jenis pelatihan model (AutoML atau kustom) dan jenis
data (AutoML) menentukan jenis resource fisik yang tersedia untuk model. Setelah
deployment model, Anda dapat
mutate
beberapa
resource tersebut tanpa harus membuat deployment baru.
Resource endpoint menyediakan endpoint layanan (URL) yang Anda gunakan untuk meminta prediksi. Contoh:
https://us-central1-aiplatform.googleapis.com/v1/projects/{project}/locations/{location}/endpoints/{endpoint}:predict
Alasan untuk men-deploy lebih dari satu model ke endpoint yang sama
Dengan men-deploy dua model ke endpoint yang sama, Anda dapat mengganti satu model dengan model lainnya secara bertahap. Misalnya, Anda sedang menggunakan suatu model, dan menemukan cara untuk meningkatkan akurasi model tersebut dengan data pelatihan baru. Namun, Anda tidak ingin mengupdate aplikasi agar mengarah ke URL endpoint baru, dan tidak ingin membuat perubahan tiba-tiba dalam aplikasi. Anda dapat menambahkan model baru ke endpoint yang sama, menyalurkan sebagian kecil traffic, dan meningkatkan pemisahan traffic untuk model baru secara bertahap hingga model tersebut menyalurkan semua traffic.
Karena resource dikaitkan dengan model, bukan endpoint, Anda dapat men-deploy model dari berbagai jenis ke endpoint yang sama. Namun, praktik terbaiknya adalah men-deploy model dari jenis tertentu (misalnya, AutoML, Text AutoML Tabular, dilatih khusus) ke endpoint. Konfigurasi ini lebih mudah dikelola.
Alasan untuk men-deploy model ke lebih dari satu endpoint
Anda mungkin ingin men-deploy model dengan resource yang berbeda untuk lingkungan aplikasi yang berbeda, seperti pengujian dan produksi. Anda mungkin juga ingin mendukung SLO yang berbeda untuk permintaan prediksi Anda. Mungkin salah satu aplikasi Anda memiliki kebutuhan performa yang jauh lebih tinggi daripada yang lain. Dalam hal ini, Anda dapat men-deploy model tersebut ke endpoint berperforma lebih tinggi dengan lebih banyak resource mesin. Untuk mengoptimalkan biaya, Anda juga dapat men-deploy model ke endpoint berperforma lebih rendah dengan resource mesin yang lebih sedikit.
Perilaku penskalaan
Saat men-deploy Model
untuk prediksi online sebagai DeployedModel
, Anda dapat mengonfigurasi
node prediksi agar diskalakan secara otomatis. Untuk melakukannya, tetapkan
dedicatedResources.maxReplicaCount
ke
nilai yang lebih besar dari dedicatedResources.minReplicaCount
.
Saat mengonfigurasi DeployedModel
, Anda harus menetapkan
dedicatedResources.minReplicaCount
setidaknya ke nilai 1
. Dengan kata lain, Anda tidak dapat
mengonfigurasi DeployedModel
untuk diskalakan ke node prediksi 0
jika
tidak digunakan.
Target pemanfaatan dan konfigurasi
Secara default, jika Anda men-deploy model tanpa resource GPU khusus, Vertex AI akan otomatis meningkatkan atau memperkecil skala jumlah replika sehingga penggunaan CPU cocok dengan nilai target default 60%.
Secara default, jika Anda men-deploy model dengan resource GPU khusus (jika
machineSpec.accelerator_count
di atas 0), Vertex AI akan secara otomatis meningkatkan atau memperkecil skala jumlah
replika sehingga penggunaan CPU atau GPU, mana yang lebih tinggi, cocok dengan nilai target
default 60%. Oleh karena itu, jika throughput prediksi Anda menyebabkan penggunaan GPU
yang tinggi, tetapi tidak menggunakan CPU yang tinggi, Vertex AI akan meningkatkan skala dan penggunaan
CPU akan menjadi sangat rendah sehingga terlihat dalam pemantauan. Sebaliknya,
jika container kustom Anda kurang memanfaatkan GPU, tetapi memiliki proses tidak terkait
yang meningkatkan penggunaan CPU di atas 60%, Vertex AI akan meningkatkan skala meskipun
hal ini mungkin tidak diperlukan untuk mencapai QPS dan target latensi.
Anda dapat mengganti metrik dan target nilai minimum default dengan menentukan
autoscalingMetricSpecs
.
Perlu diperhatikan bahwa jika deployment Anda dikonfigurasi untuk diskalakan hanya berdasarkan penggunaan CPU, deployment
tidak akan ditingkatkan skalanya meskipun penggunaan GPU tinggi.
Mengelola penggunaan resource
Anda dapat memantau endpoint untuk melacak metrik seperti penggunaan CPU dan Akselerator, jumlah permintaan, latensi, serta jumlah replika saat ini dan target. Informasi ini dapat membantu Anda memahami penggunaan resource dan perilaku penskalaan endpoint.
Perlu diingat bahwa setiap replika hanya menjalankan satu container. Artinya, jika container prediksi tidak dapat sepenuhnya memanfaatkan resource komputasi yang dipilih, seperti kode thread tunggal untuk mesin multi-core, atau model kustom yang memanggil layanan lain sebagai bagian dari pembuatan prediksi , node Anda mungkin tidak akan meningkat skalanya.
Misalnya, jika Anda menggunakan FastAPI, atau server model apa pun yang memiliki jumlah worker atau thread yang dapat dikonfigurasi, ada banyak kasus ketika memiliki lebih dari satu worker dapat meningkatkan pemanfaatan resource sehingga dapat meningkatkan kemampuan layanan untuk menskalakan jumlah replika secara otomatis.
Kami biasanya merekomendasikan untuk memulai dengan satu worker atau thread per core. Jika Anda melihat bahwa pemakaian CPU rendah, terutama saat beban tinggi, atau skala model Anda tidak ditingkatkan karena penggunaan CPU rendah, tingkatkan jumlah worker. Di sisi lain, jika Anda melihat bahwa pemakaian terlalu tinggi dan latensi meningkat lebih dari yang diharapkan berdasarkan beban, coba gunakan lebih sedikit worker. Jika Anda hanya menggunakan satu worker, coba gunakan jenis mesin yang lebih kecil.
Perilaku penskalaan dan jeda
Vertex AI menyesuaikan jumlah replika setiap 15 detik menggunakan data dari periode 5 menit sebelumnya. Untuk setiap siklus 15 detik, sistem akan mengukur penggunaan server dan menghasilkan jumlah target replika berdasarkan formula berikut:
target # of replicas = Ceil(current # of replicas * (current utilization / target utilization))
Misalnya, jika saat ini Anda memiliki dua replika yang digunakan hingga 100%, targetnya adalah 4:
4 = Ceil(3.33) = Ceil(2 * (100% / 60%))
Contoh lain, jika saat ini Anda memiliki 10 replika dan pemakaian menurun menjadi 1%, targetnya adalah 1:
1 = Ceil(.167) = Ceil(10 * (1% / 60%))
Di akhir setiap siklus 15 detik, sistem akan menyesuaikan jumlah replika agar cocok dengan nilai target tertinggi dari periode 5 menit sebelumnya. Perhatikan bahwa karena nilai target tertinggi dipilih, endpoint Anda tidak akan diperkecil skalanya jika ada lonjakan penggunaan selama periode 5 menit tersebut meskipun pemanfaatan secara keseluruhan sangat rendah. Di sisi lain, jika sistem perlu ditingkatkan skalanya, sistem akan melakukannya dalam waktu 15 detik karena yang dipilih adalah nilai target tertinggi, bukan rata-rata.
Perlu diingat bahwa meskipun Vertex AI menyesuaikan jumlah replika, perlu waktu untuk memulai atau menonaktifkan replika. Dengan demikian, ada jeda tambahan sebelum endpoint dapat menyesuaikan dengan traffic. Faktor utama yang memengaruhi situasi ini mencakup:
- waktu untuk menyediakan dan memulai VM Compute Engine
- waktu untuk mendownload container dari registry
- waktu untuk memuat model dari penyimpanan
Cara terbaik untuk memahami perilaku penskalaan yang sebenarnya dari model Anda adalah dengan
menjalankan uji beban dan mengoptimalkan karakteristik yang penting bagi model dan
kasus penggunaan Anda. Jika autoscaler tidak meningkatkan skala aplikasi Anda
dengan cukup cepat, sediakan min_replicas
yang cukup untuk menangani traffic dasar pengukuran yang Anda
harapkan.
Memperbarui konfigurasi penskalaan
Jika Anda menentukanDedicatedResources
atau AutomaticResources
saat men-deploy model, Anda dapat memperbarui konfigurasi penskalaan tanpa harus men-deploy ulang
model dengan memanggil
mutateDeployedModel
.
Misalnya, permintaan berikut memperbarui max_replica
,
autoscaling_metric_specs
, dan menonaktifkan logging container.
{
"deployedModel": {
"id": "2464520679043629056",
"dedicatedResources": {
"maxReplicaCount": 9,
"autoscalingMetricSpecs": [
{
"metricName": "aiplatform.googleapis.com/prediction/online/cpu/utilization",
"target": 50
}
]
},
"disableContainerLogging": true
},
"update_mask": {
"paths": [
"dedicated_resources.max_replica_count",
"dedicated_resources.autoscaling_metric_specs",
"disable_container_logging"
]
}
}
Catatan penggunaan:
- Anda tidak dapat mengubah jenis mesin atau beralih dari
DedicatedResources
keAutomaticResources
atau sebaliknya. Satu-satunya kolom konfigurasi penskalaan yang dapat Anda ubah adalah:min_replica
,max_replica
, danAutoscalingMetricSpec
(khususDedicatedResources
). - Anda harus mencantumkan setiap kolom yang ingin diperbarui di
updateMask
. Kolom yang tidak tercantum akan diabaikan. - DeployedModel
harus dalam status
DEPLOYED
. Hanya boleh ada maksimal satu operasi mutasi aktif per model yang di-deploy. mutateDeployedModel
juga memungkinkan Anda mengaktifkan atau menonaktifkan logging container. Untuk mengetahui informasi selengkapnya, lihat Logging prediksi online.
Langkah selanjutnya
- Pelajari cara mendapatkan prediksi online.
- Pelajari endpoint pribadi.