

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar e criar um endpoint
<a name="clarify-online-explainability-create-endpoint"></a>

Crie uma nova configuração de endpoint para se adequar ao seu modelo e use essa configuração para criar o endpoint. Você pode usar o contêiner de modelo validado na [etapa de pré-verificação](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-precheck.html) para criar um endpoint e ativar o recurso de explicabilidade on-line do SageMaker Clarify.

Use o `sagemaker_client` objeto para criar um endpoint usando a [CreateEndpointConfig](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateEndpointConfig.html)API. Defina o membro `ClarifyExplainerConfig` dentro do `ExplainerConfig` parâmetro da seguinte forma:

```
sagemaker_client.create_endpoint_config(
    EndpointConfigName='name-of-your-endpoint-config',
    ExplainerConfig={
        'ClarifyExplainerConfig': {
            'EnableExplanations': '`true`',
            'InferenceConfig': {
                ...
            },
            'ShapConfig': {
                ...
            }
        },
    },
    ProductionVariants=[{
        'VariantName': 'AllTraffic',
        'ModelName': 'name-of-your-model',
        'InitialInstanceCount': 1,
        'InstanceType': 'ml.m5.xlarge',
    }]
     ...
)
sagemaker_client.create_endpoint(
    EndpointName='name-of-your-endpoint',
    EndpointConfigName='name-of-your-endpoint-config'
)
```

A primeira chamada para o objeto `sagemaker_client` cria uma nova configuração de endpoint com o atributo de explicabilidade ativado. A segunda chamada usa a configuração do endpoint para iniciar o endpoint.

**nota**  
Você também pode hospedar vários modelos em um contêiner atrás de um [endpoint multimodelo de inferência em tempo real de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html) e configurar a explicabilidade on-line com o Clarify. SageMaker 

# A expressão `EnableExplanations`
<a name="clarify-online-explainability-create-endpoint-enable"></a>

O `EnableExplanations` parâmetro é uma string de expressão booleana [https://jmespath.org/](https://jmespath.org/). Ele é avaliado para **cada registro** na solicitação de explicabilidade. Se esse parâmetro for avaliado como **verdadeiro**, o registro será explicado. Se esse parâmetro for avaliado **como falso**, as explicações não serão geradas.

SageMaker O Clarify desserializa a saída do contêiner do modelo para cada registro em uma estrutura de dados compatível com JSON e, em seguida, usa o `EnableExplanations` parâmetro para avaliar os dados.

**Observações**  
Há duas opções para registros, dependendo do formato da saída do contêiner do modelo.  
Se a saída do contêiner do modelo estiver no formato CSV, um registro será carregado como uma matriz JSON.
Se a saída do contêiner do modelo estiver no formato JSON Lines, um registro será carregado como um objeto JSON.

O `EnableExplanations` parâmetro é uma JMESPath expressão que pode ser passada durante as `CreateEndpointConfig` operações `InvokeEndpoint` ou. Se a JMESPath expressão que você forneceu não for válida, a criação do endpoint falhará. Se a expressão for válida, mas o resultado da avaliação da expressão for inesperado, o endpoint será criado com sucesso, mas um erro será gerado quando o endpoint for invocado. Teste sua expressão `EnableExplanations` usando a API `InvokeEndpoint` e, em seguida, aplique-a à configuração do endpoint.

A seguir estão alguns exemplos de expressão `EnableExplanations` válida. Nos exemplos, uma JMESPath expressão inclui um literal usando caracteres de crase. Por exemplo, ``true`` significa verdadeiro.


| Expressão (representação de string) | Saída do contêiner do modelo (representação de string) | Resultado da avaliação (booleano) | Significado | 
| --- | --- | --- | --- | 
|  '`true`'  |  (N/D)  |  Verdadeiro  |  Ative a explicabilidade on-line incondicionalmente.  | 
|  '`false`'  |  (N/D)  |  Falso  |  Desative a explicabilidade on-line incondicionalmente.  | 
|  '[1]>`0.5`'  |  '1,0.6'  |  Verdadeiro  |  Para cada registro, o contêiner do modelo gera seu rótulo e probabilidade previstos. Explica um registro se sua probabilidade (no índice 1) for maior que 0,5.  | 
|  'probability>`0.5`'  |  '\$1"predicted\$1label":1,"probability":0.6\$1'  |  Verdadeiro  |  Para cada registro, o contêiner do modelo gera dados JSON. Explique um registro se sua probabilidade for maior que 0,5.  | 
|  '\$1contains(probabilities[:-1], max(probabilities))'  |  '\$1"probabilities": [0.4, 0.1, 0.4], "labels":["gato","cachorro","peixe"]\$1'  |  Falso  |  Para um modelo multiclasse: explica um registro se seu rótulo previsto (a classe que tem o valor máximo de probabilidade) for a última classe. Literalmente, a expressão significa que o valor máximo da probabilidade não está na lista de probabilidades, excluindo a última.  | 

# Conjuntos de dados sintéticos
<a name="clarify-online-explainability-create-endpoint-synthetic"></a>

SageMaker O Clarify usa o algoritmo Kernel SHAP. Com base em um registro (também chamado de amostra ou instância) e na configuração SHAP, o explicador primeiro gera um conjunto de dados sintético. SageMaker Em seguida, o Clarify consulta o contêiner do modelo para obter as previsões do conjunto de dados e, em seguida, computa e retorna as atribuições do recurso. O tamanho do conjunto de dados sintéticos afeta o runtime do explicador Clarify. Conjuntos de dados sintéticos maiores levam mais tempo para obter as predições de modelo do que conjuntos menores.

 O tamanho do conjunto de dados sintéticos é determinado pela seguinte fórmula:

```
Synthetic dataset size = SHAP baseline size * n_samples
```

O tamanho da linha de base do SHAP é o número de registros nos dados da linha de base do SHAP. Essas informações são retiradas do `ShapBaselineConfig`.

O tamanho de `n_samples` é definido pelo parâmetro `NumberOfSamples` na configuração do explicador e pelo número de atributos. Se o número de atributos for `n_features`, então `n_samples` é o seguinte: 

```
n_samples = MIN(NumberOfSamples, 2^n_features - 2)
```

O seguinte mostra `n_samples` se não `NumberOfSamples` é fornecido:

```
n_samples = MIN(2*n_features + 2^11, 2^n_features - 2)
```

Por exemplo, um registro tabular com 10 atributos tem um tamanho de linha de base SHAP de 1. Se não `NumberOfSamples` for fornecido, o conjunto de dados sintético contém 1.022 registros. Se o registro tiver 20 atributos, o conjunto de dados sintético conterá 2.088 registros.

Para problemas de PNL, `n_features` é igual ao número de atributos não textuais mais o número de unidades de texto.

**nota**  
A API `InvokeEndpoint` tem um limite de tempo limite de solicitação. Se o conjunto de dados sintéticos for muito grande, o explicador pode não conseguir concluir o cálculo dentro desse limite. Se necessário, use as informações anteriores para entender e reduzir o tamanho da linha de base do SHAP e `NumberOfSamples`. Se o contêiner do modelo estiver configurado para lidar com solicitações em lote, você também poderá ajustar o valor de `MaxRecordCount`.