En esta página, se muestra cómo obtener predicciones y explicaciones en línea (en tiempo real) de tus modelos de regresión o clasificación tabulares con la consola de Google Cloud o la API de Vertex AI.
Una predicción en línea es una solicitud síncrona, en lugar de una predicción por lotes, que es una solicitud asíncrona. Usa predicciones en línea cuando realices solicitudes en respuesta a la entrada de la aplicación o en otras situaciones en las que necesites una inferencia oportuna.
Debes implementar un modelo en un extremo antes de que se pueda usar para entregar predicciones en línea. La implementación de un modelo asocia recursos físicos con el modelo para que pueda entregar predicciones en línea con baja latencia.
Se tratan los siguientes temas:
- Implementa un modelo en un extremo
- Realiza una predicción en línea con el modelo implementado
Antes de comenzar
Antes de obtener predicciones en línea, primero debes entrenar un modelo.
Implementa un modelo en un extremo
Puedes implementar más de un modelo en un extremo y puedes implementar un modelo en más de un extremo. Si deseas obtener más información sobre las opciones y los casos de uso a fin de implementar modelos, consulta Acerca de la implementación de modelos.
Usa uno de los siguientes métodos para implementar un modelo:
Consola de Google Cloud
En la sección Vertex AI de la consola de Google Cloud, vaya a la página Modelos.
Haz clic en el nombre del modelo que deseas implementar para abrir su página de detalles.
Selecciona la pestaña Implementar y probar.
Si tu modelo ya está implementado en un extremo, se enumeran en la sección Implementa tu modelo.
Haz clic en Implementar en el extremo.
En la página Define tu extremo, configura lo siguiente:
Puedes implementar tu modelo en un extremo nuevo o en uno existente.
- Para implementar el modelo en un extremo nuevo, selecciona Crear extremo nuevo y proporciona un nombre para el extremo nuevo.
- Para implementar tu modelo en un extremo existente, selecciona Agregar a extremo existente y selecciona el extremo de la lista desplegable.
- Puedes agregar más de un modelo a un extremo y se puede agregar a un modelo más de un extremo. Obtén más información.
Haz clic en Continuar.
En la página Ajustes del modelo, configura lo siguiente:
-
Si implementas tu modelo en un extremo nuevo, acepta 100 para la división del tráfico. Si implementas tu modelo en un extremo existente que tiene uno o más modelos implementados, debes actualizar el porcentaje de división del tráfico del modelo que estás implementando y el que ya se implementó, para que todos los porcentajes sumen 100%.
-
Ingresa la cantidad mínima de nodos de procesamiento que deseas proporcionar para el modelo.
Esta es la cantidad de nodos disponibles para este modelo en todo momento. Se te cobrará por los nodos que se usaron, ya sea a fin de controlar la carga de la predicción o para los nodos en espera (mínimo), incluso sin tráfico de predicción. Consulta la página de precios.
-
Selecciona el Tipo de máquina.
Los recursos de máquina más grandes aumentarán el rendimiento de tu predicción y los costos.
-
Obtén más información a fin de cambiar la configuración predeterminada para el registro de predicción.
-
Haga clic en Continue.
-
En la página Supervisión de modelos, haz clic en Continuar.
En la página Objetivos de monitorización, configura lo siguiente:
- Ingresa la ubicación de tus datos de entrenamiento.
- Ingresa el nombre de la columna de destino.
Haz clic en Implementar para implementar el modelo en el extremo.
API
Cuando implementas un modelo con la API de Vertex AI, realiza los siguientes pasos:
- Crea un extremo si es necesario.
- Obtén el ID de extremo.
- Implementa el modelo en el extremo.
Crear un extremo
Si implementas un modelo en un extremo existente, puedes omitir este paso.
gcloud
En el siguiente ejemplo, se usa el comando gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Reemplaza lo siguiente:
- LOCATION_ID: la región en la que usas Vertex AI.
ENDPOINT_NAME: el nombre visible para el extremo.
La herramienta de la CLI de Google Cloud puede tardar unos segundos en crear el extremo.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- ENDPOINT_NAME: el nombre visible para el extremo.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
Cuerpo JSON de la solicitud:
{ "display_name": "ENDPOINT_NAME" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Recupera el ID de extremo
Necesitas el ID de extremo para implementar el modelo.
gcloud
En el siguiente ejemplo, se usa el comando gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Reemplaza lo siguiente:
- LOCATION_ID: la región en la que usas Vertex AI.
ENDPOINT_NAME: el nombre visible para el extremo.
Toma nota del número que aparece en la columna
ENDPOINT_ID
. Usa este ID en el paso siguiente.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: la región en la que usas Vertex AI.
- PROJECT_ID: El ID del proyecto.
- ENDPOINT_NAME: el nombre visible para el extremo.
Método HTTP y URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Implementar el modelo
Selecciona la pestaña correspondiente a tu idioma o entorno:
gcloud
En los siguientes ejemplos se usa el comando gcloud ai endpoints deploy-model
.
En el siguiente ejemplo, se implementa un Model
en un Endpoint
sin usar GPU para acelerar la entrega de predicciones y sin dividir el tráfico entre varios recursos DeployedModel
:
Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- ENDPOINT_ID: Es el ID del extremo.
- LOCATION_ID: la región en la que usas Vertex AI.
- MODEL_ID: El ID del modelo que se implementará.
-
DEPLOYED_MODEL_NAME: Un nombre para
DeployedModel
También puedes usar el nombre comercial deModel
paraDeployedModel
. -
MACHINE_TYPE: Opcional Los recursos de máquina que se usan para cada nodo de esta implementación. Su configuración predeterminada es
n1-standard-2
. Obtén más información sobre los tipos de máquinas. -
MIN_REPLICA_COUNT: La cantidad mínima de nodos para esta implementación.
El recuento de nodos se puede aumentar o disminuir según lo requiera la carga de predicción, hasta la cantidad máxima de nodos y nunca menos que esta cantidad.
Este valor debe ser mayor o igual que 1% Si se omite la marca
--min-replica-count
, el valor predeterminado es 1. -
MAX_REPLICA_COUNT: La cantidad máxima de nodos para esta implementación.
El recuento de nodos se puede aumentar o disminuir, según lo requiera la carga de predicción, hasta esta cantidad de nodos y nunca menos que la cantidad mínima de nodos.
Si omites la marca
--max-replica-count
, la cantidad máxima de nodos se establece en el valor de--min-replica-count
.
Ejecuta el comando gcloud ai endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Divide el tráfico
La marca --traffic-split=0=100
en los ejemplos anteriores envía el 100% del tráfico de predicción que Endpoint
recibe al nuevo DeployedModel
, que se representa mediante el ID temporal 0
. Si tu Endpoint
ya tiene otros recursos DeployedModel
, puedes dividir el tráfico entre el DeployedModel
nuevo y los anteriores.
Por ejemplo, para enviar el 20% del tráfico al DeployedModel
nuevo y el 80% a uno anterior, ejecuta el siguiente comando.
Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- OLD_DEPLOYED_MODEL_ID: Es el ID del
DeployedModel
existente.
Ejecuta el comando gcloud ai endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Usa el método endpoints.predict para solicitar una predicción en línea.
Implementar el modelo
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: la región en la que usas Vertex AI.
- PROJECT_ID: El ID del proyecto.
- ENDPOINT_ID: Es el ID del extremo.
- MODEL_ID: El ID del modelo que se implementará.
-
DEPLOYED_MODEL_NAME: Un nombre para
DeployedModel
También puedes usar el nombre comercial deModel
paraDeployedModel
. -
MACHINE_TYPE: Opcional Los recursos de máquina que se usan para cada nodo de esta implementación. Su configuración predeterminada es
n1-standard-2
. Obtén más información sobre los tipos de máquinas. - ACCELERATOR_TYPE: El tipo de acelerador que se adjuntará a la máquina. Es opcional si no se especifica ACCELERATOR_COUNT o es cero. No recomendado para modelos de AutoML ni modelos personalizados con capacitación personalizado que usan imágenes que no son de GPU. Obtén más información.
- ACCELERATOR_COUNT: La cantidad de aceleradores que usa cada réplica. Opcional. Debe ser cero o no especificado para los modelos de AutoML o los modelos de capacitación personalizados que usan imágenes que no son de GPU.
- MIN_REPLICA_COUNT: La cantidad mínima de nodos para esta implementación. El recuento de nodos se puede aumentar o disminuir según lo requiera la carga de predicción, hasta la cantidad máxima de nodos y nunca menos que esta cantidad. Este valor debe ser mayor o igual que 1%
- MAX_REPLICA_COUNT: La cantidad máxima de nodos para esta implementación. El recuento de nodos se puede aumentar o disminuir, según lo requiera la carga de predicción, hasta esta cantidad de nodos y nunca menos que la cantidad mínima de nodos.
- TRAFFIC_SPLIT_THIS_MODEL: El porcentaje del tráfico de predicción a este extremo para enrutar al modelo que se implementa con esta operación. La configuración predeterminada es 100. Todos los porcentajes de tráfico deben sumar hasta 100. Obtén más información sobre las divisiones del tráfico.
- DEPLOYED_MODEL_ID_N: Opcional Si se implementan otros modelos en este extremo, debes actualizar sus porcentajes de división del tráfico para que todos los porcentajes sumen hasta 100.
- TRAFFIC_SPLIT_MODEL_N: El valor de porcentaje de división del tráfico para la clave del ID del modelo implementado
- PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Cuerpo JSON de la solicitud:
{ "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": "ACCELERATOR_COUNT" }, "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Obtén más información para cambiar la configuración predeterminada para el registro de predicción.
Obtén el estado de la operación
Algunas solicitudes inician operaciones de larga duración que requieren tiempo para completarse. Estas solicitudes devuelven un nombre de operación que puedes usar para ver el estado de la operación o cancelarla. Vertex AI proporciona métodos auxiliares para hacer llamadas en operaciones de larga duración. Para obtener más información, consulta Trabaja con operaciones de larga duración.
Realiza una predicción en línea con el modelo implementado
Si quieres realizar una predicción en línea, envía uno o más elementos de prueba a un modelo para su análisis, y el modelo mostrará resultados basados en el objetivo de tu modelo. Usa la consola de Google Cloud o la API de Vertex AI para solicitar una predicción en línea.
Consola de Google Cloud
En la sección Vertex AI de la consola de Google Cloud, vaya a la página Modelos.
En la lista de modelos, haz clic en el nombre del modelo desde el que quieres solicitar predicciones.
Selecciona la pestaña Implementar y probar.
En la sección Test your model, agrega elementos de prueba para solicitar una predicción. Los datos de la predicción de referencia se completan por ti o puedes ingresar tus propios datos de predicción y hacer clic en Predecir.
Una vez que se completa la predicción, Vertex AI muestra los resultados en la consola.
API: Clasificación
gcloud
-
Crea un archivo llamado
request.json
con el siguiente contenido:{ "instances": [ { PREDICTION_DATA_ROW } ] }
Reemplaza lo siguiente:
-
PREDICTION_DATA_ROW: Un objeto JSON con claves como nombres de funciones y valores como los valores de atributo correspondientes. Por ejemplo, para un conjunto de datos con un número, un array de strings y una categoría, la fila de datos puede tener el siguiente ejemplo de solicitud:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Debes proporcionar un valor para cada atributo incluido en el entrenamiento. El formato de los datos usados para la predicción debe coincidir con el formato que se usa para el entrenamiento. Consulta Formato de datos para predicciones si quieres obtener más detalles.
-
-
Ejecute el siguiente comando:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Reemplaza lo siguiente:
- ENDPOINT_ID: Es el ID del extremo.
- LOCATION_ID: la región en la que usas Vertex AI.
REST
Usa el método endpoints.predict para solicitar una predicción en línea.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
LOCATION_ID: Es la región en la que se encuentra el extremo. Por ejemplo,
us-central1
- PROJECT_ID: El ID del proyecto.
- ENDPOINT_ID: Es el ID del extremo.
-
PREDICTION_DATA_ROW: Un objeto JSON con claves como nombres de funciones y valores como los valores de atributo correspondientes. Por ejemplo, para un conjunto de datos con un número, un array de strings y una categoría, la fila de datos puede tener el siguiente ejemplo de solicitud:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Debes proporcionar un valor para cada atributo incluido en el entrenamiento. El formato de los datos usados para la predicción debe coincidir con el formato que se usa para el entrenamiento. Consulta Formato de datos para predicciones si quieres obtener más detalles.
- DEPLOYED_MODEL_ID: el resultado mediante el método
predict
. El ID del modelo que se usó para generar la predicción.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "predictions": [ { "scores": [ 0.96771615743637085, 0.032283786684274673 ], "classes": [ "0", "1" ] } ] "deployedModelId": "2429510197" }
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
API: Regresión
gcloud
-
Crea un archivo llamado “request.json” con el siguiente contenido:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
Reemplaza lo siguiente:
-
PREDICTION_DATA_ROW: Un objeto JSON con claves como nombres de funciones y valores como los valores de atributo correspondientes. Por ejemplo, para un conjunto de datos con un número, un array de strings y una categoría, la fila de datos puede tener el siguiente ejemplo de solicitud:
"age":3.6, "sq_ft":5392, "code": "90331"
Debes proporcionar un valor para cada atributo incluido en el entrenamiento. El formato de los datos usados para la predicción debe coincidir con el formato que se usa para el entrenamiento. Consulta Formato de datos para predicciones si quieres obtener más detalles.
-
-
Ejecute el siguiente comando:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Reemplaza lo siguiente:
- ENDPOINT_ID: Es el ID del extremo.
- LOCATION_ID: la región en la que usas Vertex AI.
REST
Usa el método endpoints.predict para solicitar una predicción en línea.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
LOCATION_ID: Es la región en la que se encuentra el extremo. Por ejemplo,
us-central1
- PROJECT_ID: El ID del proyecto.
- ENDPOINT_ID: Es el ID del extremo.
-
PREDICTION_DATA_ROW: Un objeto JSON con claves como nombres de funciones y valores como los valores de atributo correspondientes. Por ejemplo, para un conjunto de datos con un número, un array de strings y una categoría, la fila de datos puede tener el siguiente ejemplo de solicitud:
"age":3.6, "sq_ft":5392, "code": "90331"
Debes proporcionar un valor para cada atributo incluido en el entrenamiento. El formato de los datos usados para la predicción debe coincidir con el formato que se usa para el entrenamiento. Consulta Formato de datos para predicciones si quieres obtener más detalles.
- DEPLOYED_MODEL_ID: el resultado mediante el método
predict
. El ID del modelo que se usó para generar la predicción.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "predictions": [ [ { "value": 65.14233 } ] ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Interpreta los resultados de la predicción
Clasificación
Los modelos de clasificación muestran una puntuación de confianza.
La puntuación de confianza comunica cuán fuerte tu modelo asocia cada clase o etiqueta con un elemento de prueba. Cuanto más alto sea el número, mayor será la confianza del modelo de que la etiqueta se debe aplicar a ese elemento. Tú decides qué tan alta debe ser la puntuación de confianza para que aceptes los resultados del modelo.
Regresión
Los modelos de regresión muestran un valor de predicción.
Si tu modelo usa inferencia probabilística, el campo value
contiene el minimizador del objetivo de optimización. Por ejemplo, si tu objetivo de optimización es minimize-rmse
, el campo value
contiene el valor medio.
Si es minimize-mae
, el campo value
contiene el valor de la media.
Si tu modelo usa inferencias probabilísticas con cuantiles, Vertex AI proporciona valores y predicciones cuantiles, además del minimizador del objetivo de optimización. Los valores cuantiles se establecen durante el entrenamiento de modelos. Las predicciones de cuantiles son los valores de predicción asociados con los valores cuantiles.
TabNet una interpretabilidad inherente del modelo; para ello, brinda´información a los usuarios sobre qué atributos usó para tomar la decisión. El algoritmo usa la atención, que aprende a mejorar de forma selectiva la influencia de algunos atributos mientras disminuye la influencia de otros a través de un promedio ponderado. Para una decisión en particular, TabNet decide de forma gradual la importancia que se le da a cada atributo. Luego, combina cada uno de los pasos para crear una predicción final. La atención es multiplicativa, y los valores más altos indican que el atributo desempeñó un papel mayor en la predicción, mientras que un valor de cero implica que el atributo no desempeñó ningún papel en esa decisión. Debido a que TabNet usa varios pasos de decisión, la atención que se le brinda a los atributos de todos los pasos se combina linealmente después del escalamiento adecuado. Esta combinación lineal en todos los pasos de decisión de TabNet es la importancia total de los atributos que te proporciona TabNet.
Resultado de ejemplo para predicciones
La carga útil de retorno de una predicción en línea con una importancia de atributos de un modelo de regresión es similar al siguiente ejemplo.
{
"predictions":[
{
"value":0.3723912537097931,
"feature_importance":{
"MSSubClass":0.12,
"MSZoning":0.33,
"LotFrontage":0.27,
"LotArea":0.06,
...
}
}
]
}
¿Qué sigue?
- Obtén más información sobre cómo exportar tu modelo.
- Obtén más información sobre los precios para predicciones en línea.