Mejora las explicaciones basadas en atributos

Cuando trabajas con modelos de entrenamiento personalizado, puedes configurar parámetros específicos para mejorar tus explicaciones. En esta guía, se describe cómo inspeccionar las explicaciones que obtienes de Vertex Explainable AI por error, y se describe cómo ajustar la configuración de Vertex Explainable AI para mitigar errores.

Si quieres usar Vertex Explainable AI con un modelo tabular de AutoML, no necesitas realizar ninguna configuración. Vertex AI configura automáticamente el modelo para Vertex Explainable AI. Omite este documento y lee Obtén explicaciones.

Los métodos de atribución de atributos de Vertex Explainable AI se basan en variantes de los valores de Shapley. Debido a que los valores de Shapley son muy costosos en términos de procesamiento, Vertex Explainable AI proporciona aproximaciones en lugar de valores exactos.

Para reducir el error de aproximación y acercarte a los valores exactos, debes cambiar las siguientes entradas:

  • Aumenta la cantidad de pasos o de rutas integrales.
  • Cambia los modelos de referencia de entrada que seleccionaste.
  • Agrega más modelos de referencia de entrada. Con los métodos de gradientes integrados y XRAI, el uso de modelos de referencia adicionales aumenta la latencia. El uso de modelos de referencia adicionales con el método de Shapley con muestreo no aumenta la latencia.

Inspecciona las explicaciones de errores

Después de solicitar y recibir explicaciones de Vertex Explainable AI, puedes verificar las explicaciones en busca de errores de aproximación. Si las explicaciones tienen un error de aproximación alto, es posible que no sean confiables. En esta sección, se describen varias formas de verificar si hay errores.

Verifica el campo approximationError.

Para cada Attribution, Vertex Explainable AI muestra un error de aproximación en el campo approximationError. Si el error de aproximación supera el 0.05, considera ajustar la configuración de Vertex Explainable AI.

Para la técnica de gradientes integrados, calculamos el error de aproximación mediante la comparación de la suma de las atribuciones de los atributos con la diferencia entre los valores previstos para la puntuación de entrada y la puntuación del modelo de referencia. Para la técnica de gradientes integrados, la atribución de atributos es una aproximación de la integral de los valores de los gradientes entre el modelo de referencia y la entrada. Usamos el cuadrante gaussiano para aproximar la integral porque es más precisa que los métodos de la suma de Riemann.

Comprueba la diferencia entre la salida del modelo de referencia y las predicciones

Por cada Attribution, Vertex Explainable AI muestra un instanceOutputValue, que representa la parte del resultado de la predicción para la que corresponden las atribuciones de atributos y un baselineOutputValue, que representa cuál sería la parte del resultado de la predicción si la predicción se realizara en un modelo de referencia de entrada y no en la instancia de entrada real.

Si la diferencia entre instanceOutputValue y baselineOutputValue es menor que 0.05 para cualquiera de las atribuciones, es posible que debas cambiar tus modelos de referencia de entrada.

Ajusta la configuración

En las siguientes secciones, se describen las maneras de ajustar la configuración de Vertex Explainable AI para reducir el error. Para realizar alguno de los siguientes cambios, debes configurar un nuevo recurso Model con una ExplanationSpec actualizada oanular la ExplanationSpec de tu Model actual mediante su nueva implementación en un recurso Endpoint o la obtención de predicciones por lotes nuevas.

Aumenta pasos o rutas

Para reducir el error de aproximación, puedes aumentar lo siguiente:

Ajusta los modelos de referencia

Los modelos de referencia de entrada representan un atributo que no proporciona información adicional. Los modelos de referencia para modelos tabulares pueden ser valores medios, mínimos, máximos o aleatorios en relación con tus datos de entrenamiento. De manera similar, para los modelos de imagen, tus modelos de referencia pueden ser una imagen negra, una imagen blanca, una imagen gris o una imagen con valores aleatorios de píxeles.

Cuando configuras Explainable AI de Vertex, puedes especificar de forma opcional el campo input_baselines. De lo contrario, Vertex AI elige modelos de referencia de entrada por ti. Si encuentras los problemas descritos en las secciones anteriores de esta guía, es posible que desees ajustar el input_baselines para cada entrada de tu Model.

En general, debes hacer lo siguiente:

  • Comienza con un modelo de referencia que represente valores medios.
  • Cambia este modelo de referencia a uno que represente valores aleatorios.
  • Prueba dos modelos de referencia que representen valores mínimos y máximos.
  • Agrega otro modelo de referencia que represente valores aleatorios.

Ejemplo de datos tabulares

El siguiente código de Python crea un mensaje ExplanationMetadata para un modelo entrenado de TensorFlow hipotético en los datos tabulares.

Ten en cuenta que input_baselines es una lista en la que puedes especificar varios modelos de referencia. En este ejemplo, se establece un solo modelo de referencia. El modelo de referencia es una lista de valores medios para los datos de entrenamiento (en este ejemplo, train_data).

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "input_baselines": [train_data.median().values.tolist()],
            "encoding": "bag_of_features",
            "index_feature_mapping": train_data.columns.tolist()
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Consulta Configura explicaciones para modelos de entrenamiento personalizado a fin de obtener más contexto sobre cómo usar ExplanationMetadata

Para establecer dos modelos de referencia que representen valores mínimos y máximos, configura input_baselines de la siguiente manera: [train_data.min().values.tolist(), train_data.max().values.tolist()]

Ejemplo de datos de imágenes

El siguiente código de Python crea un mensaje ExplanationMetadata para un modelo entrenado hipotético de TensorFlow en los datos de imagen.

Ten en cuenta que input_baselines es una lista en la que puedes especificar varios modelos de referencia. En este ejemplo, se establece un solo modelo de referencia. El modelo de referencia es una lista de valores aleatorios. Usar valores aleatorios en un modelo de referencia de imagen es una buena estrategia si las imágenes del conjunto de datos de entrenamiento contienen mucho blanco y negro.

De lo contrario, establece input_baselines en [0, 1] para representar las imágenes en blanco y negro.

random_baseline = np.random.rand(192,192,3)

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "modality": "image",
            "input_baselines": [random_baseline.tolist()]
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

¿Qué sigue?

  • Sigue la guía para configurar explicaciones a fin de implementar los cambios de configuración que se describen en esta página.