Perbedaan antara prediksi online dan batch
Prediksi online adalah permintaan sinkron yang dibuat ke endpoint model. Gunakan prediksi online saat Anda membuat permintaan sebagai respons terhadap input aplikasi atau dalam situasi yang memerlukan inferensi tepat waktu.
Prediksi batch adalah permintaan asinkron. Anda meminta prediksi batch secara langsung dari resource model tanpa perlu men-deploy model ke endpoint. Untuk data gambar, gunakan prediksi batch jika Anda tidak memerlukan respons langsung dan ingin memproses data yang terakumulasi menggunakan satu permintaan.
Mendapatkan prediksi online
Men-deploy model ke endpoint
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 lebih dari satu model ke satu endpoint, dan dapat men-deploy model ke beberapa endpoint. Untuk mengetahui informasi selengkapnya tentang opsi dan kasus penggunaan untuk men-deploy model, lihat Tentang men-deploy model.
Gunakan salah satu metode berikut ini untuk men-deploy model:
Konsol Google Cloud
Di konsol Google Cloud, di bagian Vertex AI, buka halaman Model.
Klik nama model yang ingin di-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 ke endpoint.
Untuk men-deploy model ke endpoint baru, pilih
Buat endpoint baru, lalu berikan nama untuk endpoint baru tersebut. Untuk men-deploy model ke endpoint yang ada, pilih Tambah ke endpoint yang ada, lalu pilih endpoint dari menu drop-down.Anda dapat menambahkan beberapa model ke satu endpoint, dan Anda dapat menambahkan satu model ke beberapa endpoint. Pelajari lebih lanjut.
Jika Anda men-deploy model ke endpoint yang sudah ada dan memiliki satu atau beberapa model yang di-deploy, Anda harus memperbarui persentase Pemisahan traffic untuk model yang sedang di-deploy dan model yang sudah di-deploy, sehingga jumlah semua persentasenya menjadi 100%.
Pilih Image AutoML dan konfigurasi sebagai berikut:
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 Number of computer nodes yang ingin diberikan untuk model Anda.
Ini adalah jumlah node yang selalu tersedia untuk model ini. Anda akan dikenai biaya untuk node tersebut, meski tanpa traffic prediksi. Lihat halaman harga.
Pelajari cara mengubah setelan default untuk logging prediksi.
Khusus model klasifikasi (opsional): Di bagian Explainability options, pilih Vertex Explainable AI. Terima visualization settings yang ada atau pilih nilai baru, lalu klik Done.
Enable feature attributions for this model guna mengaktifkanMen-deploy model klasifikasi gambar AutoML dengan Vertex Explainable AI yang dikonfigurasi dan melakukan prediksi dengan penjelasan bersifat opsional. Mengaktifkan Vertex Explainable AI pada waktu deployment akan menimbulkan biaya tambahan berdasarkan jumlah node yang di-deploy dan waktu deployment. Lihat Harga untuk informasi selengkapnya.
Klik Done untuk model Anda, dan jika semua persentase Pemisahan traffic sudah benar, klik Continue.
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:
- Buat endpoint jika perlu.
- Dapatkan ID endpoint.
- Deploy model ke endpoint.
Membuat endpoint
Jika Anda men-deploy model ke endpoint yang ada, Anda dapat melewati langkah ini.
gcloud
Contoh berikut menggunakan perintah gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--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 menerima respons JSON yang mirip 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
.
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 \
--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 menerima respons JSON yang mirip 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 membagi traffic antara beberapa resource DeployedModel
:
Sebelum menggunakan salah satu data perintah di bawah, 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
. - 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.
- 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_ID/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "automaticResources": { "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_ID/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.
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.
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.
Membuat prediksi online menggunakan model yang di-deploy
Untuk membuat prediksi online, kirimkan satu atau beberapa item pengujian ke sebuah model untuk dianalisis, dan model ini akan menampilkan hasil yang didasarkan pada objektif model Anda. Untuk mengetahui informasi selengkapnya tentang hasil prediksi, lihat halaman Menafsirkan hasil.
Konsol
Menggunakan Konsol Google Cloud untuk meminta prediksi online. Model Anda harus di-deploy ke endpoint.
Di Konsol Google Cloud, di bagian Vertex AI, buka halaman Models.
Dari daftar model, klik nama model yang akan diminta prediksinya.
Pilih tab Deploy & test.
Di bagian Test your model, tambahkan item pengujian untuk meminta prediksi.
Model AutoML untuk tujuan gambar mengharuskan Anda mengupload gambar untuk meminta prediksi.
Untuk informasi tentang pentingnya fitur lokal, lihat Mendapatkan penjelasan.
Setelah prediksi selesai, Vertex AI akan menampilkan hasilnya di konsol.
API
Gunakan Vertex AI API untuk meminta prediksi online. Model Anda harus di-deploy ke endpoint.
Objektif jenis data image mencakup klasifikasi dan deteksi objek.
Prediksi model edge: Saat menggunakan model Edge image AutoML untuk prediksi, Anda harus mengonversi file prediksi non-JPEG menjadi file JPEG sebelum mengirim permintaan prediksi. Untuk contoh fungsi pra-pemrosesan Python, lihat Klien Python untuk repositori Google Cloud AutoML API.
gcloud
Buat file bernama
request.json
dengan konten berikut:{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
Ganti kode berikut:
- CONTENT: Konten image yang dienkode base64.
- THRESHOLD_VALUE Opsional: Model hanya menampilkan prediksi yang memiliki skor keyakinan dengan minimal nilai ini.
- MAX_PREDICTIONS Opsional: Model menampilkan hasil prediksi hingga sebanyak ini dengan skor keyakinan tertinggi.
Jalankan perintah berikut:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Ganti kode berikut:
- ENDPOINT_ID: ID untuk endpoint.
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Endpoint berada. Misalnya,
us-central1
. - PROJECT_ID: Project ID Anda.
- ENDPOINT_ID: ID untuk endpoint tersebut.
- CONTENT: Konten image yang dienkode base64.
- THRESHOLD_VALUE Opsional: Model hanya menampilkan prediksi yang memiliki skor keyakinan dengan minimal nilai ini.
- MAX_PREDICTIONS Opsional: Model menampilkan hasil prediksi hingga sebanyak ini dengan skor keyakinan tertinggi.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Isi JSON permintaan:
{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "predictions": [ { "confidences": [ 0.975873291, 0.972160876, 0.879488528, 0.866532683, 0.686478078 ], "displayNames": [ "Salad", "Salad", "Tomato", "Tomato", "Salad" ], "ids": [ "7517774415476555776", "7517774415476555776", "2906088397049167872", "2906088397049167872", "7517774415476555776" ], "bboxes": [ [ 0.0869686604, 0.977020741, 0.395135701, 1 ], [ 0, 0.488701463, 0.00157663226, 0.512249 ], [ 0.361617863, 0.509664357, 0.772928834, 0.914706349 ], [ 0.310678929, 0.45781514, 0.565507233, 0.711237729 ], [ 0.584359646, 1, 0.00116168708, 0.130817384 ] ] } ], "deployedModelId": "3860570043075002368" }
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.
Mendapatkan prediksi batch
Untuk membuat permintaan prediksi batch, tentukan sumber input dan format output tempat Vertex AI menyimpan hasil prediksi. Prediksi batch untuk jenis model image AutoML memerlukan file JSON Lines input dan nama bucket Cloud Storage untuk menyimpan output.
Persyaratan data input
Input untuk permintaan batch menentukan item yang akan dikirim ke model Anda untuk mendapatkan prediksi. Untuk model deteksi objek image, Anda dapat menggunakan file JSON Lines untuk menentukan daftar image yang akan dibuat prediksi, kemudian menyimpan file JSON Lines tersebut dalam bucket Cloud Storage. Contoh berikut menunjukkan satu baris dalam file JSON Lines input:
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
Meminta prediksi batch.
Untuk permintaan prediksi batch, Anda dapat menggunakan Konsol Google Cloud atau Vertex AI API. Bergantung pada jumlah item input yang Anda kirimkan, tugas prediksi batch dapat memerlukan waktu beberapa saat untuk diselesaikan.
Konsol Google Cloud
Gunakan Konsol Google Cloud untuk meminta prediksi batch.
Di Konsol Google Cloud, di bagian Vertex AI, buka halaman Batch Predictions.
Klik Create untuk membuka jendela New batch predictions dan selesaikan langkah-langkah berikut:
- Masukkan nama untuk prediksi batch.
- Untuk Model name, pilih nama model yang akan digunakan untuk prediksi batch ini.
- Untuk Source path, tentukan lokasi Cloud Storage tempat file input JSON Lines Anda berada.
- Untuk Destination path, tentukan lokasi Cloud Storage tempat hasil prediksi batch disimpan. Format Output ditentukan oleh tujuan model Anda. Model AutoML untuk tujuan gambar menghasilkan file JSON Lines.
API
Gunakan Vertex AI API untuk mengirim permintaan prediksi batch.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Model disimpan dan tugas prediksi batch dijalankan. Misalnya,
us-central1
. - PROJECT_ID: project ID Anda
- BATCH_JOB_NAME: Nama tampilan untuk tugas batch
- MODEL_ID: ID yang akan digunakan oleh model untuk membuat prediksi
- THRESHOLD_VALUE (opsional): Vertex AI hanya menampilkan prediksi yang memiliki skor keyakinan dengan nilai minimal ini. Dafaultnya adalah
0.0
. - MAX_PREDICTIONS (opsional): Vertex AI menampilkan prediksi hingga sebanyak ini dimulai dengan prediksi yang memiliki skor keyakinan tertinggi. Defaultnya adalah
10
. - URI: Cloud Storage URI tempat file JSON Lines input Anda berada.
- BUCKET: Bucket Cloud Storage Anda
- 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/batchPredictionJobs
Isi JSON permintaan:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT/locations/LOCATION/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", "modelDisplayName": "MODEL_NAME", "modelObjective": "MODEL_OBJECTIVE" }
Anda dapat melakukan polling untuk status tugas batch menggunakan
BATCH_JOB_ID hingga state
tugas menjadi
JOB_STATE_SUCCEEDED
.
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 hasil prediksi batch
Vertex AI mengirimkan output prediksi batch ke tujuan yang Anda tentukan.
Ketika tugas prediksi batch selesai, output prediksi disimpan di bucket Cloud Storage yang Anda tentukan dalam permintaan Anda.
Contoh hasil prediksi batch
Berikut ini contoh hasil prediksi batch dari model deteksi objek image.
Penting: Kotak pembatas ditentukan sebagai:
"bboxes": [
[xMin, xMax, yMin, yMax],
...]
xMin
dan xMax
adalah nilai x minimum dan maksimum, serta
yMin
dan yMax
masing-masing adalah nilai y minimum dan maksimum.
{ "instance": {"content": "gs://bucket/image.jpg", "mimeType": "image/jpeg"}, "prediction": { "ids": [1, 2], "displayNames": ["cat", "dog"], "bboxes": [ [0.1, 0.2, 0.3, 0.4], [0.2, 0.3, 0.4, 0.5] ], "confidences": [0.7, 0.5] } }