Untuk menyesuaikan cara Agent Platform menyajikan inferensi online dari
model yang dilatih khusus, Anda dapat menentukan container kustom, bukan container
bawaan saat membuat
Model
resource. Saat Anda menggunakan container kustom, Agent Platform akan menjalankan container Docker pilihan Anda pada setiap node inferensi.
Anda dapat menggunakan container kustom karena salah satu alasan berikut:
- untuk menyajikan inferensi dari model ML yang dilatih menggunakan framework yang tidak tersedia sebagai container bawaan
- untuk melakukan pra-pemrosesan permintaan inferensi atau melakukan pascapemrosesan terhadap inferensi yang dihasilkan oleh model Anda
- untuk menjalankan server inferensi yang ditulis dalam bahasa pemrograman pilihan Anda
- untuk menginstal dependensi yang ingin Anda gunakan untuk menyesuaikan inferensi
Panduan ini menjelaskan cara membuat model yang menggunakan container kustom. Dokumen ini tidak memberikan petunjuk terperinci tentang cara mendesain dan membuat image container Docker.
Menyiapkan image container
Untuk membuat Model yang menggunakan container kustom, Anda harus menyediakan image container Docker sebagai dasar dari container tersebut. Image container ini harus
memenuhi persyaratan yang dijelaskan dalam Persyaratan container
kustom.
Jika Anda berencana menggunakan image container yang ada yang dibuat oleh pihak ketiga yang Anda percayai, Anda mungkin dapat melewati satu atau kedua bagian berikut.
Membuat image container
Desain dan build image container Docker yang memenuhi persyaratan image container.
Untuk mempelajari dasar-dasar mendesain dan mem-build image container Docker, baca panduan memulai dokumentasi Docker
Mengirim image container ke Artifact Registry
Kirim image container Anda ke repositori an Artifact Registry.
Pelajari cara mengirim image container ke Artifact Registry.
Membuat Model
Untuk membuat Model yang menggunakan container kustom, lakukan salah satu hal berikut:
Bagian berikut menunjukkan cara mengonfigurasi kolom API yang terkait dengan container kustom saat Anda membuat Model dengan salah satu cara berikut.
Kolom API terkait container
Saat Anda membuat Model, pastikan untuk mengonfigurasi kolom containerSpec dengan detail container kustom Anda, bukan dengan container bawaan
Anda harus menentukan pesan ModelContainerSpec di kolom Model.containerSpec. Dalam pesan ini, Anda dapat menentukan subkolom berikut:
imageUri(diperlukan)URI Artifact Registry dari image container Anda.
Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-image-uriuntuk menentukan kolom ini.command(opsional)Array yang dapat dieksekusi dan argumen untuk mengganti petunjuk container
ENTRYPOINT. Untuk mempelajari lebih lanjut cara memformat kolom ini dan cara interaksinya dengan kolomargs, baca Referensi API untukModelContainerSpec.Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-commanduntuk menentukan kolom ini.args(opsional)Array yang dapat dieksekusi dan argumen untuk mengganti container
CMDUntuk mempelajari lebih lanjut cara memformat kolom ini dan cara kolom ini berinteraksi dengan kolomcommand, baca referensi API untukModelContainerSpec.Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-argsuntuk menentukan kolom ini.ports(opsional)Sebuah array port; Agent Platform mengirimkan pemeriksaan keaktifan, health check, dan permintaan inferensi ke container Anda pada port pertama yang tercantum, atau
8080secara default. Menentukan port tambahan tidak akan berpengaruh.Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-portsuntuk menentukan kolom ini.env(opsional)Array variabel lingkungan yang dapat dirujuk oleh petunjuk
ENTRYPOINTcontainer, serta kolomcommanddanargs. Untuk mempelajari lebih lanjut cara kolom lain dapat mereferensikan variabel lingkungan ini, baca referensi API untukModelContainerSpec.Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-env-varsuntuk menentukan kolom ini.healthRoute(opsional)Jalur di server HTTP container tempat Anda ingin Agent Platform mengirim health check.
Jika tidak menentukan kolom ini, saat Anda men-deploy
ModelsebagaiDeployedModelke resourceEndpoint, defaultnya adalah/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL, dengan ENDPOINT diganti dengan segmen terakhir dariEndpoint'snamekolom (mengikutiendpoints/) dan DEPLOYED_MODEL diganti denganDeployedModel'sidkolom.Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-health-routeuntuk menentukan kolom ini.predictRoute(opsional)Jalur di server HTTP container tempat Anda ingin Agent Platform meneruskan permintaan inferensi.
Jika tidak menentukan kolom ini, saat Anda men-deploy
ModelsebagaiDeployedModelke resourceEndpoint, defaultnya adalah/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict, dengan ENDPOINT diganti dengan segmen terakhir dariEndpoint'snamekolom (mengikutiendpoints/) dan DEPLOYED_MODEL diganti denganDeployedModel'sidkolom.Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-predict-routeuntuk menentukan kolom ini.invokeRoutePrefix(opsional)Awalan rute pemanggilan untuk container kustom. Menetapkan kolom ini ke "/*" akan mengaktifkan perutean arbitrer untuk model. Setelah di-deploy, rute non-root apa pun di server model akan dapat diakses dengan panggilan HTTP pemanggilan. Misalnya, "/invoke/foo/bar" akan diteruskan sebagai "/foo/bar" ke server model. Fitur ini berada dalam tahap pratinjau publik. Untuk membuat model yang mengaktifkan pemanggilan, ikuti petunjuk untuk menggunakan rute kustom arbitrer.
sharedMemorySizeMb(opsional)Jumlah memori VM yang akan dicadangkan dalam volume memori bersama untuk model dalam megabyte.
Memori bersama adalah mekanisme komunikasi Antar-proses (IPC) yang memungkinkan beberapa proses mengakses dan memanipulasi blok memori umum. Jumlah memori bersama yang diperlukan, jika ada, adalah detail implementasi container dan model Anda. Lihat dokumentasi server model Anda untuk mengetahui panduannya.
Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-shared-memory-size-mbuntuk menentukan kolom ini.startupProbe(opsional)Spesifikasi untuk pemeriksaan yang memeriksa apakah aplikasi container telah dimulai.
Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-startup-probe-exec, --container-startup-probe-period-seconds, --container-startup-probe-timeout-secondsuntuk menentukan kolom ini.healthProbe(opsional)Spesifikasi untuk pemeriksaan yang memeriksa apakah container siap menerima traffic.
Jika menggunakan perintah
gcloud ai models upload, Anda dapat menggunakan flag--container-health-probe-exec, --container-health-probe-period-seconds, --container-health-probe-timeout-secondsuntuk menentukan kolom ini.
Selain variabel yang Anda tetapkan di kolom Model.containerSpec.env, Agent Platform juga menetapkan beberapa variabel lainnya berdasarkan konfigurasi Anda. Pelajari lebih lanjut cara
menggunakan variabel lingkungan ini di kolom ini dan di petunjuk ENTRYPOINT container.
Contoh impor model
Contoh berikut menunjukkan cara menentukan kolom API terkait container saat Anda mengimpor model.
gcloud
Contoh berikut menggunakan perintah
gcloud ai models upload:
gcloud ai models upload \
--region=LOCATION \
--display-name=MODEL_NAME \
--container-image-uri=IMAGE_URI \
--container-command=COMMAND \
--container-args=ARGS \
--container-ports=PORTS \
--container-env-vars=ENV \
--container-health-route=HEALTH_ROUTE \
--container-predict-route=PREDICT_ROUTE \
--container-shared-memory-size-mb=SHARED_MEMORY_SIZE \
--container-startup-probe-exec=STARTUP_PROBE_EXEC \
--container-startup-probe-period-seconds=STARTUP_PROBE_PERIOD \
--container-startup-probe-timeout-seconds=STARTUP_PROBE_TIMEOUT \
--container-health-probe-exec=HEALTH_PROBE_EXEC \
--container-health-probe-period-seconds=HEALTH_PROBE_PERIOD \
--container-health-probe-timeout-seconds=HEALTH_PROBE_TIMEOUT \
--artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY
Flag --container-image-uri diperlukan; semua flag lain yang dimulai
dengan --container- bersifat opsional. Untuk mempelajari nilai kolom ini,
lihat bagian sebelumnya dalam panduan ini.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Agent Platform menggunakan library klien.
Untuk melakukan autentikasi ke Agent Platform, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Agent Platform menggunakan library klien.
Untuk melakukan autentikasi ke Agent Platform, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat 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 Python dokumentasi referensi API.
Untuk mengetahui konteks selengkapnya, baca Panduan impor model.
Mengirim permintaan inferensi
Untuk mengirim permintaan inferensi online ke Model, ikuti petunjuk di bagian
Mendapatkan inferensi dari model kustom yang terlatih:
proses ini berfungsi sama terlepas dari apakah Anda menggunakan model container.
Baca tentang memprediksi persyaratan permintaan dan respons untuk container kustom.
Langkah berikutnya
- Untuk mempelajari semua hal yang perlu dipertimbangkan saat Anda mendesain container kustom untuk digunakan dengan Agent Platform, baca Persyaratan container kustom.