En esta página se explica cómo obtener inferencias por lotes de tus modelos entrenados personalizados mediante la consola de Google Cloud o la API de Vertex AI.
Para hacer una solicitud de inferencia por lotes, debes especificar una fuente de entrada y una ubicación de salida, que puede ser Cloud Storage o BigQuery, donde Vertex AI almacena los resultados de la inferencia por lotes.
Limitaciones y requisitos
Ten en cuenta las siguientes limitaciones y requisitos al obtener inferencias por lotes:
- Para minimizar el tiempo de procesamiento, las ubicaciones de entrada y salida deben estar en la misma región o multirregión. Por ejemplo, si la entrada está en
us-central1
, la salida puede estar enus-central1
oUS
, pero no eneurope-west4
. Para obtener más información, consulta las ubicaciones de Cloud Storage y las ubicaciones de BigQuery. - Las entradas y salidas también deben estar en la misma región o multirregión que el modelo.
- Los modelos de BigQuery ML no son modelos entrenados de forma personalizada. Sin embargo, la información de esta página se puede usar para obtener inferencias por lotes de un modelo de BigQuery ML en las siguientes condiciones:
- El modelo de BigQuery ML debe registrarse en Vertex AI Model Registry.
- Para usar una tabla de BigQuery como entrada, debes definir
InstanceConfig.instanceType
en"object"
mediante la API Vertex AI.
- El tiempo de espera para cargar un modelo de inferencia por lotes es de unos 40 minutos.
Si ves el siguiente mensaje de error, usa un modelo más pequeño para las inferencias por lotes:
Error: model server never became ready. Please validate that your model file or container configuration are valid.
Requisitos de los datos de entrada
La entrada de las solicitudes por lotes especifica los elementos que se enviarán a tu modelo para la inferencia. Admitimos los siguientes formatos de entrada:
JSON Lines
Usa un archivo JSON Lines para especificar una lista de instancias de entrada sobre las que hacer inferencias. Almacena el archivo en un segmento de Cloud Storage.
Ejemplo 1
En el ejemplo siguiente se muestra un archivo JSON Lines en el que cada línea contiene un array:
[1, 2, 3, 4]
[5, 6, 7, 8]
A continuación, se muestra lo que se envía al contenedor en el cuerpo de la solicitud HTTP:
Todos los demás contenedores
{"instances": [ [1, 2, 3, 4], [5, 6, 7, 8] ]}
Contenedores de PyTorch
{"instances": [ { "data": [1, 2, 3, 4] }, { "data": [5, 6, 7, 8] } ]}
Ejemplo 2
En el siguiente ejemplo se muestra un archivo JSON Lines en el que cada línea contiene un objeto.
{ "values": [1, 2, 3, 4], "key": 1 }
{ "values": [5, 6, 7, 8], "key": 2 }
A continuación, se muestra lo que se envía al contenedor en el cuerpo de la solicitud HTTP. Ten en cuenta que el mismo cuerpo de solicitud se envía a todos los contenedores.
{"instances": [
{ "values": [1, 2, 3, 4], "key": 1 },
{ "values": [5, 6, 7, 8], "key": 2 }
]}
Ejemplo 3
En el caso de los contenedores precompilados de PyTorch, asegúrate de envolver cada instancia en un campo data
, tal como requiere el controlador predeterminado de TorchServe. Vertex AI no envuelve las instancias por ti. Por ejemplo:
{ "data": { "values": [1, 2, 3, 4], "key": 1 } }
{ "data": { "values": [5, 6, 7, 8], "key": 2 } }
A continuación, se muestra lo que se envía al contenedor de inferencia en el cuerpo de la solicitud HTTP:
{"instances": [
{ "data": { "values": [1, 2, 3, 4], "key": 1 } },
{ "data": { "values": [5, 6, 7, 8], "key": 2 } }
]}
TFRecord
Guarda las instancias de entrada en formato TFRecord. También puedes comprimir los archivos TFRecord con Gzip. Almacena los archivos TFRecord en un segmento de Cloud Storage.
Vertex AI lee cada instancia de tus archivos TFRecord como binaria y, a continuación, codifica en base64 la instancia como objeto JSON con una sola clave llamada b64
.
A continuación, se muestra lo que se envía al contenedor en el cuerpo de la solicitud HTTP:
Todos los demás contenedores
{"instances": [ { "b64": "b64EncodedASCIIString" }, { "b64": "b64EncodedASCIIString" } ]}
Contenedores de PyTorch
{"instances": [ { "data": {"b64": "b64EncodedASCIIString" } }, { "data": {"b64": "b64EncodedASCIIString" } } ]}
Asegúrate de que tu contenedor sabe cómo decodificar la instancia.
CSV
Especifica una instancia de entrada por fila en un archivo CSV. La primera fila debe ser una fila de encabezado. Todas las cadenas deben incluirse entre comillas dobles ("). Vertex AI no acepta valores de celda que contengan saltos de línea. Los valores sin comillas se leen como números de punto flotante.
En el siguiente ejemplo se muestra un archivo CSV con dos instancias de entrada:
"input1","input2","input3"
0.1,1.2,"cat1"
4.0,5.0,"cat2"
A continuación, se muestra lo que se envía al contenedor en el cuerpo de la solicitud HTTP:
Todos los demás contenedores
{"instances": [ [0.1,1.2,"cat1"], [4.0,5.0,"cat2"] ]}
Contenedores de PyTorch
{"instances": [ { "data": [0.1,1.2,"cat1"] }, { "data": [4.0,5.0,"cat2"] } ]}
Lista de archivos
Crea un archivo de texto en el que cada fila sea el URI de Cloud Storage de un archivo. Vertex AI lee el contenido de cada archivo como binario y, a continuación, codifica en base64 la instancia como un objeto JSON con una sola clave llamada b64
.
Si tienes previsto usar la Google Cloud consola para obtener inferencias por lotes, pega tu lista de archivos directamente en la Google Cloud consola. De lo contrario, guarda la lista en un segmento de Cloud Storage.
En el siguiente ejemplo se muestra una lista de archivos con dos instancias de entrada:
gs://path/to/image/image1.jpg
gs://path/to/image/image2.jpg
A continuación, se muestra lo que se envía al contenedor en el cuerpo de la solicitud HTTP:
Todos los demás contenedores
{ "instances": [ { "b64": "b64EncodedASCIIString" }, { "b64": "b64EncodedASCIIString" } ]}
Contenedores de PyTorch
{ "instances": [ { "data": { "b64": "b64EncodedASCIIString" } }, { "data": { "b64": "b64EncodedASCIIString" } } ]}
Asegúrate de que tu contenedor sabe cómo decodificar la instancia.
BigQuery
Especifica una tabla de BigQuery como projectId.datasetId.tableId
.
Vertex AI transforma cada fila de la tabla en una instancia JSON.
Por ejemplo, si su tabla contiene lo siguiente:
Columna 1 | Columna 2 | Columna 3 |
---|---|---|
1.0 | 3,0 | "Cat1" |
2,0 | 4.0 | "Cat2" |
A continuación, se muestra lo que se envía al contenedor en el cuerpo de la solicitud HTTP:
Todos los demás contenedores
{"instances": [ [1.0,3.0,"cat1"], [2.0,4.0,"cat2"] ]}
Contenedores de PyTorch
{"instances": [ { "data": [1.0,3.0,"cat1"] }, { "data": [2.0,4.0,"cat2"] } ]}
Así se convierten los tipos de datos de BigQuery a JSON:
Tipo BigQuery | Tipo JSON | Valor de ejemplo |
---|---|---|
Cadena | Cadena | "abc" |
Entero | Entero | 1 |
Flotante | Flotante | 1.2 |
Numérico | Flotante | 4925.000000000 |
Booleano | Booleano | true |
TimeStamp | Cadena | "2019-01-01 23:59:59.999999+00:00" |
Fecha | Cadena | "2018-12-31" |
Hora | Cadena | "23:59:59.999999" |
DateTime | Cadena | "2019-01-01T00:00:00" |
Grabar | Objeto | { "A": 1,"B": 2} |
Tipo repetido | Array[Type] | [1, 2] |
Registro anidado | Objeto | {"A": {"a": 0}, "B": 1} |
Datos de partición
La inferencia por lotes usa MapReduce para fragmentar la entrada de cada réplica. Para usar las funciones de MapReduce, la entrada debe poder particionarse.
Vertex AI particiona automáticamente las entradas de BigQuery, lista de archivos y líneas JSON.
Vertex AI no particiona automáticamente los archivos CSV porque no son compatibles con las particiones de forma natural. Las filas de los archivos CSV no son autodescriptivas, no tienen tipo y pueden contener saltos de línea. No recomendamos usar entradas CSV en aplicaciones sensibles al rendimiento.
En el caso de las entradas TFRecord, asegúrate de particionar los datos manualmente dividiendo las instancias en archivos más pequeños y transfiriendo los archivos al trabajo con un comodín (por ejemplo, gs://my-bucket/*.tfrecord
). El número de archivos debe ser al menos el número de réplicas especificado.
Filtrar y transformar datos de entrada
Puedes filtrar y transformar la entrada por lotes especificando
instanceConfig
en tu solicitud
BatchPredictionJob
.
La filtración te permite excluir determinados campos de los datos de entrada de tu solicitud de inferencia o incluir solo un subconjunto de campos de los datos de entrada en tu solicitud de inferencia, sin tener que realizar ningún preprocesamiento o postprocesamiento personalizado en el contenedor de inferencia. Esto resulta útil cuando el archivo de datos de entrada tiene columnas adicionales que el modelo no necesita, como claves o datos adicionales.
Transformar te permite enviar las instancias a tu contenedor en formato JSON array
o object
. Consulta instanceType
para obtener más información.
Por ejemplo, si su tabla de entrada contiene lo siguiente:
customerId | col1 | col2 |
---|---|---|
1001 | 1 | 2 |
1002 | 5 | 6 |
y especifica los siguientes instanceConfig
:
{
"name": "batchJob1",
...
"instanceConfig": {
"excludedFields":["customerId"]
"instanceType":"object"
}
}
A continuación, las instancias de tu solicitud de inferencia se envían como objetos JSON y se excluye la columna customerId
:
{"col1":1,"col2":2}
{"col1":5,"col2":6}
Ten en cuenta que, si especificas lo siguiente, instanceConfig
, obtendrás el mismo resultado:
{
"name": "batchJob1",
...
"instanceConfig": {
"includedFields": ["col1","col2"]
"instanceType":"object"
}
}
Para ver una demostración de cómo usar los filtros de características, consulta el cuaderno Inferencia por lotes de modelos personalizados con filtros de características.
Solicitar una inferencia por lotes
Para las solicitudes de inferencia por lotes, puedes usar la Google Cloud consola o la API Vertex AI. En función del número de elementos de entrada que hayas enviado, una tarea de inferencia por lotes puede tardar un tiempo en completarse.
Cuando solicitas una inferencia por lotes, el contenedor de inferencia se ejecuta como la cuenta de servicio personalizada proporcionada por el usuario. Las operaciones de lectura y escritura, como la lectura de las instancias de inferencia de la fuente de datos o la escritura de los resultados de la inferencia, se realizan mediante el agente de servicio de Vertex AI, que tiene acceso a BigQuery y Cloud Storage de forma predeterminada.
Google Cloud consola
Usa la consola Google Cloud para solicitar una inferencia por lotes.
- En la Google Cloud consola, en la sección Vertex AI, ve a la página Predicciones por lotes.
Ir a la página Predicciones por lotes
Haga clic en Crear para abrir la ventana Nueva predicción por lotes.
En Define your batch prediction (Define tu predicción por lotes), sigue estos pasos:
Escribe un nombre para la inferencia por lotes.
En Nombre del modelo, seleccione el nombre del modelo que quiera usar para esta inferencia por lotes.
En Seleccionar fuente, elija la fuente que corresponda a sus datos de entrada:
- Si ha dado formato a los datos de entrada como JSON Lines, CSV o TFRecord, seleccione Archivo en Cloud Storage (JSON Lines, CSV, TFRecord o TFRecord Gzip). A continuación, especifique el archivo de entrada en el campo Ruta de origen.
- Si usas una lista de archivos como entrada, selecciona Archivos en Cloud Storage (otro) y pega la lista de archivos en el campo siguiente.
- En Entrada de BigQuery, selecciona Ruta de BigQuery. Si selecciona BigQuery como entrada, también debe seleccionar BigQuery como salida y Google-managed encryption key. No se admite la clave de cifrado gestionada por el cliente (CMEK) con BigQuery como entrada o salida.
En el campo Ruta de destino, especifica el directorio de Cloud Storage en el que quieres que Vertex AI almacene la salida de la inferencia por lotes.
También puede marcar la opción Habilitar atribuciones de funciones para este modelo para obtener atribuciones de funciones como parte de la respuesta de inferencia por lotes. A continuación, haz clic en Editar para configurar los ajustes de la explicación. (Editar los ajustes de explicación es opcional si ya los ha configurado para el modelo, pero es obligatorio en caso contrario).
Especifica las opciones de computación de la tarea de inferencia por lotes: Número de nodos de computación, Tipo de máquina, y (opcionalmente) Tipo de acelerador y Número de aceleradores.
Opcional: El análisis Monitorización de modelos de las inferencias por lotes está disponible en Vista previa. Consulta los requisitos para añadir la configuración de detección de sesgos a tu tarea de inferencia por lotes.
Haz clic para activar Habilitar la monitorización del modelo para esta predicción por lotes.
Seleccione una fuente de datos de entrenamiento. Introduce la ruta de datos o la ubicación de la fuente de datos de entrenamiento que hayas seleccionado.
Opcional: En Umbrales de alerta, especifica los umbrales en los que se activarán las alertas.
En Correos de notificación, introduzca una o varias direcciones de correo separadas por comas para recibir alertas cuando un modelo supere un umbral de alerta.
Opcional: En Canales de notificación, añade canales de Cloud Monitoring para recibir alertas cuando un modelo supere un umbral de alerta. Puede seleccionar canales de Cloud Monitoring que ya tenga o crear uno nuevo haciendo clic en Gestionar canales de notificaciones. La consola Google Cloud admite los canales de notificación de PagerDuty, Slack y Pub/Sub.
Haz clic en Crear.
API
Usa la API de Vertex AI para enviar solicitudes de inferencia por lotes. Selecciona una pestaña en función de la herramienta que estés usando para obtener inferencias por lotes.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
LOCATION_ID: región en la que se almacena el modelo y se ejecuta el trabajo de predicción por lotes. Por ejemplo,
us-central1
.PROJECT_ID: tu ID de proyecto.
BATCH_JOB_NAME: nombre visible del trabajo de predicción por lotes.
MODEL_ID: ID del modelo que se va a usar para hacer predicciones.
INPUT_FORMAT: el formato de los datos de entrada:
jsonl
,csv
,tf-record
,tf-record-gzip
ofile-list
.INPUT_URI: URI de Cloud Storage de los datos de entrada. Puede contener comodines.
OUTPUT_DIRECTORY: URI de Cloud Storage de un directorio en el que quieres que Vertex AI guarde el resultado.
MACHINE_TYPE: los recursos de la máquina que se usarán en este trabajo de predicción por lotes.
También puedes configurar el campo
machineSpec
para usar aceleradores, pero en el siguiente ejemplo no se muestra cómo hacerlo.BATCH_SIZE: número de instancias que se enviarán en cada solicitud de predicción. El valor predeterminado es 64. Aumentar el tamaño del lote puede mejorar el rendimiento, pero también puede provocar que se agote el tiempo de espera de las solicitudes.
STARTING_REPLICA_COUNT: número de nodos de este trabajo de predicción por lotes.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Cuerpo JSON de la solicitud:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "INPUT_FORMAT", "gcsSource": { "uris": ["INPUT_URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_DIRECTORY", }, }, "dedicatedResources" : { "machineSpec" : { "machineType": MACHINE_TYPE }, "startingReplicaCount": STARTING_REPLICA_COUNT }, "manualBatchTuningParameters": { "batch_size": BATCH_SIZE, } }
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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME 202005291958", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "INPUT_URI" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_DIRECTORY" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", }
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
En el siguiente ejemplo, sustituye PREDICTIONS_FORMAT por jsonl
.
Para saber cómo sustituir los demás marcadores de posición, consulta la REST & CMD LINE
pestaña de esta sección.
Python
Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.
BigQuery
En el ejemplo de REST anterior se usa Cloud Storage como origen y destino. Para usar BigQuery, haz los siguientes cambios:
Cambie el campo
inputConfig
por lo siguiente:"inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://SOURCE_PROJECT_ID.SOURCE_DATASET_NAME.SOURCE_TABLE_NAME" } }
Cambie el campo
outputConfig
por lo siguiente:"outputConfig": { "predictionsFormat":"bigquery", "bigqueryDestination":{ "outputUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_DATASET_NAME.DESTINATION_TABLE_NAME" } }
Haz los cambios siguientes:
SOURCE_PROJECT_ID
: ID del proyecto de origen Google CloudSOURCE_DATASET_NAME
: nombre del conjunto de datos de BigQuery de origenSOURCE_TABLE_NAME
: nombre de la tabla de BigQuery de origenDESTINATION_PROJECT_ID
: ID del proyecto de destino Google CloudDESTINATION_DATASET_NAME
: nombre del conjunto de datos de BigQuery de destino.DESTINATION_TABLE_NAME
: nombre de la tabla de destino de BigQuery
Importancia de características
Si quieres que se devuelvan los valores de importancia de las características de tus inferencias, asigna el valor true
a la propiedad generateExplanation
. Ten en cuenta que los modelos de previsión no admiten la importancia de las características, por lo que no puedes incluirla en tus solicitudes de inferencia por lotes.
La importancia de las funciones, a veces denominada atribuciones de funciones, forma parte de Vertex Explainable AI.
Solo puedes definir generateExplanation
como true
si has configurado tu Model
para que muestre explicaciones o si especificas el campo explanationSpec
de BatchPredictionJob
.
Elegir el tipo de máquina y el número de réplicas
Escalar horizontalmente aumentando el número de réplicas mejora el rendimiento de forma más lineal y predecible que usando tipos de máquina más grandes.
En general, te recomendamos que especifiques el tipo de máquina más pequeño posible para tu trabajo y que aumentes el número de réplicas.
Para que sea rentable, le recomendamos que elija un número de réplicas de forma que su trabajo de inferencia por lotes se ejecute durante al menos 10 minutos. Esto se debe a que se te cobra por cada hora de nodo de réplica, lo que incluye los aproximadamente 5 minutos que tarda cada réplica en iniciarse. No es rentable procesar datos solo durante unos segundos y, después, cerrar el servicio.
Como norma general, para miles de instancias, recomendamos un starting_replica_count
de decenas. En el caso de millones de instancias, recomendamos un starting_replica_count
de cientos. También puede usar la siguiente fórmula para estimar el número de réplicas:
N / (T * (60 / Tb))
Donde:
- N: número de lotes de la tarea. Por ejemplo, 1 millón de instancias/100 (tamaño del lote) = 10.000 lotes.
- T: el tiempo previsto para la tarea de inferencia por lotes. Por ejemplo, 10 minutos.
- Tb: el tiempo en segundos que tarda una réplica en procesar un solo lote. Por ejemplo, 1 segundo por lote en un tipo de máquina de 2 núcleos.
En nuestro ejemplo, 10.000 lotes / (10 minutos * (60 / 1 s)) se redondea a 17 réplicas.
A diferencia de la inferencia online, las tareas de inferencia por lotes no se escalan automáticamente. Como todos los datos de entrada se conocen de antemano, el sistema particiona los datos en cada réplica cuando se inicia el trabajo. El sistema usa el parámetro starting_replica_count
. Se ignora el parámetro max_replica_count
.
Todas estas recomendaciones son directrices aproximadas. No necesariamente proporcionan un rendimiento óptimo para todos los modelos. No proporcionan estimaciones exactas del tiempo de procesamiento ni del coste. Además, no siempre reflejan la mejor relación coste-rendimiento en cada caso. Úsalos como punto de partida razonable y ajústalos según sea necesario. Para medir características como el rendimiento de tu modelo, ejecuta el cuaderno Finding ideal machine type (Encontrar el tipo de máquina ideal).
Para máquinas aceleradas por GPU o TPU
Sigue las directrices anteriores (que también se aplican a los modelos solo con CPU) y ten en cuenta lo siguiente:
- Es posible que necesites más CPUs y GPUs (por ejemplo, para el preprocesamiento de datos).
- Los tipos de máquina con GPU tardan más en iniciarse (10 minutos), por lo que te recomendamos que elijas tiempos más largos (por ejemplo, al menos 20 minutos en lugar de 10) para la tarea de inferencia por lotes, de forma que se dedique una proporción razonable del tiempo y el coste a generar inferencias.
Recuperar resultados de inferencia por lotes
Cuando se completa una tarea de inferencia por lotes, el resultado de la inferencia se almacena en el segmento de Cloud Storage o en la ubicación de BigQuery que hayas especificado en tu solicitud.
Resultado de inferencia por lotes de ejemplo
La carpeta de salida contiene un conjunto de archivos JSON Lines.
Los archivos se denominan
{gcs_path}/prediction.results-{file_number}-of-{number_of_files_generated}
.
El número de archivos no es determinista debido a la naturaleza distribuida de la inferencia por lotes.
Cada línea del archivo corresponde a una instancia de la entrada y tiene los siguientes pares clave-valor:
prediction
: contiene el valor devuelto por el contenedor.instance
: en el caso de una lista de archivos, contiene el URI de Cloud Storage. En el caso de los demás formatos de entrada, contiene el valor que se ha enviado al contenedor en el cuerpo de la solicitud HTTP.
Ejemplo 1
Si la solicitud HTTP contiene lo siguiente:
{
"instances": [
[1, 2, 3, 4],
[5, 6, 7, 8]
]}
El contenedor devuelve lo siguiente:
{
"predictions": [
[0.1,0.9],
[0.7,0.3]
],
}
El archivo de salida JSON Lines es el siguiente:
{ "instance": [1, 2, 3, 4], "prediction": [0.1,0.9]}
{ "instance": [5, 6, 7, 8], "prediction": [0.7,0.3]}
Ejemplo 2
Si la solicitud HTTP contiene lo siguiente:
{
"instances": [
{"values": [1, 2, 3, 4], "key": 1},
{"values": [5, 6, 7, 8], "key": 2}
]}
El contenedor devuelve lo siguiente:
{
"predictions": [
{"result":1},
{"result":0}
],
}
El archivo de salida JSON Lines es el siguiente:
{ "instance": {"values": [1, 2, 3, 4], "key": 1}, "prediction": {"result":1}}
{ "instance": {"values": [5, 6, 7, 8], "key": 2}, "prediction": {"result":0}}
Usar Explainable AI
No recomendamos ejecutar explicaciones basadas en las características en una gran cantidad de datos. Esto se debe a que cada entrada puede generar miles de solicitudes en función del conjunto de valores de características posibles, lo que puede provocar un aumento masivo del tiempo y el coste de procesamiento. Por lo general, un conjunto de datos pequeño es suficiente para comprender la importancia de las funciones.
La inferencia por lotes no admite explicaciones basadas en ejemplos.
Notebooks
Siguientes pasos
- Consulta información sobre los recursos de computación para la inferencia.