Prediksi batch adalah cara untuk mengirim beberapa prompt multimodal yang tidak sensitif terhadap latensi secara efisien. Tidak seperti prediksi online, ketika Anda hanya dapat menerima satu perintah input dalam satu waktu, Anda dapat mengirim sejumlah besar perintah multimodal dalam satu permintaan batch. Kemudian, respons Anda akan diisi secara asinkron di lokasi output penyimpanan BigQuery Anda.
Model multimodal yang mendukung prediksi batch
Model multimodal berikut mendukung prediksi batch.
gemini-1.5-flash-001
gemini-1.5-pro-001
gemini-1.0-pro-002
gemini-1.0-pro-001
Menyiapkan input Anda
Permintaan batch untuk model multimodal hanya menerima sumber penyimpanan BigQuery. Untuk mempelajari lebih lanjut, lihat Ringkasan penyimpanan BigQuery.
Simpan input Anda dalam tabel BigQuery dengan kolom JSON yang disebut
request
.
- Konten di kolom
request
harus berupa JSON yang valid. - Konten dalam petunjuk JSON harus cocok dengan struktur
GenerateContentRequest
. - Tabel input Anda dapat memiliki kolom selain
request
. Parameter diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel output. Sistem menyimpan dua nama kolom untuk output:response
danstatus
. Ini digunakan untuk memberikan informasi tentang hasil tugas prediksi batch. - Prediksi batch tidak mendukung kolom
fileData
untuk Gemini.
Contoh input BigQuery
permintaan |
---|
{ "contents": [ { "role": "user", "parts": { "text": "Give me a recipe for banana bread." } } ], "system_instruction": { "parts": [ { "text": "You are a chef." } ] } } |
Meminta respons batch
Bergantung pada jumlah item input yang Anda kirimkan, tugas pembuatan batch dapat memerlukan waktu beberapa saat untuk diselesaikan.
REST
Untuk menguji perintah multimodal menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Nama project Google Cloud Anda.
- BP_JOB_NAME: Nama yang Anda pilih untuk pekerjaan Anda.
- INPUT_URI: URI sumber input. Ini adalah URI tabel BigQuery dalam bentuk
bq://PROJECT_ID.DATASET.TABLE
. - OUTPUT_URI: URI BigQuery pada tabel output target, dalam
bentuk
bq://PROJECT_ID.DATASET.TABLE
. Jika tabel tersebut belum ada, maka tabel tersebut akan dibuatkan untuk Anda.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs
Isi JSON permintaan:
{ "displayName": "BP_JOB_NAME", "model": "publishers/google/models/gemini-1.0-pro-002", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"bigquery", "bigqueryDestination":{ "outputUri": "OUTPUT_URI" } } }
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "name": "projects/{PROJECT_ID}/locations/us-central1/batchPredictionJobs/{BATCH_JOB_ID}", "displayName": "My first batch prediction", "model": "projects/{PROJECT_ID}/locations/us-central1/models/gemini-1.0-pro-002", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_input" } }, "modelParameters": {}, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_output" } }, "state": "JOB_STATE_PENDING", "createTime": "2023-07-12T20:46:52.148717Z", "updateTime": "2023-07-12T20:46:52.148717Z", "modelVersionId": "1" }
Responsnya menyertakan ID unik untuk tugas batch.
Anda dapat melakukan polling untuk status tugas batch menggunakan BATCH_JOB_ID hingga state
tugas menjadi JOB_STATE_SUCCEEDED
. Contoh:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID
Mengambil output batch
Saat tugas prediksi batch selesai, output-nya disimpan dalam tabel BigQuery yang Anda tentukan dalam permintaan.
Contoh output BigQuery
permintaan | respons | status |
---|---|---|
'{"content":[{...}]}' | { "candidates": [ { "content": { "role": "model", "parts": [ { "text": "In a medium bowl, whisk together the flour, baking soda, baking powder." } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.14057204, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.14270912 } ] } ], "usageMetadata": { "promptTokenCount": 8, "candidatesTokenCount": 396, "totalTokenCount": 404 } } |
Langkah selanjutnya
- Pelajari cara menyesuaikan model Gemini di Ringkasan tuning model untuk Gemini
- Pelajari Batch Predictions API lebih lanjut.