Menggunakan penampung kustom

Untuk menyesuaikan cara AI Platform Prediction menyajikan prediksi online dari model machine learning (ML) yang dilatih, Anda dapat menentukan penampung kustom, bukan versi runtime saat membuat versi model. Saat Anda menggunakan container kustom, AI Platform Prediction menjalankan container Docker pilihan Anda pada setiap node prediksi, bukan menjalankan kode versi runtime standar untuk menampilkan prediksi dari artefak model yang kompatibel.

Anda dapat menggunakan container kustom karena salah satu alasan berikut:

  • untuk menyajikan prediksi dari model ML yang dilatih menggunakan framework selain TensorFlow, scikit-learn, atau XGBoost
  • untuk melakukan pra-pemrosesan permintaan prediksi atau melakukan pascapemrosesan terhadap prediksi yang dihasilkan oleh model Anda
  • untuk menjalankan server prediksi yang ditulis dalam bahasa pemrograman pilihan Anda
  • untuk menginstal dependensi yang ingin Anda gunakan untuk menyesuaikan prediksi

Panduan ini menjelaskan cara membuat versi model yang menggunakan penampung kustom. Bagian ini tidak memberikan petunjuk mendetail tentang mendesain dan membuat image container Docker. Untuk mempelajari contoh pembuatan image container dan penggunaannya dengan AI Platform Prediction, baca Memulai: Menyajikan prediksi PyTorch dengan container kustom.

Untuk menggunakan container kustom, Anda harus menggunakan endpoint regional dan jenis mesin Compute Engine (N1) untuk versi model Anda.

Menyiapkan gambar container

Untuk membuat versi model yang menggunakan penampung kustom, Anda harus menyediakan gambar container Docker sebagai dasar penampung tersebut. Image container ini harus memenuhi persyaratan yang dijelaskan dalam Persyaratan container kustom.

Jika berencana menggunakan image container yang sudah ada yang dibuat oleh pihak ketiga yang dipercayai, Anda mungkin dapat melewati salah 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 container ke Artifact Registry

Kirim image container Anda ke repositori Artifact Registry yang memenuhi persyaratan publikasi image container.

Pelajari cara mengirim image container ke Artifact Registry.

Membuat model dan versi model

Tentukan beberapa opsi konfigurasi saat membuat model untuk memastikan bahwa versi model apa pun yang nantinya Anda buat pada model kompatibel dengan penampung kustom Anda.

Kemudian, tentukan sebagian besar konfigurasi penampung saat membuat versi model.

Membuat model

Untuk membuat model, ikuti petunjuk untuk membuat resource model. Anda harus membuat model di endpoint regional yang cocok dengan region repositori Artifact Registry tempat image container disimpan. Untuk mempelajari lebih lanjut, baca persyaratan publikasi gambar container.

Membuat versi model

Saat Anda membuat versi model yang menggunakan penampung kustom, konfigurasikan kolom API khusus penampung berikut selain kolom lain yang Anda tentukan untuk versi model:

Bagian berikut menjelaskan cara mengonfigurasi kolom ini.

Selain itu, perhatikan perbedaan khusus penampung berikut dalam cara mengonfigurasi kolom API lainnya:

Konfigurasi Version.container

Anda harus menentukan pesan ContainerSpec di kolom Version.container. Dalam pesan ini, Anda dapat menentukan subkolom berikut. Jika menggunakan perintah gcloud beta ai-platform versions create untuk membuat versi model, Anda dapat menggunakan flag command line untuk menentukan setiap subkolom.

image (diperlukan)

URI Artifact Registry image container Anda.

flag gcloud CLI: --image

command (opsional)

Array yang dapat dieksekusi dan argumen untuk mengganti ENTRYPOINT container. Untuk mempelajari lebih lanjut cara memformat kolom ini dan cara interaksinya dengan kolom args, baca Referensi API untuk ContainerSpec.

flag gcloud CLI: --command

args (opsional)

