Obtén predicciones por lotes para Gemini

Las predicciones por lotes te permiten enviar una gran cantidad de mensajes multimodales en una sola solicitud por lotes.

Para obtener más información sobre el flujo de trabajo por lotes, consulta Obtén predicciones por lotes para Gemini.

Modelos compatibles:

Modelo Versión
Gemini Flash (vista previa) gemini-1.5-flash-preview-0514
Gemini Pro 1.5 (vista previa) gemini-1.5-pro-preview-0514
Gemini 1.0 Pro gemini-1.0-pro-001
gemini-1.0-pro-002

Ejemplo de sintaxis

Sintaxis para enviar una solicitud a la API de llamada a función.

Una solicitud por lotes usa la misma estructura de datos que una solicitud de generación de contenido desde la API de inferencia.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
  "contents": [
    {
      "role": "user",
      "parts": {
        "text": "..."
      }
    }
  ],
  "system_instruction": {
    "parts": [
      {
        ...
      }
    ]
  },
  "generation_config": {
    ...
  }
}'

Parámetros

Consulta ejemplos para obtener detalles sobre la implementación.

Solicitud del cuerpo

Parámetros

name

El nombre de tu proyecto de Google Cloud.

displayName

Es el nombre del trabajo.

model

El modelo que se usa para la predicción por lotes.

inputConfig

El modelo que se usa para la predicción por lotes.

outputConfig

La configuración de salida, que determina la ubicación de la salida del modelo.

inputConfig

Parámetros

instancesFormat

El formato de entrada del mensaje. Usa bigquery.

bigquerySource.inputUri

Es el URI de la fuente de entrada. Este es un URI de tabla de BigQuery.

outputConfig

Parámetros

predictionsFormat

Es el formato de salida de la predicción. Debe coincidir con el formato de entrada. Usa bigquery.

bigqueryDestination.outputUri

URI de destino de salida.

Ejemplos

Solicitar una respuesta por lotes

Las solicitudes por lotes para modelos multimodales solo aceptan fuentes de almacenamiento de BigQuery. Para obtener más información, consulta lo siguiente:

Según la cantidad de elementos de entrada que hayas enviado, una tarea de predicción por lotes puede tardar un tiempo en completarse.

REST

Para probar una instrucción de texto con la API de Vertex AI, envía una solicitud POST al extremo del modelo de publicador.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el nombre de tu proyecto de Google Cloud.
  • BP_JOB_NAME: El nombre del trabajo.
  • INPUT_URI: Es el URI de la fuente de entrada. Este es un URI de tabla de BigQuery o un URI de archivo JSONL en Cloud Storage.
  • OUTPUT_URI: URI de destino de salida.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
    "name": "BP_JOB_NAME",
    "displayName": "BP_JOB_NAME",
    "model": "publishers/google/models/gemini-1.0-pro-001",
    "inputConfig": {
      "instancesFormat":"bigquery",
      "bigquerySource":{
        "inputUri" : "INPUT_URI"
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "OUTPUT_URI"
        }
    }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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/gemini-1.0-pro-001",
  "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": {}
}

En la respuesta, se incluye un identificador único para el trabajo por lotes. Puedes consultar el estado del trabajo por lotes mediante BATCH_JOB_ID hasta que el state sea JOB_STATE_SUCCEEDED. Por ejemplo:

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

Recuperar los resultados por lotes

Cuando se completa una tarea de predicción por lotes, el resultado se almacena en la tabla de BigQuery que especificaste en la solicitud.

¿Qué sigue?

Aprende a ajustar un modelo de Gemini en Descripción general del ajuste de modelos para Gemini.