Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Capturar dados do trabalho de transformação de lotes

Modo de foco
Capturar dados do trabalho de transformação de lotes - SageMaker IA da Amazon

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

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

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 for Python (Boto) ou do SageMaker Python. Se você usa o AWS SDK, defina o DataCaptureConfigdicioná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

Especifique uma configuração de captura de dados ao iniciar um trabalho de transformação. Se você usa o SDK AWS SDK for 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 for Python (Boto3)

Configure os dados que você deseja capturar com o DataCaptureConfigdicioná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_monitor.

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, ), ... )

Configure os dados que você deseja capturar com o DataCaptureConfigdicioná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, } )

Como visualizar os dados capturados

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

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

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.