Array yang dapat dieksekusi dan argumen untuk mengganti CMD container. Untuk mempelajari lebih lanjut cara memformat kolom ini dan cara kolom ini berinteraksi dengan command, baca referensi API untuk ContainerSpec.

flag gcloud CLI: --args

ports (opsional)

Array port; AI Platform Prediction mengirimkan pemeriksaan keaktifan, health check, dan permintaan prediksi ke container Anda pada port pertama yang tercantum, atau 8080 secara default. Menentukan port tambahan tidak akan berpengaruh.

flag gcloud CLI: --ports

env (opsional)

Array variabel lingkungan yang dapat dirujuk oleh perintah entrypoint container, serta kolom command dan args. Untuk mempelajari lebih lanjut cara kolom lain dapat mereferensikan variabel lingkungan ini, baca referensi API untuk ContainerSpec.

flag gcloud CLI: --env-vars

Selain variabel yang Anda tetapkan dalam kolom Version.container.env, AI Platform Prediction menetapkan beberapa variabel lain berdasarkan konfigurasi Anda. Pelajari lebih lanjut cara menggunakan variabel lingkungan ini di kolom ini dan di perintah entrypoint penampung.

Contoh berikut menunjukkan cara menentukan kolom ini saat Anda membuat versi model menggunakan Google Cloud CLI:

gcloud beta ai-platform versions create VERSION \
  --region=REGION \
  --model=MODEL \
  --machine-type=n1-standard-4 \
  --image=IMAGE_URI \
  --command=executable,param1,param2 \
  --args=param3,param4 \
  --ports=8081 \
  --env-vars \
    VAR1='value 1' \
    VAR2='value 2'

Ganti kode berikut:

Konfigurasi Version.routes

Anda dapat menentukan pesan RouteMap di kolom Version.routes. Dalam pesan ini, Anda dapat menentukan subkolom berikut. Jika menggunakan perintah gcloud beta ai-platform versions create untuk membuat versi model, Anda dapat menggunakan flag command line untuk menentukan setiap subkolom.

health (opsional)

Jalur di server HTTP penampung tempat Anda ingin AI Platform Prediction mengirim health check.

Jika Anda tidak menentukan kolom ini, kolom ini akan ditetapkan secara default ke /v1/models/MODEL/versions/VERSION, dengan MODEL dan VERSION diganti dengan nama model dan versi model Anda.

flag gcloud CLI: --health-route

predict (opsional)

Jalur di server HTTP penampung tempat Anda ingin AI Platform Prediction meneruskan permintaan prediksi.

Jika Anda tidak menentukan kolom ini, kolom ini akan ditetapkan secara default ke /v1/models/MODEL/versions/VERSION:predict, dengan MODEL dan VERSION diganti dengan nama model dan versi model Anda.

flag gcloud CLI: --predict-route

Contoh berikut menunjukkan cara menentukan kolom ini saat Anda membuat versi model menggunakan gcloud CLI:

gcloud beta ai-platform versions create VERSION \
  --region=REGION \
  --model=MODEL \
  --machine-type=n1-standard-4 \
  --image=IMAGE_URI \
  --command=executable,param1,param2 \
  --args=param3,param4 \
  --ports=8081 \
  --env-vars \
    VAR1='value 1' \
    VAR2='value 2' \
  --health-route=/health \
  --predict-route=/predict

Ganti kode berikut:

Mengirim permintaan prediksi

Untuk mengirim permintaan prediksi online ke versi model Anda, ikuti panduan prediksi online: proses ini berfungsi sama, terlepas dari apakah Anda menggunakan penampung kustom atau tidak.

Namun, saat Anda menggunakan penampung kustom, isi setiap permintaan prediksi tidak perlu memenuhi persyaratan isi permintaan untuk versi model yang menggunakan versi runtime. Dengan demikian, sebaiknya desain penampung Anda untuk mengharapkan isi permintaan dengan format standar jika memungkinkan. Pelajari lebih lanjut cara memprediksi persyaratan permintaan dan respons untuk penampung kustom.

Langkah selanjutnya