

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

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