Prediksi online AI Platform Prediction adalah layanan yang dioptimalkan untuk menjalankan data Anda melalui model yang dihosting dengan latensi seminimal mungkin. Anda mengirim sejumlah kecil data ke layanan dan layanan tersebut akan menampilkan prediksi Anda dalam respons tersebut.
Pelajari prediksi online versus prediksi atau baca ringkasan konsep prediksi.
Sebelum memulai
Untuk meminta prediksi, Anda harus terlebih dahulu:
Ekspor model terlatih Anda sebagai satu atau beberapa artefak model yang dapat di-deploy ke AI Platform Prediction.
Deploy model terlatih Anda ke AI Platform Prediction dengan membuat resource dan versi model.
Region
Prediksi online tersedia di wilayah tertentu. Selain itu, jenis mesin yang berbeda tersedia di setiap wilayah. Untuk mempelajari ketersediaan prediksi online di setiap wilayah, baca panduan untuk wilayah.
Membuat model dan versi
Anda membuat keputusan penting berikut terkait cara menjalankan prediksi online saat membuat resource model dan versi:
Resource yang dibuat | Keputusan yang ditentukan saat pembuatan resource |
---|---|
Model | Region tempat menjalankan prediksi |
Model | Aktifkan logging prediksi online |
Versi | Versi runtime yang akan digunakan |
Versi | Versi Python yang akan digunakan |
Versi | Jenis mesin yang akan digunakan untuk prediksi online |
Anda tidak dapat memperbarui setelan yang tercantum di atas setelah pembuatan awal model atau versi. Jika Anda perlu mengubah setelan ini, buat resource versi atau model baru dengan setelan baru dan deploy ulang model Anda.
Jenis mesin yang tersedia untuk prediksi online
Saat membuat versi, Anda dapat memilih jenis virtual machine yang digunakan AI Platform Prediction untuk node prediksi online. Pelajari jenis mesin lebih lanjut.
Meminta log untuk permintaan prediksi online
Layanan prediksi Prediksi AI Platform tidak memberikan informasi yang dicatat ke dalam log tentang permintaan secara default, karena log tersebut dikenai biaya. Prediksi online dengan kecepatan kueri per detik (QPS) tinggi dapat menghasilkan log dalam jumlah besar, yang tunduk pada harga Cloud Logging atau harga BigQuery.
Jika ingin mengaktifkan logging prediksi online, Anda harus mengonfigurasinya saat membuat resource model atau saat membuat resource versi model, bergantung pada jenis logging yang ingin diaktifkan. Ada tiga jenis logging yang dapat Anda aktifkan secara independen:
Log akses, yang mencatat informasi seperti stempel waktu dan latensi untuk setiap permintaan ke Cloud Logging.
Anda dapat mengaktifkan logging akses saat membuat resource model.
Logging konsol, yang mencatat aliran
stderr
danstdout
ke dalam log dari node prediksi Anda ke Cloud Logging, dan dapat berguna untuk proses debug. Jenis logging ini sedang dalam pratinjau untuk jenis mesin Compute Engine (N1) dan tersedia secara umum untuk jenis mesin lama (MLS1).Anda dapat mengaktifkan logging konsol saat membuat resource model.
Logging permintaan-respons, yang mencatat contoh permintaan dan respons prediksi online ke tabel BigQuery. Jenis logging ini masih dalam versi beta.
Anda dapat mengaktifkan logging respons permintaan dengan membuat resource versi model, lalu mengupdate versi tersebut.
gcloud
Untuk mengaktifkan logging akses, sertakan flag --enable-logging
saat Anda membuat model dengan perintah gcloud ai-platform models create
. Contoh:
gcloud ai-platform models create MODEL_NAME \
--region=us-central1 \
--enable-logging
Untuk mengaktifkan logging konsol (pratinjau), gunakan komponen gcloud beta
dan
sertakan flag --enable-console-logging
. Contoh:
gcloud components install beta
gcloud beta ai-platform models create MODEL_NAME \
--region=us-central1 \
--enable-console-logging
Saat ini Anda tidak dapat mengaktifkan logging permintaan-respons (beta) menggunakan gcloud CLI. Anda hanya dapat mengaktifkan jenis logging ini saat mengirim permintaan projects.models.versions.patch
ke REST API.
REST API
Untuk mengaktifkan logging akses, tetapkan onlinePredictionLogging
ke True
di
resource Model saat membuat model Anda dengan
projects.models.create
.
Untuk mengaktifkan logging konsol (beta), tetapkan kolom onlinePredictionConsoleLogging
ke True
di resource Model.
Logging permintaan-respons
Tidak seperti jenis logging lainnya, Anda tidak dapat mengaktifkan logging respons permintaan saat membuat model. Sebagai gantinya, Anda dapat mengaktifkannya menggunakan metode projects.models.versions.patch
pada versi model yang sudah ada. (Anda harus membuat versi model terlebih dahulu menggunakan Google Cloud Console, gcloud CLI, atau REST API.)
Untuk mengaktifkan logging respons permintaan, isi kolom requestLoggingConfig
resource Versi
dengan entri berikut:
samplingPercentage
: angka antara 0 atau 1 yang menentukan fraksi permintaan yang akan dicatat ke dalam log. Misalnya, tetapkan nilai ini ke1
untuk mencatat semua permintaan ke dalam log atau ke0.1
untuk mencatat 10% permintaan ke dalam log.bigqueryTableName
: nama yang sepenuhnya memenuhi syarat (PROJECT_ID.DATASET_NAME.TABLE_NAME) tabel BigQuery tempat Anda ingin mencatat permintaan dan respons ke dalam log. Tabel harus sudah ada dengan skema berikut:Nama kolom Jenis Mode model STRING REQUIRED model_version STRING REQUIRED waktu TIMESTAMP REQUIRED raw_data STRING REQUIRED raw_prediction STRING NULLABLE kebenaran nyata STRING NULLABLE Pelajari cara membuat tabel BigQuery.
Memeriksa model dengan What-If Tool
Anda dapat menggunakan What-If Tool(WIT) dalam lingkungan notebook untuk memeriksa model AI Platform Prediction melalui dasbor interaktif. What-If Tool terintegrasi dengan TensorBoard, notebook Jupyter, notebook Colab, dan JupyterHub. Vertex AI Workbench juga telah diinstal sebelumnya di notebook yang dikelola pengguna Vertex AI Workbench instance TensorFlow.
Pelajari cara menggunakan What-If Tool dengan AI Platform.
Memformat input untuk prediksi online
Memformat instance sebagai string JSON
Format dasar untuk prediksi online adalah daftar instance data. Daftar ini dapat berupa daftar nilai biasa atau anggota objek JSON, bergantung pada cara Anda mengonfigurasi input dalam aplikasi pelatihan. Model TensorFlow dan rutinitas prediksi kustom dapat menerima input yang lebih kompleks, sementara sebagian besar model scikit-learn dan XGBoost mengharapkan daftar angka sebagai input.
Contoh ini menunjukkan tensor input dan kunci instance ke model TensorFlow:
{"values": [1, 2, 3, 4], "key": 1}
Susunan string JSON bisa menjadi kompleks selama mengikuti aturan berikut:
Tingkat teratas data instance harus berupa objek JSON: kamus untuk key-value pair.
Nilai individual dalam objek instance dapat berupa string, angka, atau daftar. Anda tidak dapat menyematkan objek JSON.
Daftar hanya boleh berisi item dari jenis yang sama (termasuk daftar lainnya). Anda tidak boleh mencampur nilai string dan numerik.
Anda meneruskan instance input untuk prediksi online sebagai isi pesan untuk panggilan projects.predict
. Pelajari persyaratan pemformatan
isi permintaan lebih lanjut.
gcloud
Anda dapat memformat input dengan dua cara, tergantung rencana Anda untuk mengirim permintaan prediksi. Sebaiknya gunakan
flag --json-request
perintah gcloud ai-platform predict
. Atau, Anda dapat menggunakan flag --json-instances
dengan data JSON yang dibatasi baris baru.
Untuk --json-request
Jadikan setiap instance sebagai item dalam array JSON, dan berikan array sebagai kolom instances
dari file JSON. Contoh:
instances.json
{"instances": [
{"values": [1, 2, 3, 4], "key": 1},
{"values": [5, 6, 7, 8], "key": 2}
]}
Untuk --json-instances
Pastikan file input Anda adalah file JSON yang dibatasi baris baru, dengan setiap instance sebagai objek JSON, satu instance per baris. Contoh:
instances.jsonl
{"values": [1, 2, 3, 4], "key": 1}
{"values": [5, 6, 7, 8], "key": 2}
REST API
Jadikan setiap instance sebagai item dalam array JSON, dan sediakan array sebagai kolom instances
dari objek JSON. Contoh:
{"instances": [
{"values": [1, 2, 3, 4], "key": 1},
{"values": [5, 6, 7, 8], "key": 2}
]}
Data biner dalam input prediksi
Data biner tidak dapat diformat sebagai string berenkode UTF-8 yang didukung JSON. Jika Anda memiliki data biner dalam input, Anda harus menggunakan encoding base64 untuk merepresentasikannya. Diperlukan format khusus berikut:
String yang dienkode harus diformat sebagai objek JSON dengan satu kunci bernama
b64
. Contoh Python 2.7 berikut mengenkode buffer data JPEG mentah menggunakan library base64 untuk membuat instance:{"image_bytes": {"b64": base64.b64encode(jpeg_data)}}
Dalam Python 3, encoding base64 menghasilkan output urutan byte. Anda harus mengonversinya menjadi string agar JSON dapat diserialisasi:
{'image_bytes': {'b64': base64.b64encode(jpeg_data).decode()}}
Dalam kode model TensorFlow, Anda harus memberi nama alias untuk tensor input dan output biner agar diakhiri dengan '_bytes'.
Meminta prediksi
Minta prediksi online dengan mengirimkan instance data input Anda sebagai string JSON dalam permintaan predict. Untuk memformat isi permintaan dan respons, lihat detail permintaan prediksi.
Jika Anda tidak menentukan versi model, permintaan prediksi Anda akan menggunakan versi default model.
gcloud
Buat variabel lingkungan untuk menyimpan parameter, termasuk nilai versi jika Anda memutuskan untuk menentukan versi model tertentu:
MODEL_NAME="[YOUR-MODEL-NAME]" INPUT_DATA_FILE="instances.json" VERSION_NAME="[YOUR-VERSION-NAME]"
Gunakan gcloud ai-platform visibilitas untuk mengirim instance ke model yang di-deploy. Perlu diketahui bahwa
--version
bersifat opsional.gcloud ai-platform predict \ --model=$MODEL_NAME \ --version=$VERSION_NAME \ --json-request=$INPUT_DATA_FILE \ --region=REGION
Ganti REGION dengan region endpoint regional tempat Anda membuat model. Jika Anda membuat model di endpoint global, hapus flag
--region
.Alat gcloud mengurai respons dan mencetak prediksi ke terminal Anda dalam format yang dapat dibaca manusia. Anda dapat menentukan format output yang berbeda, seperti JSON atau CSV, menggunakan flag --format dengan perintah prediktif Anda. Lihat format output yang tersedia.
Python
Anda dapat menggunakan Library Klien Google API untuk Python untuk memanggil AI Platform Training and Prediction API tanpa membuat permintaan HTTP secara manual. Sebelum menjalankan contoh kode berikut, Anda harus menyiapkan autentikasi.
Java
Anda dapat menggunakan Library Klien Google API untuk Java untuk memanggil AI Platform Training and Prediction API tanpa membuat permintaan HTTP secara manual. Sebelum menjalankan contoh kode berikut, Anda harus menyiapkan autentikasi.
Memecahkan masalah prediksi online
Error umum dalam prediksi online mencakup hal berikut:
- Error kehabisan memori
- Format data input salah
- Satu permintaan prediksi online tidak boleh berisi lebih dari 1,5 MB data. Permintaan yang dibuat menggunakan gcloud CLI dapat menangani tidak lebih dari 100 instance per file. Guna mendapatkan prediksi untuk lebih banyak instance secara bersamaan, gunakan prediksi batch.
Coba kurangi ukuran model Anda sebelum men-deploy-nya ke AI Platform Prediction untuk prediksi.
Lihat detail selengkapnya tentang memecahkan masalah prediksi online.
Langkah selanjutnya
- Gunakan prediksi batch untuk mendapatkan inferensi secara asinkron.
- Dapatkan detail selengkapnya tentang proses prediksi.
- Memecahkan masalah yang muncul saat Anda meminta prediksi online.