

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á.

# Captura de dados
<a name="model-monitor-data-capture"></a>

Para registrar as entradas no seu endpoint e as saídas de inferência do seu modelo implantado no Amazon S3, você pode habilitar um atributo chamado *Captura de dados*. A *Captura de dados* é comumente usada para registrar informações que podem ser usadas para treinamento, depuração e monitoramento. O Amazon SageMaker Model Monitor analisa automaticamente esses dados capturados e compara as métricas desses dados com uma linha de base que você cria para o modelo. Para obter mais informações sobre o Model Monitor, consulte [Monitoramento da qualidade de dados e modelos com o Amazon SageMaker Model Monitor](model-monitor.md).

Você pode implementar o *Data Capture* nos modos de monitoramento de modelos em tempo real e em lote usando o SDK do Python AWS SDK para Python (Boto) ou do Python SageMaker . Para um endpoint em tempo real, você especificará sua configuração de *Captura de dados* ao criar seu endpoint. Devido à natureza persistente do seu endpoint em tempo real, você pode configurar opções adicionais para ativar ou desativar a captura de dados em determinados momentos ou alterar a frequência de amostragem. Você também pode optar por criptografar seus dados de inferência.

Para uma tarefa de transformação de lotes, você pode ativar a *Captura de dados* se quiser executar o monitoramento do modelo dentro da programação ou o monitoramento contínuo do modelo para trabalhos de transformação de lotes regulares e periódicos. Você especificará sua configuração de *Captura de dados* ao criar seu trabalho de transformação de lotes. Nessa configuração, você tem a opção de ativar a criptografia ou gerar o ID de inferência com sua saída, o que ajuda a combinar os dados capturados com os dados do Ground Truth.

# Capturar dados do endpoint em tempo real
<a name="model-monitor-data-capture-endpoint"></a>

**nota**  
Para evitar o impacto nas solicitações de inferência, a Captura de dados interrompe a captura de solicitações em altos níveis de uso do disco. É recomendável que você mantenha a utilização do disco abaixo de 75% para garantir que a captura de dados continue capturando as solicitações.

Para capturar dados para seu endpoint em tempo real, você deve implantar um modelo usando serviços de hospedagem de SageMaker IA. Isso exige que você crie um modelo de SageMaker IA, defina uma configuração de endpoint e crie um endpoint HTTPS.

