Données de sortie Amazon A2I - Amazon SageMaker

Données de sortie Amazon A2I

Lorsque votre flux de machine learning envoie un objet de données à Amazon A2I, une boucle humaine est créée et les vérificateurs humains reçoivent une tâche de vérification de cet objet de données. Les données de sortie de chaque tâche de vérification humaine sont stockées dans le compartiment de sortie Amazon Simple Storage Service (Amazon S3) que vous spécifiez dans votre flux de vérification humaine. Dans le chemin d'accès aux données, YYYY/MM/DD/hh/mm/ss représente la date de création de la boucle humaine avec l'année (YYYY), le mois (MM) et le jour (DD), ainsi que l'heure de création avec l'heure (hh), les minutes (mm) et les secondes (ss).

s3://customer-output-bucket-specified-in-flow-definition/flow-definition-name/YYYY/MM/DD/hh/mm/ss/human-loop-name/output.json

Le contenu de vos données de sortie dépend du type de tâche (intégré ou personnalisé) et du type de main-d'œuvre que vous utilisez. Vos données de sortie incluent toujours la réponse de l'employé humain. En outre, les données en sortie peuvent inclure des métadonnées sur la boucle humaine, le vérificateur humain (employé) et l'objet de données.

Consultez les sections suivantes pour en savoir plus sur le format des données de sortie Amazon A2I selon les différents types de tâches et de main-d’œuvre.

Données de sortie à partir de types de tâches intégrés

Les types de tâches intégrés Amazon A2I incluent Amazon Textract et Amazon Rekognition. En plus des réponses humaines, les données de sortie de l'une de ces tâches incluent des détails sur la raison de la création de la boucle humaine et des informations sur le service intégré utilisé pour la créer. Consultez le tableau suivant pour en savoir plus sur le schéma des données de sortie de tous les types de tâches intégrés. La valeur de chacun de ces paramètres dépend du service que vous utilisez avec Amazon A2I. Reportez-vous au second tableau de cette section pour plus d'informations sur ces valeurs spécifiques au service.

Paramètre Type de valeur Exemple de valeurs Description
awsManagedHumanLoopRequestSource

String

AWS/Rekognition/DetectModerationLabels/Image/V3 ou AWS/Textract/AnalyzeDocument/Forms/V1 L'opération d’API et les services AWS associés qui ont demandé à Amazon A2I de créer une boucle humaine. Il s'agit de l'opération d’API que vous utilisez pour configurer votre boucle humaine Amazon A2I.
flowDefinitionArn

String

arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name

Amazon Resource Number (ARN) du flux de vérification humaine (définition de flux) utilisé pour créer la boucle humaine.

humanAnswers

Liste d'objets JSON

