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 dramatis 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 multimodal yang mendukung prediksi batch
Model multimodal 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-002
gemini-1.0-pro-001
Permintaan batch untuk model multimodal 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
- Izin baca yang sesuai untuk akun layanan
- Dukungan
fileData
terbatas pada model Gemini tertentu.Contoh input (JSONL) {"request":{"contents": [{"role": "user", "parts": [{"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"}}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/image/cricket.jpeg", "mimeType": "image/jpeg"}}]}]}} {"request":{"contents": [{"role": "user", "parts": [{"text": "Describe what is happening in this video."}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/video/another_video.mov", "mimeType": "video/mov"}}]}]}}
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
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 Python API.
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
- Kolom
request
diperlukan, dan harus berupa JSON yang valid. Data JSON ini mewakili input Anda untuk model. - Konten dalam petunjuk JSON harus cocok dengan struktur
GenerateContentRequest
. - 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. - Dukungan
fileData
terbatas pada model Gemini tertentu.
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 selanjutnya
- Pelajari cara menyesuaikan model Gemini di Ringkasan penyesuaian model untuk Gemini
- Pelajari Batch prediction API lebih lanjut.