As etapas necessárias para ativar a captura de dados são semelhantes, independentemente de você usar o SDK do Python AWS SDK para Python (Boto) ou do SageMaker Python. Se você usa o AWS SDK, defina o [DataCaptureConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCaptureConfig.html)dicionário, junto com os campos obrigatórios, dentro do [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)método para ativar a captura de dados. Se você usa o SDK do SageMaker Python, importe a [DataCaptureConfig](https://sagemaker.readthedocs.io/en/stable/api/inference/model_monitor.html#sagemaker.model_monitor.data_capture_config.DataCaptureConfig)classe e inicialize uma instância dessa classe. Em seguida, transmita esse objeto para o parâmetro `DataCaptureConfig` no método `sagemaker.model.Model.deploy()`.

Para usar os trechos de código de processo, substitua o código *italicized placeholder text* no exemplo por suas próprias informações.

## Como habilitar a captura de dados
<a name="model-monitor-data-capture-defing.title"></a>

Especifique uma configuração de captura de dados. É possível capturar a carga útil da solicitação, a carga útil da resposta ou ambas com essa configuração. O trecho de código em andamento demonstra como habilitar a captura de dados usando o SDK AI Python e AWS SDK para Python (Boto) o AI SageMaker Python.

**nota**  
Você não precisa usar o Model Monitor para capturar cargas úteis da solicitação ou da resposta.

------
#### [ AWS SDK para Python (Boto) ]

Configure os dados que você deseja capturar com o [DataCaptureConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCaptureConfig.html)dicionário ao criar um endpoint usando o `CreateEndpointConfig` método. Defina `EnableCapture` como o valor booleano True. Além disso, forneça os seguintes parâmetros obrigatórios:
+ `EndpointConfigName`: nome da configuração do endpoint. Você usará esse nome ao fazer uma solicitação `CreateEndpoint`.
+ `ProductionVariants`: lista dos modelos que você deseja hospedar nesse endpoint. Defina um tipo de dados de dicionário para cada modelo.
+ `DataCaptureConfig`: tipo de dados de dicionário em que você especifica um valor inteiro que corresponde à porcentagem inicial de dados a serem amostrados (`InitialSamplingPercentage`), o URI do Amazon S3 em que você deseja que os dados capturados sejam armazenados e uma lista de opções de captura (`CaptureOptions`). Especifique uma `Input` ou `Output` para o `CaptureMode` dentro da lista `CaptureOptions`. 

Opcionalmente, você pode especificar como a SageMaker IA deve codificar os dados capturados passando argumentos de pares de valores-chave para o dicionário. `CaptureContentTypeHeader`

```
# Create an endpoint config name.
endpoint_config_name = '<endpoint-config-name>'

# The name of the production variant.
variant_name = '<name-of-production-variant>'                   
  
# The name of the model that you want to host. 
# This is the name that you specified when creating the model.
model_name = '<The_name_of_your_model>'

instance_type = '<instance-type>'
#instance_type='ml.m5.xlarge' # Example    

# Number of instances to launch initially.
initial_instance_count = <integer>

# Sampling percentage. Choose an integer value between 0 and 100
initial_sampling_percentage = <integer>                                                                                                                                                                                                                        

# The S3 URI containing the captured data
s3_capture_upload_path = 's3://<bucket-name>/<data_capture_s3_key>'

# Specify either Input, Output, or both
capture_modes = [ "Input",  "Output" ] 
#capture_mode = [ "Input"] # Example - If you want to capture input only
                            
endpoint_config_response = sagemaker_client.create_endpoint_config(
    EndpointConfigName=endpoint_config_name, 
    # List of ProductionVariant objects, one for each model that you want to host at this endpoint.
    ProductionVariants=[
        {
            "VariantName": variant_name, 
            "ModelName": model_name, 
            "InstanceType": instance_type, # Specify the compute instance type.
            "InitialInstanceCount": initial_instance_count # Number of instances to launch initially.
        }
    ],
    DataCaptureConfig= {
        'EnableCapture': True, # Whether data should be captured or not.
        'InitialSamplingPercentage' : initial_sampling_percentage,
        'DestinationS3Uri': s3_capture_upload_path,
        'CaptureOptions': [{"CaptureMode" : capture_mode} for capture_mode in capture_modes] # Example - Use list comprehension to capture both Input and Output
    }
)
```

Para obter mais informações sobre outras opções de configuração de endpoint, consulte a [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)API no [Guia de referência de API do Amazon SageMaker AI Service](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Operations_Amazon_SageMaker_Service.html).

------
#### [ SageMaker Python SDK ]

Importe a classe `DataCaptureConfig` do módulo [sagemaker.model\$1monitor](https://sagemaker.readthedocs.io/en/stable/api/inference/model_monitor.html). Ative a captura de dados configurando `EnableCapture` com o valor booleano `True`.

Opcionalmente, forneça argumentos para os seguintes parâmetros:
+ `SamplingPercentage`: valor inteiro que corresponde à porcentagem de dados da amostra. Se você não fornecer uma porcentagem de amostragem, a SageMaker IA coletará uma amostra padrão de 20 (20%) dos seus dados.
+ `DestinationS3Uri`: o URI do Amazon S3 que a SageMaker IA usará para armazenar dados capturados. Se você não fornecer um, a SageMaker IA armazenará os dados capturados em`"s3://<default-session-bucket>/ model-monitor/data-capture"`.

```
from sagemaker.model_monitor import DataCaptureConfig

# Set to True to enable data capture
enable_capture = True

# Optional - Sampling percentage. Choose an integer value between 0 and 100
sampling_percentage = <int> 
# sampling_percentage = 30 # Example 30%

# Optional - The S3 URI of stored captured-data location
s3_capture_upload_path = 's3://<bucket-name>/<data_capture_s3_key>'

# Specify either Input, Output or both. 
capture_modes = ['REQUEST','RESPONSE'] # In this example, we specify both
# capture_mode = ['REQUEST'] # Example - If you want to only capture input.

# Configuration object passed in when deploying Models to SM endpoints
data_capture_config = DataCaptureConfig(
    enable_capture = enable_capture, 
    sampling_percentage = sampling_percentage, # Optional
    destination_s3_uri = s3_capture_upload_path, # Optional
    capture_options = ["REQUEST", "RESPONSE"],
)
```

------

## Implantar o modelo
<a name="model-monitor-data-capture-deploy"></a>

Implante seu modelo e crie um endpoint HTTPS com `DataCapture` ativado.

------
#### [ AWS SDK para Python (Boto3) ]

Forneça a configuração do endpoint para a SageMaker IA. O serviço inicia as instâncias de cálculo de ML e implanta o modelo ou modelos conforme especificado na configuração.

Depois de ter seu modelo e configuração de endpoint, use a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) para criar seu endpoint. O nome do endpoint deve ser exclusivo em uma AWS região da sua AWS conta. 

O recurso abaixo cria um endpoint usando a configuração de endpoint especificada na solicitação. A Amazon SageMaker AI usa o endpoint para provisionar recursos e implantar modelos.

```
# The name of the endpoint. The name must be unique within an AWS Region in your AWS account.
endpoint_name = '<endpoint-name>' 

# The name of the endpoint configuration associated with this endpoint.
endpoint_config_name='<endpoint-config-name>'

create_endpoint_response = sagemaker_client.create_endpoint(
                                            EndpointName=endpoint_name, 
                                            EndpointConfigName=endpoint_config_name)
```

Para obter mais informações, consulte a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html).

