Halaman ini menjelaskan cara mendapatkan inferensi batch menggunakan BigQuery.
1. Menyiapkan input Anda
Input penyimpanan BigQuery
Akun layanan Anda harus memiliki izin BigQuery yang sesuai. Untuk memberikan peran BigQuery User ke 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: ID untuk 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 struktur
GenerateContentRequest.
Tabel input Anda dapat memiliki jenis data kolom selain request. Kolom ini dapat memiliki jenis data BigQuery kecuali
yang berikut: array, struct, rentang, datetime, dan
geografi. Kolom ini diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel output.
| Contoh input (JSON) |
|---|
|
2. Mengirim tugas batch
Anda dapat membuat tugas batch melalui Google Cloud konsol, Google Gen AI SDK, atau REST API.
Tugas dan tabel Anda harus berada di region yang sama.
Konsol
- Di bagian Agent Platform konsol Google Cloud , buka halaman Batch Inference.
- Klik Create.
REST
Untuk membuat tugas inferensi batch, gunakan metode
projects.locations.batchPredictionJobs.create.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- ENDPOINT_PREFIX: Region resource model yang diikuti dengan
-. Misalnya,us-central1-. Jika menggunakan endpoint global, biarkan kosong. Catatan: Endpoint global tidak didukung untuk inferensi batch menggunakan model yang disesuaikan. - LOCATION: Region yang mendukung
model Gemini. Jika menggunakan endpoint global, masukkan
global. - 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 dari model yang disesuaikan. - INPUT_URI: Tabel BigQuery tempat input inferensi batch Anda berada, seperti
bq://myproject.mydataset.input_table. Set data harus berada di region yang sama dengan tugas inferensi batch. Set data multi-region tidak didukung. - OUTPUT_FORMAT: Untuk output ke
tabel BigQuery, tentukan
bigquery. Untuk 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 inferensi batch Agent Platform. Untuk Cloud Storage, tentukan lokasi bucket dan direktori sepertigs://mybucket/path/to/output.
Metode HTTP dan URL:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Meminta isi JSON:
{
"displayName": "my-bigquery-batch-inference-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://ENDPOINT_PREFIXaiplatform.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://ENDPOINT_PREFIXaiplatform.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. Untuk mengetahui informasi selengkapnya, lihat Memantau status tugas. Catatan: Laporan akun Layanan Kustom, progres langsung, CMEK, dan VPCSC tidak didukung.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
3. Memantau status dan progres tugas
Setelah tugas dikirimkan, Anda dapat memeriksa status tugas batch menggunakan API, SDK dan Google Cloud konsol.
Konsol
- Buka halaman Batch Inference.
- Pilih tugas batch Anda untuk memantau progresnya.
REST
Untuk memantau tugas inferensi batch, gunakan metode
projects.locations.batchPredictionJobs.get dan lihat kolom CompletionStats dalam respons.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- ENDPOINT_PREFIX: Region resource model yang diikuti dengan
-. Misalnya,us-central1-. Jika menggunakan endpoint global, biarkan kosong. - LOCATION: Region yang mendukung
model Gemini. Jika menggunakan endpoint global, masukkan
global. - PROJECT_ID: Project ID Anda.
- BATCH_JOB_ID: ID tugas batch Anda.
Metode HTTP dan URL:
GET https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
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
Status tugas batch tertentu dapat berupa salah satu dari berikut ini:
JOB_STATE_PENDING: Antrean untuk kapasitas. Tugas dapat berada dalam statusqueuehingga 72 jam sebelum memasuki statusrunning.JOB_STATE_RUNNING: File input berhasil divalidasi dan batch sedang dijalankan.JOB_STATE_SUCCEEDED: Batch telah selesai dan hasilnya siapJOB_STATE_FAILED: file input gagal dalam proses validasi, atau tidak dapat diselesaikan dalam jangka waktu 24 jam setelah memasuki statusRUNNING.JOB_STATE_CANCELLING: Batch sedang dibatalkan.JOB_STATE_CANCELLED: Batch dibatalkan.
4. Mengambil output batch
Setelah tugas inferensi batch selesai, output 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 akan disimpan di kolom status untuk pemeriksaan lebih lanjut.
Contoh output
Contoh yang berhasil
{
"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
}
}
Contoh gagal
Permintaan
{"contents":[{"parts":{"text":"Explain how AI works in a few words."},"role":"tester"}]}Tanggapan
Bad Request: {"error": {"code": 400, "message": "Please use a valid role: user, model.", "status": "INVALID_ARGUMENT"}}