Mendapatkan pembuatan teks batch

Prediksi batch adalah cara untuk mengirim sejumlah besar perintah teks yang tidak sensitif terhadap latensi secara efisien. Berbeda dengan prediksi online yaitu Anda hanya dapat mengirim satu permintaan input pada satu waktu, Anda dapat mengirim sejumlah besar permintaan LLM dalam satu permintaan batch. Serupa dengan cara prediksi batch dilakukan untuk data tabel di Vertex AI, Anda menentukan lokasi output, menambahkan perintah input, dan respons Anda terisi secara asinkron di lokasi output.

Setelah mengirimkan permintaan batch untuk model teks dan meninjau hasilnya, Anda dapat menyesuaikan model tersebut melalui penyesuaian model. Setelah melakukan penyesuaian, Anda dapat mengirimkan model yang telah diperbarui untuk pembuatan batch seperti biasa. Untuk mempelajari lebih lanjut cara menyesuaikan model, lihat Menyesuaikan model dasar.

Model teks yang mendukung prediksi batch

  • text-bison

Menyiapkan input Anda

Input untuk permintaan batch menentukan item yang akan dikirim ke model Anda untuk pembuatan batch. Saat menggunakan klasifikasi teks pada model, Anda dapat menggunakan file JSON Lines atau tabel BigQuery untuk menentukan daftar input. Anda menyimpan tabel BigQuery di BigQuery dan file JSON Lines Anda di Cloud Storage.

Permintaan batch untuk model teks hanya menerima sumber penyimpanan BigQuery dan Cloud Storage. Permintaan dapat mencakup hingga 30.000 perintah.

Untuk mempelajari pemformatan lebih lanjut, lihat:

Contoh JSONL

Format input JSONL

{"prompt":"Give a short description of a machine learning model:"}
{"prompt":"Best recipe for banana bread:"}

Output JSONL

{"instance":{"prompt":"Give..."},"predictions": [{"content":"A machine","safetyAttributes":{...}}],"status":""}
{"instance":{"prompt":"Best..."},"predictions": [{"content":"Sure", "safetyAttributes":{...}}],"status":""}

Contoh BigQuery

Format input BigQuery

Contoh ini menampilkan tabel BigQuery satu kolom.

perintah
"Berikan deskripsi singkat tentang model machine learning:"
"Resep terbaik roti pisang:"

Output BigQuery

perintah prediksi status
"Berikan deskripsi singkat tentang model machine learning:"

'[{
   "content": "A machine learning model is a
               statistical method",
   "safetyAttributes": {
     "blocked": false,
     "scores": [
       0.10000000149011612
     ],
     "categories": [
       "Violent"
     ]
   }
 }]'
 
"Resep roti pisang terenak:"

'[{"content": "Sure, here is a recipe for banana
               bread:\n\nIngredients:\n\n*",
   "safetyAttributes": {
     "scores": [
       0.10000000149011612
     ],
     "blocked": false,
     "categories": [
       "Violent"
     ]
   }
}]'

Meminta respons batch

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

REST

Untuk menguji prompt teks 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 pekerjaan.
  • MODEL_PARAM: Peta parameter model. Beberapa parameter yang dapat diterima mencakup: maxOutputTokens, topK, topP, dan temperature.
  • INPUT_URI: URI sumber input Dapat berupa URI tabel BigQuery atau URI file JSONL di Cloud Storage.
  • OUTPUT_URI: URI target output.

Metode HTTP dan URL:

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

Isi JSON permintaan:

{
    "name": "BP_JOB_NAME",
    "displayName": "BP_JOB_NAME",
    "model": "publishers/google/models/text-bison",
    "model_parameters": "MODEL_PARAM"
    "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": "BP_sample_publisher_BQ_20230712_134650",
  "model": "projects/{PROJECT_ID}/locations/us-central1/models/text-bison",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "bq://sample.text_input"
    }
  },
  "modelParameters": {},
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "bq://sample.llm_dataset.embedding_out_BP_sample_publisher_BQ_20230712_134650"
    }
  },
  "state": "JOB_STATE_PENDING",
  "createTime": "2023-07-12T20:46:52.148717Z",
  "updateTime": "2023-07-12T20:46:52.148717Z",
  "labels": {
    "owner": "sample_owner",
    "product": "llm"
  },
  "modelVersionId": "1",
  "modelMonitoringStatus": {}
}

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.

from vertexai.preview.language_models import TextGenerationModel
text_model = TextGenerationModel.from_pretrained("text-bison")
batch_prediction_job = text_model.batch_predict(
  source_uri=["gs://BUCKET_NAME/test_table.jsonl"],
  destination_uri_prefix="gs://BUCKET_NAME/tmp/2023-05-25-vertex-LLM-Batch-Prediction/result3",
  # Optional:
  model_parameters={
      "maxOutputTokens": "200",
      "temperature": "0.2",
      "topP": "0.95",
      "topK": "40",
  },
)
print(batch_prediction_job.display_name)
print(batch_prediction_job.resource_name)
print(batch_prediction_job.state)

Mengambil output batch

Setelah tugas prediksi batch selesai, outputnya akan disimpan di bucket Cloud Storage atau tabel BigQuery yang Anda tentukan dalam permintaan Anda.

Langkah selanjutnya