Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Capture des données à partir d'une tâche de transformation par lots

Mode de mise au point
Capture des données à partir d'une tâche de transformation par lots - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les étapes requises pour activer la capture de données pour votre tâche de transformation par lots sont similaires, que vous utilisiez le SDK Python AWS SDK for Python (Boto) ou le SDK SageMaker Python. Si vous utilisez le AWS SDK, définissez le DataCaptureConfigdictionnaire, ainsi que les champs obligatoires, dans la CreateTransformJob méthode pour activer la capture de données. Si vous utilisez le SDK SageMaker AI Python, importez la BatchDataCaptureConfig classe et initialisez une instance à partir de cette classe. Transmettez ensuite cet objet au paramètre batch_data_capture_config de votre instance de tâche de transformation.

Pour utiliser les extraits de code suivants, remplacez ceux de l'exemple italicized placeholder text de code par vos propres informations.

Comment activer la capture des données

Spécifiez une configuration de capture de données lorsque vous lancez une tâche de transformation. Que vous utilisiez le SDK AWS SDK for Python (Boto3) ou le SDK SageMaker Python, vous devez fournir l'DestinationS3Uriargument, qui est le répertoire dans lequel vous souhaitez que la tâche de transformation enregistre les données capturées. (Facultatif) Vous pouvez également préciser les paramètres suivants :

  • KmsKeyId: AWS KMS clé utilisée pour chiffrer les données capturées.

  • GenerateInferenceId : un indicateur booléen qui, lors de la capture des données, indique si vous souhaitez que la tâche de transformation ajoute l'ID d'inférence et l'heure à votre sortie. Cela est utile pour la surveillance de la qualité des modèles, lorsque vous devez ingérer les données Ground Truth. L'ID d'inférence et l'heure permettent de faire correspondre les données capturées à vos données Ground Truth.

AWS SDK for Python (Boto3)

Configurez les données que vous souhaitez capturer avec le DataCaptureConfigdictionnaire lorsque vous créez une tâche de transformation à l'aide de CreateTransformJob cette méthode.

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

Importez la classe BatchDataCaptureConfig du module 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, ), ... )

Configurez les données que vous souhaitez capturer avec le DataCaptureConfigdictionnaire lorsque vous créez une tâche de transformation à l'aide de CreateTransformJob cette méthode.

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

Comment afficher les données capturées

Une fois la tâche de transformation terminée, les données capturées sont journalisées sous DestinationS3Uri que vous avez fournie avec la configuration de capture de données. Il existe deux sous-répertoires sous DestinationS3Uri, /input et /output. Si DestinationS3Uri est s3://my-data-capture, la tâche de transformation crée les répertoires suivants :

  • s3://my-data-capture/input : les données d'entrée capturées pour la tâche de transformation.

  • s3://my-data-capture/output : les données de sortie capturées pour la tâche de transformation.

Pour éviter la duplication des données, les données capturées dans les deux répertoires précédents sont des manifestes. Chaque manifeste est un fichier JSONL qui contient les emplacements Amazon S3 des objets sources. Un fichier manifeste peut ressembler à l'exemple suivant :

# 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", ... ]

La tâche de transformation organise et étiquette ces manifestes avec un préfixe yyyy/mm/dd/hh S3 pour indiquer quand ils ont été capturés. Cela permet à Model Monitor de déterminer la partie appropriée des données à analyser. Par exemple, si vous commencez votre tâche de transformation le 26 août 2022 à 13 h UTC, les données capturées sont étiquetées avec une chaîne de préfixe 2022/08/26/13/.

InferenceId Génération

Lorsque vous configurez DataCaptureConfig pour une tâche de transformation, vous pouvez activer l'indicateur booléen GenerateInferenceId. Cela est particulièrement utile lorsque vous devez exécuter des tâches de surveillance de la qualité et du biais des modèles, pour lesquelles vous avez besoin de données Ground Truth ingérées par les utilisateurs. Model Monitor s'appuie sur un ID d'inférence pour faire correspondre les données capturées et les données de Ground Truth. Pour plus de détails sur l'ingestion de Ground Truth, consultez Ingérez les labels Ground Truth et fusionnez-les avec des prédictions. Lorsque GenerateInferenceId est activé, la sortie de transformation ajoute un ID d'inférence (un UUID aléatoire) ainsi que l'heure de début de la tâche de transformation en UTC pour chaque enregistrement. Vous avez besoin de ces deux valeurs pour contrôler la qualité des modèles et le biais des modèles. Lorsque vous créez les données Ground Truth, vous devez fournir le même identifiant d'inférence pour correspondre aux données de sortie. Actuellement, cette fonction prend en charge les sorties de transformation aux formats CSV, JSON et JSONL.

Si la sortie de votre transformation est au format CSV, le fichier de sortie ressemble à l'exemple suivant :

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

Les deux dernières colonnes contiennent l'ID d'inférence et l'heure de début de la tâche de transformation. Ne les modifiez pas. Les colonnes restantes sont les sorties de vos tâches de transformation.

Si la sortie de votre transformation est au format JSON ou JSONL, le fichier de sortie ressemble à l'exemple suivant :

{"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"} ...

Deux champs ajoutés sont réservés, SageMakerInferenceId et SageMakerInferenceTime. Ne modifiez pas ces champs si vous devez contrôler la qualité des modèles ou le biais des modèles. Vous en avez besoin pour les tâches de fusion.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.