Menggunakan penampung kustom

Untuk menyesuaikan cara AI Platform Prediction menayangkan prediksi online dari model machine learning (ML) terlatih, Anda dapat menentukan container kustom, bukan versi runtime saat membuat versi model. Saat Anda menggunakan container kustom, AI Platform Prediction akan menjalankan container Docker pilihan Anda di setiap node prediksi, bukan menjalankan kode versi runtime standar untuk menayangkan 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. Dokumen ini tidak memberikan petunjuk terperinci tentang cara mendesain dan membuat image container Docker. Untuk mempelajari contoh pembuatan image container dan menggunakannya dengan AI Platform Prediction, baca Memulai: Menayangkan prediksi PyTorch dengan container kustom.

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

Menyiapkan image container

Untuk membuat versi 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 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 Anda 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 Anda 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 penampung Anda disimpan. Untuk mempelajari lebih lanjut, baca persyaratan publikasi image 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 Anda 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 dari 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 penampung. Untuk mempelajari lebih lanjut cara memformat kolom ini dan cara kolom ini berinteraksi dengan kolom 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 penampung 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 di kolom Version.container.env, AI Platform Prediction menetapkan beberapa variabel lainnya berdasarkan konfigurasi Anda. Pelajari lebih lanjut cara menggunakan variabel lingkungan ini di kolom ini dan di perintah titik entri 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 container tempat Anda ingin AI Platform Prediction mengirim health check.

Jika Anda tidak menentukan kolom ini, defaultnya adalah /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 container tempat Anda ingin AI Platform Prediction meneruskan permintaan prediksi.

Jika Anda tidak menentukan kolom ini, defaultnya adalah /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.

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

Langkah selanjutnya