批量预测

通过批量预测,您可以高效地向 Llama 模型发送多个对延迟时间不敏感的纯文本提示。与在线预测(您为每个请求发送一个输入提示)相比,您可以在单个请求中批量发送大量输入提示。

预览版期间,批量预测是免费的。

支持的 Llama 模型

Vertex AI 支持对以下 Llama 模型进行批量预测:

  • Llama 3.1 405B (llama-3.1-405b-instruct-maas)
  • Llama 3.1 70B (llama-3.1-70b-instruct-maas)
  • Llama 3.1 8B (llama-3.1-8b-instruct-maas)

准备输入

在开始之前,请在 BigQuery 表中或 Cloud Storage 中以 JSONL 文件的形式准备输入。这两个来源的输入都必须遵循 OpenAI API 架构 JSON 格式,如以下示例所示:

{"custom_id": "test-request-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "meta/llama-3.1-405b-instruct-maas", "messages": [{"role": "system", "content": "You are a chef."}, {"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}

BigQuery

您的 BigQuery 输入表必须遵循以下架构:

列名 说明
custom_id 每个请求的 ID,用于将输入与输出进行匹配。
method 请求方法。
网址 请求端点。
body(JSON) 您的输入提示。
  • 输入表可以包含其他列,这些列会被批量作业忽略并直接传递到输出表。
  • 批量预测作业会为批量预测输出预留两个列名称:response(JSON)id。请勿在输入表中使用这些列。
  • 系统会舍弃 methodurl 列,这些列不会包含在输出表中。

Cloud Storage

对于 Cloud Storage,输入文件必须是位于 Cloud Storage 存储桶中的 JSONL 文件。

请求批量预测

使用 BigQueryCloud Storage 中的输入对 Llama 模型进行批量预测。您可以独立选择将预测结果输出到 BigQuery 表或 Cloud Storage 存储桶中的 JSONL 文件。

BigQuery

指定 BigQuery 输入表、模型和输出位置。批量预测作业和表必须位于同一区域。

REST

设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:支持 Llama 模型的区域。
  • PROJECT_ID:您的项目 ID
  • MODEL:要调整的模型的名称。
  • INPUT_URI:批量预测输入所在的 BigQuery 表,例如 myproject.mydataset.input_table
  • OUTPUT_FORMAT:如需输出到 BigQuery 表,请指定 bigquery。如需输出到 Cloud Storage 存储桶,请指定 jsonl
  • DESTINATION:对于 BigQuery,请指定 bigqueryDestination。对于 Cloud Storage,请指定 gcsDestination
  • OUTPUT_URI_FIELD_NAME:对于 BigQuery,请指定 outputUri。对于 Cloud Storage,请指定 outputUriPrefix
  • OUTPUT_URI:对于 BigQuery,请指定表位置,例如 myproject.mydataset.output_result。对于 Cloud Storage,请指定存储桶和文件夹位置,例如 gs://mybucket/path/to/outputfile

HTTP 方法和网址:

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

请求 JSON 正文:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/meta/models/MODEL",
  "inputConfig": {
    "instancesFormat":"bigquery",
    "bigquerySource":{
      "inputUri" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  }
}'

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

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

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$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

您应该收到类似以下内容的 JSON 响应。

Cloud Storage

指定 JSONL 文件的 Cloud Storage 位置、模型和输出位置。

REST

设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:支持 Llama 模型的区域。
  • PROJECT_ID:您的项目 ID
  • MODEL:要调整的模型的名称。
  • INPUT_URI:JSONL 批量预测输入(例如 gs://bucketname/path/to/jsonl)的 Cloud Storage 位置。
  • OUTPUT_FORMAT:如需输出到 BigQuery 表,请指定 bigquery。如需输出到 Cloud Storage 存储桶,请指定 jsonl
  • DESTINATION:对于 BigQuery,请指定 bigqueryDestination。对于 Cloud Storage,请指定 gcsDestination
  • OUTPUT_URI_FIELD_NAME:对于 BigQuery,请指定 outputUri。对于 Cloud Storage,请指定 outputUriPrefix
  • OUTPUT_URI:对于 BigQuery,请指定表位置,例如 myproject.mydataset.output_result。对于 Cloud Storage,请指定存储桶和文件夹位置,例如 gs://mybucket/path/to/outputfile

HTTP 方法和网址:

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

请求 JSON 正文:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/meta/models/MODEL",
  "inputConfig": {
    "instancesFormat":"jsonl",
    "gcsDestination":{
      "uris" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  }
}'

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

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

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$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

您应该收到类似以下内容的 JSON 响应。

获取批量预测作业的状态

获取批量预测作业的状态,以检查其是否已成功完成。作业时长取决于您提交的输入项数量。

REST

设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的项目 ID
  • LOCATION:批量作业所在的区域。
  • JOB_ID:您创建作业时返回的批量作业 ID。

HTTP 方法和网址:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID

如需发送请求,请选择以下方式之一:

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID"

PowerShell

执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应。

检索输出

批量预测作业完成后,从您指定的位置检索输出。对于 BigQuery,输出位于目标 BigQuery 表的 response(JSON) 列中。对于 Cloud Storage,输出会作为 JSONL 文件保存在输出 Cloud Storage 位置。