En esta guía, se describe cómo obtener explicaciones de un recurso Model
en Vertex AI. Puedes obtener explicaciones de dos maneras:
Explicaciones en línea: Solicitudes síncronas a la API de Vertex AI, similares a las inferencias en línea que muestran inferencias con atribuciones de atributos.
Explicaciones por lotes: Solicitudes asíncronas a la API de Vertex AI que muestran inferencias con atribuciones de atributos. Las explicaciones por lotes son una parte opcional de las solicitudes de inferencia por lotes.
Antes de comenzar
Antes de obtener explicaciones, debes hacer lo siguiente:
Este paso difiere según el tipo de modelo de aprendizaje automático que uses:
Si deseas obtener explicaciones a partir de un modelo de entrenamiento personalizado, sigue Configura explicaciones basadas en ejemplos o Configura explicaciones basadas en atributos para crear un
Model
que admita Vertex Explainable AI.Si deseas obtener explicaciones a partir de un modelo de regresión o clasificación tabular de AutoML, entrena un modelo de AutoML en un conjunto de datos tabular. No se requiere una configuración específica para usar Vertex Explainable AI. No se admiten las explicaciones para los modelos de previsión.
Si deseas obtener explicaciones de un modelo de clasificación de imágenes de AutoML, entrena un modelo de AutoML en un conjunto de datos de imágenes y habilita las explicaciones cuando implementas el modelo. No se requiere una configuración específica para usar Vertex Explainable AI. No se admiten las explicaciones para los modelos de detección de objetos.
Si deseas obtener explicaciones en línea, implementa el
Model
que creaste en el paso anterior en un recursoEndpoint
.
Obtén explicaciones en línea
Para obtener explicaciones en línea, sigue la mayoría de los pasos que realizarías para obtener inferencias en línea. Sin embargo, en lugar de enviar una solicitud projects.locations.endpoints.predict
a la API de Vertex AI, envía una solicitud projects.locations.endpoints.explain
.
En las siguientes guías, se proporcionan instrucciones detalladas para preparar y enviar solicitudes de explicación en línea:
Para los modelos de clasificación de imágenes de AutoML,lee Cómo obtener inferencias en línea a partir de modelos de AutoML.
Para modelos de regresión y de clasificación tabular de AutoML, consulta Cómo obtener inferencias a partir de modelos de AutoML.
En el caso de los modelos entrenados personalizados, lee Cómo obtener inferencias en línea de modelos entrenados personalizados.
Obtén explicaciones por lotes
Solo se admiten explicaciones por lotes basadas en atributos; no puedes obtener explicaciones por lotes basadas en ejemplos.
Para obtener explicaciones por lotes, configura el campo generateExplanation
como true
cuando crees un trabajo de inferencia por lotes.
Para obtener instrucciones detalladas sobre cómo preparar y crear trabajos de predicción por lotes, consulta Cómo obtener inferencias por lotes.
Obtén explicaciones simultáneas
Explainable AI admite explicaciones simultáneas. Las explicaciones simultáneas te permiten solicitar explicaciones basadas en atributos y en ejemplos del mismo extremo del modelo implementado sin tener que implementar tu modelo por separado para cada método de explicación.
Para obtener explicaciones simultáneas, sube tu modelo y configura explicaciones basadas en ejemplos o basadas en atributos. Luego, implementa tu modelo como de costumbre.
Después de implementar el modelo, puedes solicitar las explicaciones configuradas como de costumbre.
Además, puedes solicitar explicaciones simultáneas si especificas concurrent_explanation_spec_override
.
Ten en cuenta lo siguiente cuando uses explicaciones simultáneas:
- Las explicaciones simultáneas están disponibles solo con la versión de la API
v1beta1
. Si usas el SDK de Vertex para Python, deberás usar el modelopreview
con el objetivo de usar explicaciones simultáneas. - Las explicaciones basadas en ejemplos no se pueden solicitar después de la implementación con explicaciones basadas en atributos. Si deseas obtener una explicación basada en ejemplos y explicaciones basadas en atributos, implementa tu modelo con explicaciones basadas en ejemplos y solicita en función el campo de explicación simultánea.
- Las explicaciones por lotes no son compatibles con las explicaciones simultáneas. Las explicaciones en línea son la única forma de usar este atributo.
Soluciona problemas
En esta sección, se describen los pasos para solucionar problemas, que pueden resultarte útiles si tienes problemas para obtener explicaciones.
Error: el índice de lista está fuera de rango
Si recibes el siguiente mensaje de error cuando solicitas explicaciones, haz lo siguiente:
"error": "Explainability failed with exception: listindex out of range"
Asegúrate de no pasar un array vacío a un campo que espera un array de objetos. Por ejemplo, si field1
acepta un array de objetos, el siguiente cuerpo de la solicitud puede generar un error:
{
"instances": [
{
"field1": [],
}
]
}
En su lugar, asegúrate de que el array no esté vacío, por ejemplo:
{
"instances": [
{
"field1": [
{}
],
}
]
}
¿Qué sigue?
- En función de las explicaciones que recibas, aprende a ajustar tu
Model
para mejorar las explicaciones. - Prueba un notebook de muestra que brinde Vertex Explainable AI en datos tabulares o de imágenes.