------
#### [ SageMaker Python SDK ]

Definir um nome para o endpoint. Esta etapa é opcional. Se você não fornecer um, a SageMaker IA criará um nome exclusivo para você:

```
from datetime import datetime

endpoint_name = f"DEMO-{datetime.utcnow():%Y-%m-%d-%H%M}"
print("EndpointName =", endpoint_name)
```

Implante seu modelo em um endpoint HTTPS em tempo real com o método `deploy()` integrado do objeto do modelo. Forneça o nome do tipo de instância do Amazon EC2 para implantar esse modelo no campo `instance_type` junto com o número inicial de instâncias nas quais executar o endpoint para o campo `initial_instance_count`:

```
initial_instance_count=<integer>
# initial_instance_count=1 # Example

instance_type='<instance-type>'
# instance_type='ml.m4.xlarge' # Example

# Uncomment if you did not define this variable in the previous step
#data_capture_config = <name-of-data-capture-configuration>

model.deploy(
    initial_instance_count=initial_instance_count,
    instance_type=instance_type,
    endpoint_name=endpoint_name,
    data_capture_config=data_capture_config
)
```

------

## Visualizar os dados capturados
<a name="model-monitor-data-capture-view"></a>

Crie um objeto preditor a partir da classe SageMaker Python [SDK](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html) Predictor. Você usará o objeto retornado pela Classe `Predictor` para invocar seu endpoint em uma etapa futura. Forneça o nome do seu endpoint (definido anteriormente como `endpoint_name`), junto com os objetos serializadores e desserializadores para o serializador e o desserializador, respectivamente. [Para obter informações sobre os tipos de serializadores, consulte a classe [Serializers](https://sagemaker.readthedocs.io/en/stable/api/inference/serializers.html) no SDK do AI SageMaker Python.](https://sagemaker.readthedocs.io/en/stable/index.html)

```
from sagemaker.predictor import Predictor
from sagemaker.serializers import <Serializer>
from sagemaker.deserializers import <Deserializers>

predictor = Predictor(endpoint_name=endpoint_name,
                      serializer = <Serializer_Class>,
                      deserializer = <Deserializer_Class>)

# Example
#from sagemaker.predictor import Predictor
#from sagemaker.serializers import CSVSerializer
#from sagemaker.deserializers import JSONDeserializer

#predictor = Predictor(endpoint_name=endpoint_name,
#                      serializer=CSVSerializer(),
#                      deserializer=JSONDeserializer())
```

No cenário de exemplo de código em andamento, invocamos o endpoint com exemplos de dados de validação que armazenamos localmente em um arquivo CSV chamado `validation_with_predictions`. Nosso conjunto de validação de amostras contém rótulos para cada entrada.

As primeiras linhas da instrução With abrem primeiro o arquivo CSV do conjunto de validação, depois dividem cada linha dentro do arquivo pelo caractere de vírgula `","` e, em seguida, armazenam os dois objetos retornados em um rótulo e variáveis input\$1cols. Para cada linha, a entrada (`input_cols`) é passada para o método `Predictor.predict()` integrado dos objetos da variável preditora (`predictor`).

Suponha que o modelo retorne uma probabilidade. As probabilidades variam entre valores inteiros de 0 e 1.0. Se a probabilidade retornada pelo modelo for maior que 80% (0,8), atribuímos à predição um rótulo de valor inteiro de 1. Caso contrário, atribuímos à predição um rótulo de valor inteiro de 0.

```
from time import sleep

validate_dataset = "validation_with_predictions.csv"

# Cut off threshold of 80%
cutoff = 0.8

limit = 200  # Need at least 200 samples to compute standard deviations
i = 0
with open(f"test_data/{validate_dataset}", "w") as validation_file:
    validation_file.write("probability,prediction,label\n")  # CSV header
    with open("test_data/validation.csv", "r") as f:
        for row in f:
            (label, input_cols) = row.split(",", 1)
            probability = float(predictor.predict(input_cols))
            prediction = "1" if probability > cutoff else "0"
            baseline_file.write(f"{probability},{prediction},{label}\n")
            i += 1
            if i > limit:
                break
            print(".", end="", flush=True)
            sleep(0.5)
print()
print("Done!")
```

Como você habilitou a captura de dados nas etapas anteriores, a carga útil da solicitação e da resposta, além de alguns metadados adicionais, é salva no local do Amazon S3 especificado em `DataCaptureConfig`. A entrega dos dados de captura para o Amazon S3 pode exigir alguns minutos.

Visualize dados capturados listando os arquivos de captura de dados armazenados no Amazon S3. O formato do caminho do Amazon S3 é: `s3:///{endpoint-name}/{variant-name}/yyyy/mm/dd/hh/filename.jsonl`.

Espere ver arquivos diferentes de diferentes períodos de tempo, organizados com base na hora em que a invocação ocorreu. Execute o seguinte para imprimir o conteúdo de um único arquivo de captura:

```
print("\n".join(capture_file[-3:-1]))
```

Isso retornará um arquivo formatado em linha JSON específico para SageMaker IA. A seguir está um exemplo de resposta retirado de um endpoint em tempo real que invocamos usando dados `csv/text`:

```
{"captureData":{"endpointInput":{"observedContentType":"text/csv","mode":"INPUT",
"data":"69,0,153.7,109,194.0,105,256.1,114,14.1,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0\n",
"encoding":"CSV"},"endpointOutput":{"observedContentType":"text/csv; charset=utf-8","mode":"OUTPUT","data":"0.0254181120544672","encoding":"CSV"}},
"eventMetadata":{"eventId":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","inferenceTime":"2022-02-14T17:25:49Z"},"eventVersion":"0"}
{"captureData":{"endpointInput":{"observedContentType":"text/csv","mode":"INPUT",
"data":"94,23,197.1,125,214.5,136,282.2,103,9.5,5,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1\n",
"encoding":"CSV"},"endpointOutput":{"observedContentType":"text/csv; charset=utf-8","mode":"OUTPUT","data":"0.07675473392009735","encoding":"CSV"}},
"eventMetadata":{"eventId":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","inferenceTime":"2022-02-14T17:25:49Z"},"eventVersion":"0"}
```

No exemplo a seguir, o objeto `capture_file` é um tipo de lista. Indexe o primeiro elemento da lista para visualizar uma única solicitação de inferência.

```
# The capture_file object is a list. Index the first element to view a single inference request  
print(json.dumps(json.loads(capture_file[0]), indent=2))
```

Essa ação retornará uma resposta semelhante à seguinte: Os valores retornados serão diferentes com base na configuração do endpoint, no modelo de SageMaker IA e nos dados capturados:

```
{
  "captureData": {
    "endpointInput": {
      "observedContentType": "text/csv", # data MIME type
      "mode": "INPUT",
      "data": "50,0,188.9,94,203.9,104,151.8,124,11.6,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0\n",
      "encoding": "CSV"
    },
    "endpointOutput": {
      "observedContentType": "text/csv; charset=character-encoding",
      "mode": "OUTPUT",
      "data": "0.023190177977085114",
      "encoding": "CSV"
    }
  },
  "eventMetadata": {
    "eventId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "inferenceTime": "2022-02-14T17:25:06Z"
  },
  "eventVersion": "0"
}
```

# Capturar dados do trabalho de transformação de lotes
<a name="model-monitor-data-capture-batch"></a>

 As etapas necessárias para ativar a captura de dados para seu trabalho de transformação em lote são semelhantes, independentemente de você usar o SDK do Python AWS SDK para Python (Boto) ou do SageMaker Python. Se você usa o AWS SDK, defina o [DataCaptureConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCaptureConfig.html)dicionário, junto com os campos obrigatórios, dentro do `CreateTransformJob` método para ativar a captura de dados. Se você usa o SDK SageMaker AI Python, importe a `BatchDataCaptureConfig` classe e inicialize uma instância dessa classe. Em seguida, passe esse objeto para o parâmetro `batch_data_capture_config` da sua instância do trabalho de transformação. 

 Para usar os trechos de código a seguir, substitua o código *italicized placeholder text* no exemplo por suas próprias informações. 

## Como habilitar a captura de dados
<a name="data-capture-batch-enable"></a>

 Especifique uma configuração de captura de dados ao iniciar um trabalho de transformação. Se você usa o SDK AWS SDK para Python (Boto3) ou o SageMaker Python, você deve fornecer o `DestinationS3Uri` argumento, que é o diretório em que você deseja que o trabalho de transformação registre os dados capturados. Opcionalmente, você também pode definir os seguintes parâmetros: 
+  `KmsKeyId`: a AWS KMS chave usada para criptografar os dados capturados. 
+  `GenerateInferenceId`: sinalizador booleano que, ao capturar os dados, indica se você deseja que o trabalho de transformação anexe o ID e a hora da inferência à sua saída. Isso é útil para o monitoramento da qualidade do modelo, onde você precisa ingerir os dados do Ground Truth. O ID de inferência e o tempo ajudam a combinar os dados capturados com os dados do Ground Truth. 

------
#### [ AWS SDK para Python (Boto3) ]

 Configure os dados que você deseja capturar com o [DataCaptureConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCaptureConfig.html)dicionário ao criar um trabalho de transformação usando o `CreateTransformJob` método. 

```
input_data_s3_uri = "s3://input_S3_uri"
output_data_s3_uri = "s3://output_S3_uri"
data_capture_destination = "s3://captured_data_S3_uri"

model_name = "model_name"

sm_client.create_transform_job(
    TransformJobName="transform_job_name",
    MaxConcurrentTransforms=2,
    ModelName=model_name,
    TransformInput={
        "DataSource": {
            "S3DataSource": {
                "S3DataType": "S3Prefix",
                "S3Uri": input_data_s3_uri,
            }
        },
        "ContentType": "text/csv",
        "CompressionType": "None",
        "SplitType": "Line",
    },
    TransformOutput={
        "S3OutputPath": output_data_s3_uri,
        "Accept": "text/csv",
        "AssembleWith": "Line",
    },
    TransformResources={
        "InstanceType": "ml.m4.xlarge",
        "InstanceCount": 1,
    },
    DataCaptureConfig={
       "DestinationS3Uri": data_capture_destination,
       "KmsKeyId": "kms_key",
       "GenerateInferenceId": True,
    }
    )
```

------
#### [ SageMaker Python SDK ]

 Importe a classe `BatchDataCaptureConfig` do [sagemaker.model\$1monitor](https://sagemaker.readthedocs.io/en/stable/api/inference/model_monitor.html). 

```
from sagemaker.transformer import Transformer
from sagemaker.inputs import BatchDataCaptureConfig

# Optional - The S3 URI of where to store captured data in S3
data_capture_destination = "s3://captured_data_S3_uri"

model_name = "model_name"

transformer = Transformer(model_name=model_name, ...)
transform_arg = transformer.transform(
    batch_data_capture_config=BatchDataCaptureConfig(
        destination_s3_uri=data_capture_destination,
        kms_key_id="kms_key",
        generate_inference_id=True,
    ),
    ...
)
```

------

## Como visualizar os dados capturados
<a name="data-capture-batch-view"></a>

 Depois que o trabalho de transformação for concluído, os dados capturados serão registrados sob o `DestinationS3Uri` que você forneceu com a configuração da captura de dados. Há dois subdiretórios em `DestinationS3Uri`, `/input` e `/output`. Se `DestinationS3Uri` for `s3://my-data-capture`, o trabalho de transformação criará os seguintes diretórios: 
+  `s3://my-data-capture/input`: os dados de entrada capturados para o trabalho de transformação. 
+  `s3://my-data-capture/output`: os dados de saída capturados para o trabalho de transformação. 

 Para evitar a duplicação de dados, os dados capturados nos dois diretórios anteriores são manifestos. Cada manifesto é um arquivo JSONL que contém as localizações dos objetos de fonte no Amazon S3. Um arquivo manifesto pode parecer com o seguinte exemplo: 

```
# under "/input" directory
[
    {"prefix":"s3://input_S3_uri/"},
    "dummy_0.csv",
    "dummy_1.csv",
    "dummy_2.csv",
    ...
]

# under "/output" directory
[
    {"prefix":"s3://output_S3_uri/"},
    "dummy_0.csv.out",
    "dummy_1.csv.out",
    "dummy_2.csv.out",
    ...
]
```

 O trabalho de transformação organiza e rotula esses manifestos com um prefixo *yyyy/mm/dd/hh* S3 para indicar quando eles foram capturados. Isso ajuda o monitor do modelo a determinar a parte apropriada dos dados a serem analisados. Por exemplo, se você iniciar seu trabalho de transformação em 26/08/2022 às 13h UTC, os dados capturados serão rotulados com uma string de prefixo `2022/08/26/13/`. 

## InferenceId Geração
<a name="data-capture-batch-inferenceid"></a>

 Ao configurar uma `DataCaptureConfig` para um trabalho de transformação, você pode ativar o sinalizador booleano `GenerateInferenceId`. Essa ação é particularmente útil quando você precisa executar trabalhos de monitoramento da qualidade do modelo e do desvio do modelo, para os quais você precisa de dados do Ground Truth ingeridos pelo usuário. O monitor de modelo depende de um ID de inferência para combinar os dados capturados e os dados do Ground Truth. Para obter detalhes adicionais sobre a ingestão do Ground Truth, consulte [Ingerir rótulos do Ground Truth e mesclá-los com predições](model-monitor-model-quality-merge.md). Quando `GenerateInferenceId` está ativado, a saída da transformação anexa um ID de inferência (um UUID aleatório), bem como o horário de início do trabalho de transformação em UTC para cada registro. Você precisa desses dois valores para executar o monitoramento da qualidade do modelo e do desvio de modelo. Ao criar os dados do Ground Truth, você precisa fornecer o mesmo ID de inferência para corresponder aos dados de saída. Atualmente, esse atributo é compatível com saídas de transformação nos formatos CSV, JSON e JSONL. 

 Se a saída da transformação estiver no formato CSV, o arquivo de saída terá a aparência do seguinte exemplo: 

```
0, 1f1d57b1-2e6f-488c-8c30-db4e6d757861,2022-08-30T00:49:15Z
1, 22445434-0c67-45e9-bb4d-bd1bf26561e6,2022-08-30T00:49:15Z
...
```

 As duas últimas colunas são a ID de inferência e o horário de início do trabalho de transformação. Não os modifique. As colunas restantes são as saídas do seu trabalho de transformação. 

 Se a saída da transformação estiver no formato JSON ou JSONL, o arquivo de saída terá a aparência do seguinte exemplo: 

```
{"output": 0, "SageMakerInferenceId": "1f1d57b1-2e6f-488c-8c30-db4e6d757861", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"}
{"output": 1, "SageMakerInferenceId": "22445434-0c67-45e9-bb4d-bd1bf26561e6", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"}
...
```

 Há dois campos anexados que são reservados, `SageMakerInferenceId` e `SageMakerInferenceTime`. Não modifique esses campos se precisar executar o monitoramento da qualidade do modelo ou do desvio de modelo. pois você precisa deles para trabalhos de mesclagem. 