Halaman ini menjelaskan cara mendapatkan prediksi batch menggunakan BigQuery.
1. 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:
* <var>PROJECT_ID</var>: The project that your service account was
created in.
* <var>SERVICE_ACCOUNT_ID</var>: The ID for the service account.
- Kolom
request
diperlukan, dan harus berupa JSON yang valid. Data JSON ini merepresentasikan input Anda untuk model. - Konten di kolom
request
harus sesuai dengan strukturGenerateContentRequest
. + Tabel input Anda dapat memiliki jenis data kolom selainrequest
. Kolom ini dapat memiliki jenis data BigQuery kecuali untuk jenis berikut: array, struct, rentang, datetime, dan geografi. Kolom ini diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel output.
Contoh input (JSON) |
---|
|
2. Mengirimkan tugas batch
Anda dapat membuat tugas batch melalui konsol Google Cloud , Google Gen AI SDK, atau REST API.
Tugas dan tabel Anda harus berada di region yang sama.
Konsol
- Di bagian Vertex AI pada Google Cloud konsol, buka halaman Inferensi Batch.
- Klik Buat.
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 harus berada di region yang sama dengan tugas prediksi batch. 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. 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 Konsol Cloud.
Konsol
- Buka halaman Inferensi Batch.
- Pilih tugas batch Anda untuk memantau progresnya.
REST
Untuk memantau tugas prediksi batch, gunakan metode
projects.locations.batchPredictionJobs.get
dan lihat kolom CompletionStats
dalam respons.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region yang mendukung model Gemini.
- PROJECT_ID: .
- BATCH_JOB_ID: ID tugas batch Anda.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.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://LOCATION-aiplatform.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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan berikut ini.
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:
JOB_STATE_PENDING
: Antrean untuk kapasitas. Tugas dapat berada dalam statusqueue
hingga 72 jam sebelum memasuki statusrunning
.JOB_STATE_RUNNING
: File input berhasil divalidasi dan batch sedang dijalankan.JOB_STATE_SUCCEEDED
: Batch telah selesai dan hasilnya sudah 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 dibatalkanJOB_STATE_CANCELLED
: batch dibatalkan
4. Mengambil output batch
Setelah tugas prediksi 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"}}