Para usar a Vertex AI explicável com um modelo preparado de forma personalizada, tem de configurar determinadas opções quando cria o recurso Model
do qual planeia pedir explicações, quando implementa o modelo ou quando envia uma tarefa de explicação em lote. Esta página descreve a configuração destas opções.
Se quiser usar o Vertex Explainable AI com um modelo tabular do AutoML, não precisa de fazer nenhuma configuração. O Vertex AI configura automaticamente o modelo para o Vertex Explainable AI. Ignorar este documento e ler o artigo Receber explicações.
Quando e onde configurar as explicações
Configura as explicações quando cria ou importa um modelo. Também pode configurar explicações num modelo que já criou, mesmo que não o tenha feito anteriormente.
Configure explicações quando cria ou importa modelos
Quando cria ou importa um Model
, pode definir uma configuração predefinida para todas as respetivas explicações através do campo explanationSpec
do Model
.
Pode criar um Model
preparado de forma personalizada no Vertex AI das seguintes formas:
- Importe ou registe um
Model
no Registo de modelos do Vertex AI - Crie um recurso
TrainingPipeline
personalizado que importe umModel
. - Crie um modelo do BigQuery ML e especifique a definição
model_registry
opcional na sintaxeCREATE MODEL
. Esta definição regista automaticamente o modelo no Registo de modelos da Vertex AI e configura o respetivoexplanationSpec
.
Em qualquer dos casos, pode configurar o Model
para suportar a IA explicável do Vertex. Os exemplos neste documento pressupõem que está a importar um ficheiro Model
. Para configurar o Vertex AI explicável quando cria um Model
preparado de forma personalizada
com um TrainingPipeline
, use as definições de configuração descritas neste
documento no campo modelToUpload
do TrainingPipeline
.
Configure explicações ao implementar modelos ou obter inferências em lote
Quando
implementa um Model
num recurso Endpoint
, pode:
- Configurar explicações, independentemente de o modelo ter sido configurado anteriormente para explicações. Isto é útil se não planeou originalmente receber explicações (e omitiu o campo
explanationSpec
quando criou o modelo), mas decidiu mais tarde que quer explicações para o modelo ou se quiser substituir algumas das definições de explicação. - Desative as explicações. Isto é útil se o seu modelo estiver configurado para explicações, mas não planeia receber explicações do ponto final. Para desativar as explicações quando implementar o modelo num ponto final, desmarque as opções de interpretabilidade na Cloud Console ou defina
DeployedModel.disableExplanations
comotrue
.
Da mesma forma, quando obtém inferências em lote a partir de um
Model
, pode configurar explicações preenchendo o campo BatchPredictionJob.explanationSpec
ou desativar as explicações definindo BatchPredictionJob.generateExplanation
como
false
.
Substitua a configuração quando receber explicações online
Independentemente de ter criado ou importado as definições Model
com explicação e de ter configurado as definições de explicação durante a implementação, pode substituir as definições de explicação iniciais do Model
quando obtém explicações online.
Quando envia um pedido explain
para o Vertex AI, pode substituir algumas das configurações de explicação que definiu anteriormente para o Model
ou o DeployedModel
.
Na solicitação explain
, pode substituir os seguintes campos:
- Bases de entrada para qualquer modelo preparado de forma personalizada
- Configuração de visualização para modelos de imagens
ExplanationParameters
exceto para omethod
Substitua estas definições no campo explanationSpecOverride do pedido de explicação.
Importe um modelo com um campo explanationSpec
Consoante sirva inferências com um contentor
pré-criado ou um contentor
personalizado, especifique detalhes ligeiramente
diferentes para o ExplanationSpec
. Selecione o separador que corresponde ao contentor que está a usar:
Contentor pré-criado do TensorFlow
Pode usar qualquer um dos seguintes métodos de atribuição para o Vertex Explainable AI. Leia a
comparação dos métodos de atribuição de funcionalidades para selecionar o adequado para
o seu Model
:
Shapley com amostragem
Consoante a ferramenta que quer usar para criar ou importar o Model
, selecione
um dos seguintes separadores:
Consola
Siga o guia para importar um modelo através da Google Cloud consola. Quando chegar ao passo Explicabilidade, faça o seguinte:
Para o método de atribuição de funcionalidades, selecione Shapely com amostragem (para modelos tabulares).
Defina a contagem de caminhos para o número de permutações de caraterísticas a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
.Configure cada funcionalidade de entrada no seu modelo:
-
Preencha o nome da funcionalidade de entrada.
-
Opcionalmente, pode adicionar uma ou mais referências de entrada. Caso contrário, a Vertex Explainable AI escolhe uma base de referência de entrada predefinida de valores zero, que é uma imagem preta para dados de imagem.
-
Se estiver a importar um modelo do TensorFlow, existem campos de entrada adicionais:
Preencha o nome do tensor de entrada.
Se aplicável, preencha o Nome do tensor de índices e/ou o Nome do tensor de forma densa.
Não é possível atualizar a modalidade aqui. É definida automaticamente como
NUMERIC
para modelos tabulares ouIMAGE
para modelos de imagens.Se aplicável, defina o campo Codificação. A predefinição é
IDENTITY
em caso de não definição.Se aplicável, defina o campo Nome do grupo.
-
Se estiver a importar um modelo do TensorFlow, especifique os campos de saída:
- Defina o Nome de saída da sua funcionalidade.
- Defina o nome do tensor de saída da sua caraterística.
- Se aplicável, defina o mapeamento do nome a apresentar do índice.
- Se aplicável, defina a chave de mapeamento do nome a apresentar.
Clique no botão Importar quando terminar de configurar as definições de explicabilidade.
gcloud
Para o TensorFlow 2, o
ExplanationMetadata
é opcional.Escreva o seguinte
ExplanationMetadata
num ficheiro JSON no seu ambiente local. O nome do ficheiro não é importante, mas, para este exemplo, atribua o nomeexplanation-metadata.json
ao ficheiro:explanation-metadata.json
{ "inputs": { "FEATURE_NAME": { "inputTensorName": "INPUT_TENSOR_NAME", } }, "outputs": { "OUTPUT_NAME": { "outputTensorName": "OUTPUT_TENSOR_NAME" } } }
Substitua o seguinte:
- FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- INPUT_TENSOR_NAME: o nome do tensor de entrada no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
- OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
- OUTPUT_TENSOR_NAME: o nome do tensor de saída no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento
ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para oModel
.Execute o seguinte comando para criar um recurso
Model
que suporte a IA explicável do Vertex. As flags mais pertinentes para a Vertex Explainable AI estão realçadas.gcloud ai models upload \ --region=LOCATION \ --display-name=MODEL_NAME \ --container-image-uri=IMAGE_URI \ --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \ --explanation-method=sampled-shapley \ --explanation-path-count=PATH_COUNT \ --explanation-metadata-file=explanation-metadata.json
Substitua o seguinte:
- IMAGE_URI: o URI de um contentor pré-criado do TensorFlow para publicar previsões.
-
PATH_COUNT: o número de permutações de características a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- IMAGE_URI: o URI de um contentor pré-criado do TensorFlow para publicar previsões.
-
PATH_COUNT: o número de permutações de características a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
. - FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- INPUT_TENSOR_NAME: o nome do tensor de entrada no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
- OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
- OUTPUT_TENSOR_NAME: o nome do tensor de saída no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para o Model
.
Para modelos do TensorFlow 2, o campo metadata
é opcional. Se forem omitidos, o Vertex AI infere automaticamente os valores inputs
e outputs
do modelo.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload
Corpo JSON do pedido:
{ "model": { "displayName": "MODEL_NAME", "containerSpec": { "imageUri": "IMAGE_URI" }, "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY", "explanationSpec": { "parameters": { "sampledShapleyAttribution": { "pathCount": PATH_COUNT } }, "metadata": { "inputs": { "FEATURE_NAME": { "inputTensorName": "INPUT_TENSOR_NAME", } }, "outputs": { "OUTPUT_NAME": { "outputTensorName": "OUTPUT_TENSOR_NAME" } } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content
Gradientes integrados
Consoante a ferramenta que quer usar para criar ou importar o Model
, selecione
um dos seguintes separadores:
Consola
Siga o guia para importar um modelo através da Google Cloud consola. Quando chegar ao passo Explicabilidade, faça o seguinte:
Para o método de atribuição de funcionalidades, selecione Gradientes integrados (para modelos tabulares) ou Gradientes integrados (para modelos de classificação de imagens), consoante o que for mais adequado para o seu modelo.
Se estiver a importar um modelo de classificação de imagens, faça o seguinte:
Defina o Tipo de visualização e o Mapa de cores.
Pode deixar as opções Clipe abaixo, Clipe acima, Tipo de sobreposição e Número de passos integrais nas respetivas definições predefinidas.
Saiba mais acerca das definições de visualização.
Defina o número de passos a usar para aproximar a integral de caminho durante a atribuição de funcionalidades. Tem de ser um número inteiro no intervalo
[1, 100]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
50
.Configure cada funcionalidade de entrada no seu modelo:
-
Preencha o nome da funcionalidade de entrada.
-
Opcionalmente, pode adicionar uma ou mais referências de entrada. Caso contrário, a Vertex Explainable AI escolhe uma base de referência de entrada predefinida de valores zero, que é uma imagem preta para dados de imagem.
-
Se estiver a importar um modelo do TensorFlow, existem campos de entrada adicionais:
Preencha o nome do tensor de entrada.
Se aplicável, preencha o Nome do tensor de índices e/ou o Nome do tensor de forma densa.
Não é possível atualizar a modalidade aqui. É definida automaticamente como
NUMERIC
para modelos tabulares ouIMAGE
para modelos de imagens.Se aplicável, defina o campo Codificação. A predefinição é
IDENTITY
em caso de não definição.Se aplicável, defina o campo Nome do grupo.
-
Se estiver a importar um modelo do TensorFlow, especifique os campos de saída:
- Defina o Nome de saída da sua funcionalidade.
- Defina o nome do tensor de saída da sua caraterística.
- Se aplicável, defina o mapeamento do nome a apresentar do índice.
- Se aplicável, defina a chave de mapeamento do nome a apresentar.
Clique no botão Importar quando terminar de configurar as definições de explicabilidade.
gcloud
Para o TensorFlow 2, o
ExplanationMetadata
é opcional.Escreva o seguinte
ExplanationMetadata
num ficheiro JSON no seu ambiente local. O nome do ficheiro não é importante, mas, para este exemplo, atribua o nomeexplanation-metadata.json
ao ficheiro:explanation-metadata.json
{ "inputs": { "FEATURE_NAME": { "inputTensorName": "INPUT_TENSOR_NAME", "modality": "MODALITY", "visualization": VISUALIZATION_SETTINGS } }, "outputs": { "OUTPUT_NAME": { "outputTensorName": "OUTPUT_TENSOR_NAME" } } }
Substitua o seguinte:
- FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- INPUT_TENSOR_NAME: o nome do tensor de entrada no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
-
MODALITY:
image
se oModel
aceitar imagens como entrada ounumeric
se oModel
aceitar dados tabulares como entrada. A predefinição énumeric
. -
VIZUALIZATION_OPTIONS: opções para visualizar explicações. Para saber como preencher este campo, leia o artigo Configurar as definições de visualização para dados de imagens.
Se omitir o campo
modality
ou definir o campomodality
comonumeric
, então omita o campovisualization
por completo. - OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
- OUTPUT_TENSOR_NAME: o nome do tensor de saída no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento
ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para oModel
.Execute o seguinte comando para criar um recurso
Model
que suporte a IA explicável do Vertex. As flags mais pertinentes para a Vertex Explainable AI estão realçadas.gcloud ai models upload \ --region=LOCATION \ --display-name=MODEL_NAME \ --container-image-uri=IMAGE_URI \ --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \ --explanation-method=integrated-gradients \ --explanation-step-count=STEP_COUNT \ --explanation-metadata-file=explanation-metadata.json
Substitua o seguinte:
- IMAGE_URI: o URI de um contentor pré-criado do TensorFlow para publicar previsões.
-
STEP_COUNT: o número de passos a usar para aproximar o integral do caminho durante a atribuição de caraterísticas. Tem de ser um número inteiro no intervalo
[1, 100]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
50
.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.Opcionalmente, pode adicionar flags para configurar a aproximação SmoothGrad dos gradientes.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- IMAGE_URI: o URI de um contentor pré-criado do TensorFlow para publicar previsões.
-
STEP_COUNT: o número de passos a usar para aproximar o integral do caminho durante a atribuição de caraterísticas. Tem de ser um número inteiro no intervalo
[1, 100]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
50
. - FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- INPUT_TENSOR_NAME: o nome do tensor de entrada no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
-
MODALITY:
image
se oModel
aceitar imagens como entrada ounumeric
se oModel
aceitar dados tabulares como entrada. A predefinição énumeric
. -
VIZUALIZATION_OPTIONS: opções para visualizar explicações. Para saber como preencher este campo, leia o artigo Configurar as definições de visualização para dados de imagens.
Se omitir o campo
modality
ou definir o campomodality
comonumeric
, então omita o campovisualization
por completo. - OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
- OUTPUT_TENSOR_NAME: o nome do tensor de saída no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para o Model
.
Opcionalmente, pode adicionar campos para configurar a aproximação SmoothGrad dos
gradientes ao
ExplanationParameters
.
Para modelos do TensorFlow 2, o campo metadata
é opcional. Se forem omitidos, o Vertex AI infere automaticamente os valores inputs
e outputs
do modelo.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload
Corpo JSON do pedido:
{ "model": { "displayName": "MODEL_NAME", "containerSpec": { "imageUri": "IMAGE_URI" }, "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY", "explanationSpec": { "parameters": { "integratedGradientsAttribution": { "stepCount": STEP_COUNT } }, "metadata": { "inputs": { "FEATURE_NAME": { "inputTensorName": "INPUT_TENSOR_NAME", "modality": "MODALITY", "visualization": VISUALIZATION_SETTINGS } }, "outputs": { "OUTPUT_NAME": { "outputTensorName": "OUTPUT_TENSOR_NAME" } } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content
XRAI
Consoante a ferramenta que quer usar para criar ou importar o Model
, selecione
um dos seguintes separadores:
Consola
Siga o guia para importar um modelo através da Google Cloud consola. Quando chegar ao passo Explicabilidade, faça o seguinte:
Para o método de atribuição de funcionalidades, selecione XRAI (para modelos de classificação de imagens).
Defina as seguintes opções de visualização:
Defina o Mapa de cores.
Pode deixar as opções Clipe abaixo, Clipe acima, Tipo de sobreposição e Número de passos integrais nas respetivas definições predefinidas.
Saiba mais acerca das definições de visualização.
Defina o número de passos a usar para aproximar a integral de caminho durante a atribuição de funcionalidades. Tem de ser um número inteiro no intervalo
[1, 100]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
50
.Configure cada funcionalidade de entrada no seu modelo:
-
Preencha o nome da funcionalidade de entrada.
-
Opcionalmente, pode adicionar uma ou mais referências de entrada. Caso contrário, a Vertex Explainable AI escolhe uma base de referência de entrada predefinida de valores zero, que é uma imagem preta para dados de imagem.
-
Se estiver a importar um modelo do TensorFlow, existem campos de entrada adicionais:
Preencha o nome do tensor de entrada.
Se aplicável, preencha o Nome do tensor de índices e/ou o Nome do tensor de forma densa.
Não é possível atualizar a modalidade aqui. É definida automaticamente como
NUMERIC
para modelos tabulares ouIMAGE
para modelos de imagens.Se aplicável, defina o campo Codificação. A predefinição é
IDENTITY
em caso de não definição.Se aplicável, defina o campo Nome do grupo.
-
Se estiver a importar um modelo do TensorFlow, especifique os campos de saída:
- Defina o Nome de saída da sua funcionalidade.
- Defina o nome do tensor de saída da sua caraterística.
- Se aplicável, defina o mapeamento do nome a apresentar do índice.
- Se aplicável, defina a chave de mapeamento do nome a apresentar.
Clique no botão Importar quando terminar de configurar as definições de explicabilidade.
gcloud
Para o TensorFlow 2, o
ExplanationMetadata
é opcional.Escreva o seguinte
ExplanationMetadata
num ficheiro JSON no seu ambiente local. O nome do ficheiro não é importante, mas, para este exemplo, atribua o nomeexplanation-metadata.json
ao ficheiro:explanation-metadata.json
{ "inputs": { "FEATURE_NAME": { "inputTensorName": "INPUT_TENSOR_NAME", "modality": "image", "visualization": VISUALIZATION_SETTINGS } }, "outputs": { "OUTPUT_NAME": { "outputTensorName": "OUTPUT_TENSOR_NAME" } } }
Substitua o seguinte:
- FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- INPUT_TENSOR_NAME: o nome do tensor de entrada no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
- VIZUALIZATION_OPTIONS: opções para visualizar explicações. Para saber como preencher este campo, leia o artigo Configurar as definições de visualização para dados de imagens.
- OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
- OUTPUT_TENSOR_NAME: o nome do tensor de saída no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento
ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para oModel
.Execute o seguinte comando para criar um recurso
Model
que suporte a IA explicável do Vertex. As flags mais pertinentes para a Vertex Explainable AI estão realçadas.gcloud ai models upload \ --region=LOCATION \ --display-name=MODEL_NAME \ --container-image-uri=IMAGE_URI \ --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \ --explanation-method=xrai \ --explanation-step-count=STEP_COUNT \ --explanation-metadata-file=explanation-metadata.json
Substitua o seguinte:
- IMAGE_URI: o URI de um contentor pré-criado do TensorFlow para publicar previsões.
-
STEP_COUNT: o número de passos a usar para aproximar o integral do caminho durante a atribuição de caraterísticas. Tem de ser um número inteiro no intervalo
[1, 100]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
50
.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.Opcionalmente, pode adicionar flags para configurar a aproximação SmoothGrad dos gradientes.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- IMAGE_URI: o URI de um contentor pré-criado do TensorFlow para publicar previsões.
-
STEP_COUNT: o número de passos a usar para aproximar o integral do caminho durante a atribuição de caraterísticas. Tem de ser um número inteiro no intervalo
[1, 100]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
50
. - FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- INPUT_TENSOR_NAME: o nome do tensor de entrada no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
- VIZUALIZATION_OPTIONS: opções para visualizar explicações. Para saber como preencher este campo, leia o artigo Configurar as definições de visualização para dados de imagens.
- OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
- OUTPUT_TENSOR_NAME: o nome do tensor de saída no TensorFlow. Para encontrar o valor correto para este campo, leia o artigo Usar o TensorFlow com a IA explicável do Vertex.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para o Model
.
Opcionalmente, pode adicionar campos para configurar a aproximação SmoothGrad dos
gradientes ao
ExplanationParameters
.
Para modelos do TensorFlow 2, o campo metadata
é opcional. Se forem omitidos, o Vertex AI infere automaticamente os valores inputs
e outputs
do modelo.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload
Corpo JSON do pedido:
{ "model": { "displayName": "MODEL_NAME", "containerSpec": { "imageUri": "IMAGE_URI" }, "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY", "explanationSpec": { "parameters": { "xraiAttribution": { "stepCount": STEP_COUNT } }, "metadata": { "inputs": { "FEATURE_NAME": { "inputTensorName": "INPUT_TENSOR_NAME", "modality": "image", "visualization": VISUALIZATION_SETTINGS } }, "outputs": { "OUTPUT_NAME": { "outputTensorName": "OUTPUT_TENSOR_NAME" } } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content
Contentores pré-criados do scikit-learn e XGBoost
Se o seu Model
aceitar dados tabulares como entrada e fornecer previsões através de um
contentor pré-criado do scikit-learn ou XGBoost para
previsão, pode configurá-lo
para usar o método de atribuição de Shapley com amostragem para explicações.
Consoante a ferramenta que quer usar para criar ou importar o Model
, selecione
um dos seguintes separadores:
Consola
Siga o guia para importar um modelo através da Google Cloud consola. Quando chegar ao passo Explicabilidade, faça o seguinte:
Para o método de atribuição de funcionalidades, selecione Shapely com amostragem (para modelos tabulares).
Defina a contagem de caminhos para o número de permutações de caraterísticas a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
.Configure cada funcionalidade de entrada no seu modelo:
Preencha o nome da funcionalidade de entrada.
Se os artefactos do modelo não incluírem nomes de funcionalidades, o Vertex AI não consegue mapear os nomes das funcionalidades de entrada especificados para o modelo. Nesse caso, deve fornecer apenas uma funcionalidade de entrada com qualquer nome arbitrário e fácil de usar, como
input_features
. Na resposta de explicação, recebe uma lista de atribuições de N dimensões, em que N é o número de caraterísticas no modelo e os elementos na lista aparecem pela mesma ordem que no conjunto de dados de preparação.Opcionalmente, pode adicionar uma ou mais referências de entrada. Caso contrário, a Vertex Explainable AI escolhe uma base de referência de entrada predefinida de valores zero, que é uma imagem preta para dados de imagem.
Defina o Nome de saída da sua funcionalidade.
Clique no botão Importar quando terminar de configurar as definições de explicabilidade.
gcloud
Escreva o seguinte
ExplanationMetadata
num ficheiro JSON no seu ambiente local. O nome do ficheiro não é importante, mas, para este exemplo, atribua o nomeexplanation-metadata.json
ao ficheiro:explanation-metadata.json
{ "inputs": { "FEATURE_NAME": { } }, "outputs": { "OUTPUT_NAME": { } } }
Substitua o seguinte:
- FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
Se especificar input baselines, certifique-se de que correspondem à entrada do seu modelo, normalmente uma lista de matrizes 2D. Caso contrário, o valor predefinido para a base de referência de entrada é uma matriz 2D de valor 0 da forma de entrada.
Execute o seguinte comando para criar um recurso
Model
que suporte a IA explicável do Vertex. As flags mais pertinentes para a Vertex Explainable AI estão realçadas.gcloud ai models upload \ --region=LOCATION \ --display-name=MODEL_NAME \ --container-image-uri=IMAGE_URI \ --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \ --explanation-method=sampled-shapley \ --explanation-path-count=PATH_COUNT \ --explanation-metadata-file=explanation-metadata.json
Substitua o seguinte:
- IMAGE_URI: o URI de um contentor pré-criado para publicar previsões.
-
PATH_COUNT: o número de permutações de características a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- IMAGE_URI: o URI de um contentor pré-criado para publicar previsões.
-
PATH_COUNT: o número de permutações de características a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
. - FEATURE_NAME: qualquer nome memorável para a sua funcionalidade de entrada.
- OUTPUT_NAME: qualquer nome memorável para o resultado do seu modelo.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
Se especificar input baselines, certifique-se de que correspondem à entrada do seu modelo, normalmente uma lista de matrizes 2D. Caso contrário, o valor predefinido para a base de referência de entrada é uma matriz 2D de valor 0 da forma de entrada.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload
Corpo JSON do pedido:
{ "model": { "displayName": "MODEL_NAME", "containerSpec": { "imageUri": "IMAGE_URI" }, "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY", "explanationSpec": { "parameters": { "sampledShapleyAttribution": { "pathCount": PATH_COUNT } }, "metadata": { "inputs": { "FEATURE_NAME": { } }, "outputs": { "OUTPUT_NAME": { } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content
Contentor personalizado
Se o seu Model
aceitar dados tabulares como entrada e publicar previsões através de um contentor personalizado, pode configurá-lo para usar o método de atribuição de Shapley com amostragem para explicações.
Determinar os nomes das funcionalidades e dos resultados
Nos passos seguintes, tem de fornecer ao Vertex AI os nomes das funcionalidades que o Model
espera como entrada. Também tem de especificar a chave usada para as saídas nas previsões do Model
.
Determinar nomes de funcionalidades
Se o seu Model
esperar que cada instância de entrada tenha determinadas chaves de nível superior, essas chaves são os nomes das suas funcionalidades.
Por exemplo, considere um Model
que espera que cada instância de entrada tenha o seguinte formato:
{
"length": <value>,
"width": <value>
}
Neste caso, os nomes das funcionalidades são length
e width
. Mesmo que os valores destes campos contenham listas ou objetos aninhados, length
e width
são as únicas chaves necessárias para os passos seguintes. Quando pede explicações, a Vertex AI Explainable AI fornece atribuições para cada elemento aninhado das suas caraterísticas.
Se o seu Model
esperar uma entrada sem chave, o Vertex Explainable AI considera que o Model
tem uma única funcionalidade. Pode usar qualquer string memorável para o nome da funcionalidade.
Por exemplo, considere um Model
que espera que cada instância de entrada tenha o seguinte formato:
[
<value>,
<value>
]
Neste caso, forneça ao Vertex Explainable AI um único nome de funcionalidade à sua escolha, como dimensions
.
Determinar o nome do resultado
Se os seus Model
retornos de cada instância de previsão online com saída com chave, essa chave é o nome da saída.
Por exemplo, considere um Model
que devolve cada previsão no seguinte formato:
{
"scores": <value>
}
Neste caso, o nome da saída é scores
. Se o valor do campo scores
for uma matriz, quando obtiver explicações, o Vertex Explainable AI devolve atribuições de caraterísticas para o elemento com o valor mais elevado em cada previsão. Para configurar a IA explicável do Vertex para fornecer atribuições de caraterísticas para elementos adicionais do campo de saída, pode especificar os campos topK
ou outputIndices
de ExplanationParameters
.
No entanto, os exemplos neste documento não demonstram estas opções.
Se o seu Model
devolver previsões sem chave, pode usar qualquer string memorável para o nome de saída. Por exemplo, isto aplica-se se a função Model
retornar
uma matriz ou um escalar para cada previsão.
A criar o Model
Consoante a ferramenta que quer usar para criar ou importar o Model
, selecione
um dos seguintes separadores:
Consola
Siga o guia para importar um modelo através da Google Cloud consola. Quando chegar ao passo Explicabilidade, faça o seguinte:
Para o método de atribuição de funcionalidades, selecione Shapely com amostragem (para modelos tabulares).
Defina a contagem de caminhos para o número de permutações de caraterísticas a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
.Configure cada funcionalidade de entrada no seu modelo:
Preencha o nome da funcionalidade de entrada.
Se os artefactos do modelo não incluírem nomes de funcionalidades, o Vertex AI não consegue mapear os nomes das funcionalidades de entrada especificados para o modelo. Nesse caso, deve fornecer apenas uma funcionalidade de entrada com qualquer nome arbitrário e fácil de usar, como
input_features
. Na resposta de explicação, recebe uma lista de atribuições de N dimensões, em que N é o número de caraterísticas no modelo e os elementos na lista aparecem pela mesma ordem que no conjunto de dados de preparação.Opcionalmente, pode adicionar uma ou mais referências de entrada. Caso contrário, a Vertex Explainable AI escolhe uma base de referência de entrada predefinida de valores zero, que é uma imagem preta para dados de imagem.
Defina o Nome de saída da sua funcionalidade.
Clique no botão Importar quando terminar de configurar as definições de explicabilidade.
gcloud
Escreva o seguinte
ExplanationMetadata
num ficheiro JSON no seu ambiente local. O nome do ficheiro não é importante, mas, para este exemplo, atribua o nomeexplanation-metadata.json
ao ficheiro:explanation-metadata.json
{ "inputs": { "FEATURE_NAME": {} }, "outputs": { "OUTPUT_NAME": {} } }
Substitua o seguinte:
- FEATURE_NAME: o nome da funcionalidade, conforme descrito na secção "Determinar nomes de funcionalidades" deste documento.
- OUTPUT_NAME: o nome da saída, conforme descrito na secção "Determinar o nome da saída" deste documento.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento
ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para oModel
.Se especificar input baselines, certifique-se de que correspondem à entrada do seu modelo, normalmente uma lista de matrizes 2D. Caso contrário, o valor predefinido para a base de referência de entrada é uma matriz 2D de valor 0 da forma de entrada.
Execute o seguinte comando para criar um recurso
Model
que suporte a IA explicável do Vertex. As flags mais pertinentes para a Vertex Explainable AI estão realçadas.gcloud ai models upload \ --region=LOCATION \ --display-name=MODEL_NAME \ --container-image-uri=IMAGE_URI \ --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \ --explanation-method=sampled-shapley \ --explanation-path-count=PATH_COUNT \ --explanation-metadata-file=explanation-metadata.json
Substitua o seguinte:
-
PATH_COUNT: o número de permutações de características a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.-
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
PATH_COUNT: o número de permutações de características a usar para o método de atribuição de Shapley com amostragem. Tem de ser um número inteiro no intervalo
[1, 50]
.Um valor mais elevado pode reduzir o erro de aproximação, mas é mais intensivo em termos de computação. Se não souber que valor usar, experimente
25
. - FEATURE_NAME: o nome da funcionalidade, conforme descrito na secção "Determinar nomes de funcionalidades" deste documento.
- OUTPUT_NAME: o nome da saída, conforme descrito na secção "Determinar o nome da saída" deste documento.
Para saber mais sobre os valores adequados para os outros marcadores de posição, consulte
upload
e Importar modelos.
Opcionalmente, pode adicionar linhas de base de entrada ao elemento ExplanationMetadata
. Caso contrário, o Vertex AI escolhe as bases de referência de entrada para o Model
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload
Corpo JSON do pedido:
{ "model": { "displayName": "MODEL_NAME", "containerSpec": { "imageUri": "IMAGE_URI" }, "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY", "explanationSpec": { "parameters": { "sampledShapleyAttribution": { "pathCount": PATH_COUNT } }, "metadata": { "inputs": { "FEATURE_NAME": {} }, "outputs": { "OUTPUT_NAME": {} } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content