{ "answerContent": { "AWS/Rekognition/DetectModerationLabels/Image/V3": { "moderationLabels": [...] } },
ou
{ "answerContent": { "AWS/Textract/AnalyzeDocument/Forms/V1": { "blocks": [...] } },
Liste d'objets JSON qui contiennent des réponses d’employé dans answerContent.

Cet objet contient également des détails d’envoi et, si une main-d’œuvre privée a été utilisée, des métadonnées d’employé. Pour en savoir plus, veuillez consulter la section Suivi de l'activité des employés.

Pour les données de sortie de boucle humaine produites à partir des tâches de vérification DetectModerationLabel Amazon Rekognition, ce paramètre ne contient que des réponses positives. Par exemple, si les employés sélectionnent Aucun contenu, cette réponse n'est pas incluse.

humanLoopName

String

'human-loop-name'

Nom de la boucle humaine.
inputContent

un objet JSON

{ "aiServiceRequest": {...}, "aiServiceResponse": {...}, "humanTaskActivationConditionResults": {...}, "selectedAiServiceResponse": {...} }

Le contenu d'entrée que le service AWS a envoyé à Amazon A2I lorsqu'il a demandé la création d'une boucle humaine.

aiServiceRequest

un objet JSON

{ "document": {...}, "featureTypes": [...], "humanLoopConfig": {...} }
ou
{ "image": {...}, "humanLoopConfig": {...} }

La demande originale envoyée au service AWS intégré à Amazon A2I. Par exemple, si vous utilisez Amazon Rekognition avec Amazon A2I, cela inclut la demande effectuée via l'opération d’API DetectModerationLabels. Pour les intégrations Amazon Textract, cela inclut la demande effectuée via AnalyzeDocument.

aiServiceResponse

un objet JSON

{ "moderationLabels": [...], "moderationModelVersion": "3.0" }

ou

{ "blocks": [...], "documentMetadata": {} }

La réponse complète du service AWS. Il s'agit des données utilisées pour déterminer si une vérification humaine est nécessaire. Cet objet peut contenir des métadonnées sur l'objet de données qui ne sont pas partagées avec des vérificateurs humains.

selectedAiServiceResponse

un objet JSON

{ "moderationLabels": [...], "moderationModelVersion": "3.0" }

ou

{ "blocks": [...], "documentMetadata": {} }

Le sous-ensemble du module aiServiceResponse qui correspond aux conditions d'activation dansActivationConditions.

Tous les objets de données répertoriés dans aiServiceResponse sont répertoriés dans selectedAiServiceResponse lorsque les inférences sont échantillonnées au hasard, ou que toutes les inférences ont initié des conditions d'activation.

humanTaskActivationConditionResults

un objet JSON

{ "Conditions": [...] }

Un objet JSON dans inputContent qui contient la raison de la création d’une boucle humaine. Cela inclut une liste des conditions d'activation (Conditions) incluses dans votre flux de vérification humaine (définition de flux), ainsi que le résultat de l'évaluation pour chaque condition. Ce résultat est true ou false. Pour en savoir plus sur les conditions d'activation, veuillez consulter Schéma JSON pour les conditions d'activation de boucle humaine dans Amazon Augmented AI.

Dans le tableau suivant, sélectionnez un onglet pour en savoir plus sur les paramètres spécifiques au type de tâche et voir un exemple de bloc de code de données de sortie pour chacun des types de tâches intégrés.

Amazon Textract Task Type Output Data

Lorsque vous utilisez l'intégration intégrée Amazon Textract, vous voyez 'AWS/Textract/AnalyzeDocument/Forms/V1' comme valeur de awsManagedHumanLoopRequestSource dans vos données de sortie.

Le paramètre answerContent contient un objet Block qui inclut des réponses humaines pour tous les blocs envoyés à Amazon A2I.

Le paramètre aiServiceResponse inclut également un objet Block avec la réponse d'Amazon Texttract à la demande d'origine envoyée à l'aide de AnalyzeDocument.

Pour en savoir plus sur les paramètres que vous voyez dans l'objet bloc, reportez-vous à Block (Bloc) dans le Guide du développeur Amazon Textract.

Voici un exemple de données de sortie provenant d'une vérification humaine Amazon A2I des inférences d'analyse de documents Amazon Textract.

{ "awsManagedHumanLoopRequestSource": "AWS/Textract/AnalyzeDocument/Forms/V1", "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name", "humanAnswers": [ { "answerContent": { "AWS/Textract/AnalyzeDocument/Forms/V1": { "blocks": [...] } }, "submissionTime": "2020-09-28T19:17:59.880Z", "workerId": "111122223333", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_111111", "sub": "c6aa8eb7-9944-42e9-a6b9-111122223333" } } } ], "humanLoopName": "humnan-loop-name", "inputContent": { "aiServiceRequest": { "document": { "s3Object": { "bucket": "DOC-EXAMPLE-BUCKET1", "name": "document-demo.jpg" } }, "featureTypes": [ "TABLES", "FORMS" ], "humanLoopConfig": { "dataAttributes": { "contentClassifiers": [ "FreeOfPersonallyIdentifiableInformation" ] }, "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name", "humanLoopName": "humnan-loop-name" } }, "aiServiceResponse": { "blocks": [...], "documentMetadata": { "pages": 1 } }, "humanTaskActivationConditionResults": { "Conditions": [ { "EvaluationResult": true, "Or": [ { "ConditionParameters": { "ImportantFormKey": "Mail address", "ImportantFormKeyAliases": [ "Mail Address:", "Mail address:", "Mailing Add:", "Mailing Addresses" ], "KeyValueBlockConfidenceLessThan": 100, "WordBlockConfidenceLessThan": 100 }, "ConditionType": "ImportantFormKeyConfidenceCheck", "EvaluationResult": true }, { "ConditionParameters": { "ImportantFormKey": "Mail address", "ImportantFormKeyAliases": [ "Mail Address:", "Mail address:", "Mailing Add:", "Mailing Addresses" ] }, "ConditionType": "MissingImportantFormKey", "EvaluationResult": false } ] } ] }, "selectedAiServiceResponse": { "blocks": [...] } } }
Amazon Rekognition Task Type Output Data

Lorsque vous utilisez l'intégration intégrée Amazon Textract, vous voyez la chaîne 'AWS/Rekognition/DetectModerationLabels/Image/V3' comme valeur de awsManagedHumanLoopRequestSource dans vos données de sortie.

Le paramètre answerContent contient un objet moderationLabels qui inclut des réponses humaines pour toutes les étiquettes de modération envoyées à Amazon A2I.

Le paramètre aiServiceResponse inclut également un objet moderationLabels avec la réponse d'Amazon Texttract à la demande d'origine envoyée à l'aide de DetectModerationLabels.

Pour en savoir plus sur les paramètres que vous voyez dans l'objet bloc, reportez-vous à ModerationLabel dans le Guide du développeur Amazon Rekognition.

Voici un exemple de données de sortie provenant d'une vérification humaine Amazon A2I des inférences d'analyse d’image Amazon Rekognition.

{ "awsManagedHumanLoopRequestSource": "AWS/Rekognition/DetectModerationLabels/Image/V3", "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name", "humanAnswers": [ { "answerContent": { "AWS/Rekognition/DetectModerationLabels/Image/V3": { "moderationLabels": [...] } }, "submissionTime": "2020-09-28T19:22:35.508Z", "workerId": "ef7294f850a3d9d1", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_111111", "sub": "c6aa8eb7-9944-42e9-a6b9-111122223333" } } } ], "humanLoopName": "humnan-loop-name", "inputContent": { "aiServiceRequest": { "humanLoopConfig": { "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name", "humanLoopName": "humnan-loop-name" }, "image": { "s3Object": { "bucket": "DOC-EXAMPLE-BUCKET1", "name": "example-image.jpg" } } }, "aiServiceResponse": { "moderationLabels": [...], "moderationModelVersion": "3.0" }, "humanTaskActivationConditionResults": { "Conditions": [ { "EvaluationResult": true, "Or": [ { "ConditionParameters": { "ConfidenceLessThan": 98, "ModerationLabelName": "Suggestive" }, "ConditionType": "ModerationLabelConfidenceCheck", "EvaluationResult": true }, { "ConditionParameters": { "ConfidenceGreaterThan": 98, "ModerationLabelName": "Female Swimwear Or Underwear" }, "ConditionType": "ModerationLabelConfidenceCheck", "EvaluationResult": false } ] } ] }, "selectedAiServiceResponse": { "moderationLabels": [ { "confidence": 96.7122802734375, "name": "Suggestive", "parentName": "" } ], "moderationModelVersion": "3.0" } } }

Données de sortie à partir de types de tâches personnalisés

Lorsque vous ajoutez Amazon A2I à un flux de vérification humaine personnalisé, les paramètres suivants s'affichent dans les données de sortie renvoyées par les tâches de vérification humaine.

Paramètre Type de valeur Description

flowDefinitionArn

String

Amazon Resource Number (ARN) du flux de vérification humaine (définition de flux) utilisé pour créer la boucle humaine.

humanAnswers

Liste d'objets JSON

Liste d'objets JSON qui contiennent des réponses d’employé dans answerContent. La valeur de ce paramètre est déterminée par la sortie reçue de votre Modèle de tâche d’employé.

Si vous utilisez une main-d'œuvre privée, les métadonnées d'employé sont incluses. Pour en savoir plus, veuillez consulter la section Suivi de l'activité des employés.

humanLoopName

String Nom de la boucle humaine.

inputContent

Objet JSON

Le contenu d'entrée envoyé à Amazon A2I dans la demande à StartHumanLoop.

Voici un exemple de données de sortie provenant d'une intégration personnalisée avec Amazon A2I et Amazon Transcribe. Dans cet exemple, le paramètre inputContent comprend :

  • Un chemin vers un fichier .mp4 dans Amazon S3 et le titre de la vidéo

  • La transcription renvoyée par Amazon Transcribe (analysée à partir des données de sortie Amazon Transcribe)

  • Une heure de début et de fin utilisée par le modèle de tâche d'employé pour découper le fichier .mp4 et montrer aux employés une partie pertinente de la vidéo

{ "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name", "humanAnswers": [ { "answerContent": { "transcription": "use lambda to turn your notebook" }, "submissionTime": "2020-06-18T17:08:26.246Z", "workerId": "ef7294f850a3d9d1", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_111111", "sub": "c6aa8eb7-9944-42e9-a6b9-111122223333" } } } ], "humanLoopName": "human-loop-name", "inputContent": { "audioPath": "s3://DOC-EXAMPLE-BUCKET1/a2i_transcribe_demo/Fully-Managed Notebook Instances with Amazon SageMaker - a Deep Dive.mp4", "end_time": 950.27, "original_words": "but definitely use Lambda to turn your ", "start_time": 948.51, "video_title": "Fully-Managed Notebook Instances with Amazon SageMaker - a Deep Dive.mp4" } }

Suivi de l'activité des employés

Amazon A2I fournit des informations que vous pouvez utiliser pour suivre les employés individuels dans les données de sortie de la tâche. Pour identifier l’employé qui a travaillé sur la tâche de vérification humaine, utilisez les éléments suivants à partir des données de sortie d'Amazon S3 :

  • LeacceptanceTime est l'heure à laquelle l’employé a accepté la tâche. Le format de cette date et de cet horodatage est YYYY-MM-DDTHH:MM:SS.mmmZ pour l'année (YYYY), le mois (MM), le jour (DD), l’heure (HH), les minutes (MM), les secondes (SS) et les millisecondes (mmm). La date et l'heure sont séparées par un T.

  • Le submissionTime est l'heure à laquelle l'employé a soumis ses annotations à l'aide du bouton Envoyer. Le format de cette date et de cet horodatage est YYYY-MM-DDTHH:MM:SS.mmmZ pour l'année (YYYY), le mois (MM), le jour (DD), l’heure (HH), les minutes (MM), les secondes (SS) et les millisecondes (mmm). La date et l'heure sont séparées par un T.

  • timeSpentInSeconds indique la durée totale, en secondes, pendant laquelle un employé a travaillé activement sur cette tâche. Cette métrique n'inclut pas l'heure à laquelle un employé s'est mis en pause ou a pris une pause.

  • Le workerId est unique à chaque employé.

  • Si vous utilisez une main-d'œuvre privée, dans workerMetadata, vous voyez ce qui suit.

    • Le identityProviderType est le service utilisé pour gérer la main-d'œuvre privée.

    • Le issuer est le groupe d’utilisateurs Amazon Cognito ou le diffuseur du fournisseur d’identité (IdP) OpenID Connect (OIDC), associé à l'équipe de travail affectée à cette tâche de vérification humaine.

    • Un sub identifiant unique fait référence à l’employé. Si vous créez une main-d'œuvre à l'aide d'Amazon Cognito, vous pouvez extraire des détails sur cet employé (par ex., son nom ou son nom d'utilisateur) associés à cet ID à l’aide d’Amazon Cognito. Pour savoir comment procéder, veuillez consulter Managing and Searching for User Accounts (Gestion et recherche de comptes utilisateur) dans le Guide du développeur Amazon Cognito.

Voici un exemple de la sortie que vous pouvez voir si vous utilisez Amazon Cognito pour créer une main-d'œuvre privée. Ceci est identifié dans le identityProviderType.

"submissionTime": "2020-12-28T18:59:58.321Z", "acceptanceTime": "2020-12-28T18:59:15.191Z", "timeSpentInSeconds": 40.543, "workerId": "a12b3cdefg4h5i67", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.aws-region.amazonaws.com/aws-region_123456789", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }

Voici un exemple de la sortie que vous pouvez voir si vous utilisez votre propre IdP OIDC pour créer une main-d'œuvre privée :

"workerMetadata": { "identityData": { "identityProviderType": "Oidc", "issuer": "https://example-oidc-ipd.com/adfs", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }

Pour en savoir plus sur les mains d’œuvre privées, veuillez consulter Utilisation d'une main-d'œuvre privée.