Pembuatan teks massal

Prediksi batch adalah cara untuk mengirim beberapa prompt multimodal yang tidak sensitif terhadap latensi secara efisien. Tidak seperti prediksi online, ketika Anda hanya dapat menerima 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 Anda.

Model multimodal yang mendukung prediksi batch

Model multimodal berikut mendukung prediksi batch.

  • gemini-1.5-flash-001
  • gemini-1.5-pro-001
  • gemini-1.0-pro-002
  • gemini-1.0-pro-001

Menyiapkan input Anda

Permintaan batch untuk model multimodal hanya menerima sumber penyimpanan BigQuery. Untuk mempelajari lebih lanjut, lihat Ringkasan penyimpanan BigQuery. Simpan input Anda dalam tabel BigQuery dengan kolom JSON yang disebut request.

  • Konten di kolom request harus berupa JSON yang valid.
  • Konten dalam petunjuk JSON harus cocok dengan struktur GenerateContentRequest.
  • Tabel input Anda dapat memiliki kolom selain request. Parameter diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel output. Sistem menyimpan dua nama kolom untuk output: response dan status. Ini digunakan untuk memberikan informasi tentang hasil tugas prediksi batch.
  • Prediksi batch tidak mendukung kolom fileData untuk Gemini.

Contoh input BigQuery

permintaan
{
  "contents": [
    {
      "role": "user",
      "parts": {
        "text": "Give me a recipe for banana bread."
      }
    }
  ],
  "system_instruction": {
    "parts": [
      {
        "text": "You are a chef."
      }
    ]
  }
}

Meminta respons batch

Bergantung pada jumlah item input yang Anda kirimkan, tugas pembuatan batch dapat memerlukan waktu beberapa saat untuk diselesaikan.

REST

Untuk menguji perintah multimodal menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Nama project Google Cloud Anda.
  • BP_JOB_NAME: Nama yang Anda pilih untuk pekerjaan Anda.
  • INPUT_URI: URI sumber input. Ini adalah URI tabel BigQuery dalam bentuk bq://PROJECT_ID.DATASET.TABLE.
  • OUTPUT_URI: URI BigQuery pada tabel output target, dalam bentuk bq://PROJECT_ID.DATASET.TABLE. Jika tabel tersebut belum ada, maka tabel tersebut akan dibuatkan untuk Anda.

Metode HTTP dan URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs

Isi JSON permintaan:

{
    "displayName": "BP_JOB_NAME",
    "model": "publishers/google/models/gemini-1.0-pro-002",
    "inputConfig": {
      "instancesFormat":"bigquery",
      "bigquerySource":{
        "inputUri" : "INPUT_URI"
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip seperti berikut:

{
  "name": "projects/{PROJECT_ID}/locations/us-central1/batchPredictionJobs/{BATCH_JOB_ID}",
  "displayName": "My first batch prediction",
  "model": "projects/{PROJECT_ID}/locations/us-central1/models/gemini-1.0-pro-002",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_input"
    }
  },
  "modelParameters": {},
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_output"
    }
  },
  "state": "JOB_STATE_PENDING",
  "createTime": "2023-07-12T20:46:52.148717Z",
  "updateTime": "2023-07-12T20:46:52.148717Z",
  "modelVersionId": "1"
}

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

Mengambil output batch

Saat tugas prediksi batch selesai, output-nya disimpan dalam tabel BigQuery yang Anda tentukan dalam permintaan.

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