Las predicciones por lotes te permiten enviar de manera eficiente varias instrucciones solo de texto que no son sensibles a la latencia a un modelo de Llama. En comparación con las predicciones en línea, en las que envías una instrucción de entrada para cada solicitud, puedes agrupar una gran cantidad de instrucciones de entrada en una sola solicitud.
No se aplican cargos por las predicciones por lotes durante el período de vista previa.
Modelos de Llama compatibles
Vertex AI admite predicciones por lotes para los siguientes modelos de Llama:
Prepara la entrada
Antes de comenzar, prepara tus entradas en una tabla de BigQuery o como un archivo JSONL en Cloud Storage. La entrada para ambas fuentes debe seguir el formato JSON del esquema de la API de OpenAI, como se muestra en el siguiente ejemplo:
{"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
Tu tabla de entrada de BigQuery debe cumplir con el siguiente esquema:
Nombre de la columna | Descripción |
---|---|
custom_id | Es un ID para cada solicitud que permite correlacionar la entrada con la salida. |
método | Es el método de la solicitud. |
url | Es el extremo de la solicitud. |
cuerpo(JSON) | Es la instrucción de entrada. |
- Tu tabla de entrada puede tener otras columnas, que el trabajo por lotes ignora y pasa directamente a la tabla de salida.
- Los trabajos de predicción por lotes reservan dos nombres de columna para el resultado de la predicción por lotes: response(JSON) y id. No uses estas columnas en la tabla de entrada.
- Las columnas method y url se descartan y no se incluyen en la tabla de salida.
Cloud Storage
En el caso de Cloud Storage, el archivo de entrada debe ser un archivo JSONL ubicado en un bucket de Cloud Storage.
Solicitar una predicción por lotes
Realiza una predicción por lotes con un modelo de Llama usando datos de entrada de BigQuery o Cloud Storage. Puedes elegir de forma independiente si deseas generar predicciones en una tabla de BigQuery o en un archivo JSONL en un bucket de Cloud Storage.
BigQuery
Especifica la tabla de entrada, el modelo y la ubicación de salida de BigQuery. El trabajo de predicción por lotes y tu tabla deben estar en la misma región.
REST
Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: Una región que admite modelos de Llama.
- PROJECT_ID: El ID del proyecto.
- MODEL: Es el nombre del modelo que se ajustará.
- INPUT_URI: La tabla de BigQuery en la que se encuentra la entrada de predicción por lotes, como
myproject.mydataset.input_table
. - OUTPUT_FORMAT: Para generar datos en una tabla de BigQuery, especifica
bigquery
. Para generar el resultado en un bucket de Cloud Storage, especificajsonl
. - DESTINATION: Para BigQuery, especifica
bigqueryDestination
. En Cloud Storage, especificagcsDestination
. - OUTPUT_URI_FIELD_NAME:
Para BigQuery, especifica
outputUri
. En el caso de Cloud Storage, especificaoutputUriPrefix
. - OUTPUT_URI: En el caso de BigQuery, especifica la ubicación de la tabla, como
myproject.mydataset.output_result
. En Cloud Storage, especifica la ubicación del bucket y la carpeta, comogs://mybucket/path/to/outputfile
.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Cuerpo JSON de la solicitud:
'{ "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" } } }'
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Cloud Storage
Especifica la ubicación de Cloud Storage, el modelo y la ubicación de salida de tu archivo JSONL.
REST
Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: Una región que admite modelos de Llama.
- PROJECT_ID: El ID del proyecto.
- MODEL: Es el nombre del modelo que se ajustará.
- INPUT_URI: Es la ubicación de Cloud Storage de tu entrada de predicción por lotes en formato JSONL, como
gs://bucketname/path/to/jsonl
. - OUTPUT_FORMAT: Para generar datos en una tabla de BigQuery, especifica
bigquery
. Para generar el resultado en un bucket de Cloud Storage, especificajsonl
. - DESTINATION: Para BigQuery, especifica
bigqueryDestination
. En Cloud Storage, especificagcsDestination
. - OUTPUT_URI_FIELD_NAME:
Para BigQuery, especifica
outputUri
. En el caso de Cloud Storage, especificaoutputUriPrefix
. - OUTPUT_URI: En el caso de BigQuery, especifica la ubicación de la tabla, como
myproject.mydataset.output_result
. En Cloud Storage, especifica la ubicación del bucket y la carpeta, comogs://mybucket/path/to/outputfile
.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Cuerpo JSON de la solicitud:
'{ "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" } } }'
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Obtén el estado de un trabajo de predicción por lotes
Obtén el estado de tu trabajo de predicción por lotes para verificar si se completó correctamente. La duración del trabajo depende de la cantidad de elementos de entrada que enviaste.
REST
Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: Es la región en la que se encuentra tu trabajo por lotes.
- JOB_ID: Es el ID del trabajo por lotes que se devolvió cuando creaste el trabajo.
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
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
Ejecuta el siguiente comando:
$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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Cómo recuperar el resultado
Cuando se complete un trabajo de predicción por lotes, recupera el resultado de la ubicación que especificaste. En BigQuery, el resultado se encuentra en la columna response(JSON) de la tabla de destino de BigQuery. En el caso de Cloud Storage, el resultado se guarda como un archivo JSONL en la ubicación de Cloud Storage de salida.