Pembuatan teks massal

Prediksi batch adalah cara untuk mengirim beberapa prompt multimodal secara efisien yang tidak sensitif terhadap latensi. Tidak seperti prediksi {i>online<i}, di mana Anda berada terbatas pada satu perintah input dalam satu waktu, Anda dapat mengirim prompt multimodal dalam satu permintaan batch. Kemudian, tanggapan Anda mengisi secara asinkron dalam output penyimpanan BigQuery Anda lokasi HTTP/HTTPS.

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 penyimpanan BigQuery sumber. 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 sesuai dengan struktur GenerateContentRequest
  • Tabel input Anda dapat memiliki kolom selain request. Mereka adalah diabaikan untuk pembuatan konten, tetapi disertakan dalam tabel {i>output<i}. Sistem mencadangkan 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 oleh 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, mungkin perlu waktu beberapa saat untuk menyelesaikan tugas pembuatan batch.

REST

Untuk menguji prompt 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 di dari bq://PROJECT_ID.DATASET.TABLE.
  • OUTPUT_URI: URI BigQuery pada tabel output target, di dari bq://PROJECT_ID.DATASET.TABLE. Jika tabel itu belum ada, maka dibuat 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 akan disimpan di tabel BigQuery yang Anda tentukan dalam permintaan.

Contoh output BigQuery

permintaan respons status
&#39;{&quot;content&quot;:[{...}]}&#39;
{
  "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