Prediksi batch adalah teknik berharga untuk menerapkan model machine learning ke set data besar secara efisien. Daripada memproses setiap titik data, Anda dapat mengirimkan batch data ke Gemini untuk prediksi, sehingga menghemat waktu dan sumber daya komputasi. Tidak seperti prediksi online yang hanya dapat dilakukan pada 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 atau Cloud Storage Anda.
Permintaan batch untuk model Gemini didiskon 50% dari permintaan standar. Untuk mempelajari lebih lanjut, lihat halaman Harga.
Kasus penggunaan prediksi batch
Pertimbangkan toko buku online dengan ribuan buku dalam databasenya. Daripada membuat deskripsi satu per satu untuk setiap buku, yang akan memakan waktu, toko ini dapat menggunakan prediksi batch Gemini untuk memproses semua informasi buku sekaligus. Pendekatan ini secara signifikan meningkatkan efisiensi dengan mengurangi waktu pemrosesan secara keseluruhan dan meminimalkan sumber daya komputasi yang diperlukan.
Prediksi batch juga dapat meningkatkan konsistensi dengan otomatisasi. Dengan memproses semua deskripsi secara bersamaan, model mempertahankan nada dan gaya yang seragam di seluruh deskripsi buku, sehingga memperkuat identitas merek. Toko buku ini juga dapat mengintegrasikan prediksi batch ke dalam alur kerjanya untuk membuat deskripsi secara otomatis bagi entri buku baru, sehingga tidak memerlukan upaya manual dan memastikan situsnya tetap terbaru dengan intervensi manusia yang minimal.
Model Gemini yang mendukung prediksi batch
Model Gemini dasar dan yang disesuaikan berikut mendukung prediksi batch:
Batasan
Setelah pengiriman, tugas batch divalidasi dan dimasukkan dalam antrean untuk kapasitas yang tersedia. Setelah mulai berjalan, tugas memiliki batas eksekusi 24 jam. Jika tidak selesai dalam waktu tersebut, semua permintaan yang selesai akan diekspor, dan Anda hanya ditagih untuk permintaan yang selesai. Waktu maksimum yang dapat dihabiskan oleh tugas batch dalam antrean dan berjalan adalah 72 jam.
Input dan output prediksi batch
Permintaan batch untuk model Gemini menerima sumber penyimpanan BigQuery dan sumber Cloud Storage. Anda dapat secara terpisah memilih untuk menghasilkan prediksi ke tabel BigQuery atau file JSONL di bucket Cloud Storage.
Sebaiknya sumber input (tabel atau file) Anda menyertakan minimal 25.000 permintaan per tugas. Sistem prediksi batch membagi dan memparalelkan tugas secepat dan seefisien mungkin dengan sumber daya yang tersedia pada saat itu. Tidak ada jumlah maksimum permintaan per tugas.
Untuk kuota dan batas pada tugas prediksi batch, lihat Kuota dan batas sistem AI Generatif di Vertex AI.
Prediksi batch untuk Cloud Storage
Menyiapkan input Anda
Input Cloud Storage
- Format file: JSON Lines (JSONL)
- Berada di
us-central1
Harus memiliki izin Cloud Storage yang sesuai untuk akun layanan. Untuk memberikan izin baca dan tulis akun layanan di bucket Cloud Storage, gunakan perintah
gcloud iam service-accounts add-iam-policy-binding
sebagai berikut:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectUser"
Ganti nilai berikut:
- PROJECT_ID: Project tempat akun layanan Anda dibuat.
- SERVICE_ACCOUNT_ID: ID untuk akun layanan.
Contoh input (JSONL) |
---|
|
Meminta tugas prediksi batch
Tentukan tabel input, model, dan lokasi output Cloud Storage Anda.
REST
Untuk membuat tugas prediksi batch, gunakan metode
projects.locations.batchPredictionJobs.create
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region yang mendukung model Gemini.
- PROJECT_ID: Project ID Anda.
- MODEL_PATH: nama model penayang, misalnya,
publishers/google/models/gemini-2.0-flash-001
; atau nama endpoint yang disesuaikan, misalnya,projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
, dengan MODEL_ID adalah ID model yang disesuaikan. - INPUT_URI: Lokasi Cloud Storage input prediksi batch JSONL Anda, seperti
gs://bucketname/path/to/file.jsonl
. - OUTPUT_FORMAT: Untuk menghasilkan output ke
tabel BigQuery, tentukan
bigquery
. Untuk menghasilkan output ke bucket Cloud Storage, tentukanjsonl
. - DESTINATION: Untuk
BigQuery, tentukan
bigqueryDestination
. Untuk Cloud Storage, tentukangcsDestination
. - OUTPUT_URI_FIELD_NAME:
Untuk BigQuery, tentukan
outputUri
. Untuk Cloud Storage, tentukanoutputUriPrefix
. - OUTPUT_URI: Untuk
BigQuery, tentukan lokasi tabel seperti
bq://myproject.mydataset.output_result
. Region set data BigQuery output harus sama dengan tugas prediksi batch Vertex AI. Untuk Cloud Storage, tentukan lokasi bucket dan direktori sepertigs://mybucket/path/to/output
.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Isi JSON permintaan:
{ "displayName": "my-cloud-storage-batch-prediction-job", "model": "MODEL_PATH", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "OUTPUT_FORMAT", "DESTINATION": { "OUTPUT_URI_FIELD_NAME": "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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
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
Gen AI SDK for Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Output prediksi batch
Setelah tugas prediksi batch selesai, outputnya akan disimpan di bucket Cloud Storage atau tabel BigQuery yang Anda tentukan dalam permintaan Anda.
Untuk baris yang berhasil, respons model disimpan di kolom response
. Jika tidak,
detail error disimpan di kolom status
untuk pemeriksaan lebih lanjut.
Selama tugas yang berjalan lama, prediksi yang telah selesai akan terus diekspor ke tujuan output yang ditentukan. Proses ini dimulai setelah 90 menit. Jika tugas prediksi batch dibatalkan atau gagal, semua prediksi yang telah selesai akan diekspor.
Contoh output Cloud Storage
{
"status": "",
"processed_time": "2024-11-01T18:13:16.826+00:00",
"request": {
"contents": [
{
"parts": [
{
"fileData": null,
"text": "What is the relation between the following video and image samples?"
},
{
"fileData": {
"fileUri": "gs://cloud-samples-data/generative-ai/video/animals.mp4",
"mimeType": "video/mp4"
},
"text": null
},
{
"fileData": {
"fileUri": "gs://cloud-samples-data/generative-ai/image/cricket.jpeg",
"mimeType": "image/jpeg"
},
"text": null
}
],
"role": "user"
}
]
},
"response": {
"candidates": [
{
"avgLogprobs": -0.5782725546095107,
"content": {
"parts": [
{
"text": "This video shows a Google Photos marketing campaign where animals at the Los Angeles Zoo take self-portraits using a modified Google phone housed in a protective case. The image is unrelated."
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"modelVersion": "gemini-2.0-flash-001@default",
"usageMetadata": {
"candidatesTokenCount": 36,
"promptTokenCount": 29180,
"totalTokenCount": 29216
}
}
}
Prediksi batch untuk BigQuery
Tentukan tabel input BigQuery, model, dan lokasi output Anda. Tugas prediksi batch dan tabel Anda harus berada di region yang sama.
Menyiapkan input Anda
Input penyimpanan BigQuery
Akun layanan Anda harus memiliki izin BigQuery yang sesuai. Untuk memberikan peran BigQuery User kepada akun layanan, gunakan perintah
gcloud iam service-accounts add-iam-policy-binding
sebagai berikut:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/bigquery.user"
Ganti nilai berikut:
- PROJECT_ID: Project tempat akun layanan Anda dibuat.
- SERVICE_ACCOUNT_ID: ID untuk akun layanan.
Kolom
request
diperlukan, dan harus berupa JSON yang valid. Data JSON ini mewakili input Anda untuk model.Konten di kolom
request
harus sesuai dengan strukturGenerateContentRequest
.Tabel input Anda dapat memiliki jenis data kolom selain
request
. Kolom ini dapat memiliki jenis data BigQuery kecuali untuk jenis data berikut: array, struct, rentang, datetime, dan geografi. Kolom ini diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel output.
Contoh input (JSON) |
---|
|
Meminta tugas prediksi batch
REST
Untuk membuat tugas prediksi batch, gunakan metode
projects.locations.batchPredictionJobs.create
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region yang mendukung model Gemini.
- PROJECT_ID: Project ID Anda.
- MODEL_PATH: nama model penayang, misalnya,
publishers/google/models/gemini-2.0-flash-001
; atau nama endpoint yang disesuaikan, misalnya,projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
, dengan MODEL_ID adalah ID model yang disesuaikan. - INPUT_URI: Tabel
BigQuery tempat input prediksi batch Anda berada
seperti
bq://myproject.mydataset.input_table
. Set data multi-region tidak didukung. - OUTPUT_FORMAT: Untuk menghasilkan output ke
tabel BigQuery, tentukan
bigquery
. Untuk menghasilkan output ke bucket Cloud Storage, tentukanjsonl
. - DESTINATION: Untuk
BigQuery, tentukan
bigqueryDestination
. Untuk Cloud Storage, tentukangcsDestination
. - OUTPUT_URI_FIELD_NAME:
Untuk BigQuery, tentukan
outputUri
. Untuk Cloud Storage, tentukanoutputUriPrefix
. - OUTPUT_URI: Untuk
BigQuery, tentukan lokasi tabel seperti
bq://myproject.mydataset.output_result
. Region set data BigQuery output harus sama dengan tugas prediksi batch Vertex AI. Untuk Cloud Storage, tentukan lokasi bucket dan direktori sepertigs://mybucket/path/to/output
.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Isi JSON permintaan:
{ "displayName": "my-bigquery-batch-prediction-job", "model": "MODEL_PATH", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "OUTPUT_FORMAT", "DESTINATION": { "OUTPUT_URI_FIELD_NAME": "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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
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
Gen AI SDK for Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Mengambil output batch
Setelah tugas prediksi batch selesai, outputnya akan disimpan di tabel BigQuery yang Anda tentukan dalam permintaan Anda.
Untuk baris yang berhasil, respons model disimpan di kolom response
. Jika tidak,
detail error disimpan di kolom status
untuk pemeriksaan lebih lanjut.
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 berikutnya
- Pelajari cara menyesuaikan model Gemini di Ringkasan penyesuaian model untuk Gemini
- Pelajari lebih lanjut Batch prediction API.