Prediksi batch adalah teknik yang berharga untuk menerapkan model machine learning ke set data besar secara efisien. Daripada memproses setiap titik data, Anda dapat mengirim batch data ke Gemini untuk prediksi, sehingga menghemat waktu dan resource komputasi. Tidak seperti prediksi online, yang hanya dapat dilakukan pada satu perintah input pada 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.
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 database-nya. 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 resource komputasi yang diperlukan.
Prediksi batch juga dapat meningkatkan konsistensi dengan otomatisasi. Dengan memproses semua deskripsi secara bersamaan, model mempertahankan gaya dan nuansa 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 untuk entri buku baru, sehingga menghilangkan upaya manual dan memastikan situsnya tetap terbaru dengan intervensi manusia minimal.
Model Gemini yang mendukung prediksi batch
Model Gemini berikut mendukung prediksi batch.
gemini-1.5-flash-002
gemini-1.5-flash-001
gemini-1.5-pro-002
gemini-1.5-pro-001
gemini-1.0-pro-vision-001
gemini-1.0-pro-002
gemini-1.0-pro-001
Permintaan batch untuk model Gemini menerima sumber penyimpanan BigQuery dan sumber Cloud Storage. Anda dapat memilih secara independen untuk menghasilkan prediksi ke tabel BigQuery atau file JSONL di bucket Cloud Storage.
Prediksi batch untuk Cloud Storage
Menyiapkan input Anda
Input Cloud Storage
- Format file: JSON Lines (JSONL)
- Berlokasi 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="storage.objectUser"
Ganti nilai berikut:
- PROJECT_ID: Project tempat akun layanan Anda dibuat.
- SERVICE_ACCOUNT_ID: ID untuk akun layanan.
Model Gemini berikut mendukung
fileData
:gemini-1.5-flash-002
gemini-1.5-flash-001
gemini-1.5-pro-002
gemini-1.5-pro-001
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.
- 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 bucket dan lokasi 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": "publishers/google/models/gemini-1.5-flash-002", "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
Vertex AI SDK untuk 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 API Vertex AI SDK untuk Python.
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.
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.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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 akan disimpan di kolom status
untuk pemeriksaan lebih lanjut.
Selama tugas yang berjalan lama, prediksi yang telah selesai 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-1.5-flash-002@default",
"usageMetadata": {
"candidatesTokenCount": 36,
"promptTokenCount": 29180,
"totalTokenCount": 29216
}
}
}
Prediksi batch untuk BigQuery
Tentukan tabel input, model, dan lokasi output BigQuery 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 cocok dengan strukturGenerateContentRequest
.Tabel input Anda dapat memiliki jenis data kolom selain
request
. Kolom ini dapat memiliki jenis data BigQuery, kecuali untuk jenis berikut: array, struct, rentang, tanggal waktu, dan geografi. Kolom ini diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel output. Sistem mencadangkan dua nama kolom untuk output:response
danstatus
. Ini digunakan untuk memberikan informasi tentang hasil tugas prediksi batch.Model Gemini berikut mendukung
fileData
:gemini-1.5-flash-002
gemini-1.5-flash-001
gemini-1.5-pro-002
gemini-1.5-pro-001
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.
- 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 bucket dan lokasi 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": "publishers/google/models/gemini-1.5-flash-002", "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
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python 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.
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.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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 akan 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 Batch prediction API lebih lanjut.