Ver as explicações

Neste guia, descrevemos como receber explicações de um recurso Model na Vertex AI. Há duas maneiras de ter acesso às explicações:

  • Explicação on-line: solicitações síncronas à API Vertex AI, semelhante às previsões on-line que retornam previsões com atribuições de recursos.

  • Explicação em lote: solicitações assíncronas à API Vertex AI que retornam previsões com atribuições de recursos. As explicações em lote são uma parte opcional das solicitações de previsão em lote.

Antes de começar

Antes de ver as explicações, faça o seguinte:

  1. Esta etapa tem diferenças dependendo do tipo de modelo de machine learning usado:

  2. Se você quiser receber explicações on-line, implante o Model criado na etapa anterior em um recurso Endpoint.

Ver explicações on-line

Para explicações on-line, siga a maioria das etapas que você usaria para receber previsões on-line. No entanto, em vez de enviar uma solicitação projects.locations.endpoints.predict à API Vertex AI, envie uma solicitação projects.locations.endpoints.explain.

Os guias a seguir fornecem instruções detalhadas para preparar e enviar solicitações de explicação on-line:

Receber explicações em lote

Somente explicações em lote com base em recursos são suportadas. Não é possível receber explicações em lote com base em exemplos.

Para explicações em lote, defina o campo generateExplanation como true ao criar um job de previsão em lote.

Para instruções detalhadas sobre como preparar e criar jobs de previsão em lote, leia Como conseguir previsões em lote.

Receba explicações localmente sobre os notebooks gerenciados pelo usuário do Vertex AI Workbench

Nos notebooks gerenciados pelo usuário do Vertex AI Workbench, é possível gerar explicações para seu modelo treinado e personalizado executando o Vertex Explainable AI no kernel local ou no ambiente de execução do seu notebook sem implantar o modelo na Vertex AI para conferir explicações. Com o uso de explicações locais, é possível testar diferentes configurações da Vertex Explainable AI sem ajustar a implantação do modelo do Vertex AI para cada alteração. Isso facilita e agiliza a avaliação do impacto do uso de valores de referência diferentes, tentando diferentes configurações de visualização para suas explicações ou ajustando o número de etapas ou caminhos usados para o algoritmo.

As explicações locais estão disponíveis apenas dentro de notebooks gerenciados pelo usuário. Portanto, esse recurso não funciona em notebooks do Jupyter executados fora de uma instância de notebooks gerenciados pelo usuário.

Para gerar explicações localmente em uma instância de notebooks gerenciada pelo usuário:

  • Criar uma instância de notebooks gerenciados pelo usuário
  • Inicie o ambiente do JupyterLab na instância de notebooks gerenciada pelo usuário e crie ou importe um notebook.
  • Salve o artefato do modelo no ambiente local do notebook ou em um bucket do Cloud Storage.
  • Gere e salve metadados para descrever seu modelo e configurar sua solicitação de explicação.

Usar o SDK do Explainable AI em notebooks gerenciados pelo usuário

O SDK do Explainable AI é pré-instalado nas instâncias de notebooks gerenciados pelo usuário. No seu notebook, é possível usar o SDK do Explainable AI para salvar o artefato do modelo e identificar automaticamente os metadados sobre as entradas e saídas do modelo para a solicitação de explicação. Também é possível especificar outros parâmetros para configurar a solicitação de explicação e visualizar os resultados.

É possível salvar modelos e metadados no ambiente local do notebook ou em um bucket do Cloud Storage. Se você estiver usando o TensorFlow, poderá usar o método save_model_with_metadata() para inferir entradas e saídas do modelo e salvar esses metadados de explicação com o modelo.

Em seguida, carregue o modelo no SDK do Explainable AI usando load_model_from_local_path(). Se necessário, ajuste a configuração para o algoritmo específico do Vertex Explainable AI. Por exemplo, é possível alterar o número de caminhos a serem usados para Sampled Shapley ou o número de etapas a serem usadas em gradientes integrados ou XRAI.

Por fim, chame explain() com instâncias de dados e visualize as atribuições de recursos.

Use o código de exemplo a seguir para ver explicações locais para um modelo do TensorFlow 2 em uma instância de notebooks gerenciados pelo usuário:

# This sample code only works within a user-managed notebooks instance.
import explainable_ai_sdk
from explainable_ai_sdk.metadata.tf.v2 import SavedModelMetadataBuilder

metadata_and_model_builder = SavedModelMetadataBuilder('LOCAL_PATH_TO_MODEL')
metadata_and_model_builder.save_model_with_metadata('LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT')

# Load the model and adjust the configuration for Explainable AI parameters
num_paths = 20
model_artifact_with_metadata = explainable_ai_sdk.load_model_from_local_path(
    'LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT',
    explainable_ai_sdk.SampledShapleyConfig(num_paths))

# Explainable AI supports generating explanations for multiple predictions
instances = [{feature_a: 10, feature_2: 100,...}, ... ]
explanations = model_artifact_with_metadata.explain(instances)
explanations[0].visualize_attributions()

Para mais informações sobre o SDK do Explainable AI, incluindo diferentes configurações e parâmetros, consulte o arquivo config.py do SDK no GitHub. Saiba mais sobre os notebooks gerenciados pelo usuário Vertex AI Workbench.

A seguir