Créer et démarrer une boucle humaine - Amazon SageMaker

Créer et démarrer une boucle humaine

Une boucle humaine démarre votre flux de vérification humaine et envoie des tâches de vérification des données à des employés humains. Lorsque vous utilisez l'un des types de tâche intégrés Amazon A2I, le service AWS correspondant crée et démarre une boucle humaine en votre nom lorsque les conditions spécifiées dans votre définition de flux sont remplies. Si aucune condition n'est spécifiée dans votre définition de flux, une boucle humaine est créée pour chaque objet. Lorsque vous utilisez Amazon A2I pour une tâche personnalisée, une boucle humaine démarre quand votre application appelle StartHumanLoop.

Utilisez les instructions suivantes pour configurer une boucle humaine avec des types de tâche intégrés Amazon Rekognition ou Amazon Textract et des types de tâche personnalisés.

Prérequis

Pour créer et démarrer une boucle humaine, vous devez attacher la stratégie AmazonAugmentedAIFullAccess à l'utilisateur ou au rôle AWS Identity and Access Management (IAM) qui configure ou démarre la boucle humaine. Il s'agit de l'identité que vous utilisez pour configurer la boucle humaine en utilisant HumanLoopConfig pour les types de tâches intégrés. Pour les types de tâche personnalisés, il s'agit de l'identité que vous utilisez pour appeler StartHumanLoop.

En outre, lorsque vous utilisez un type de tâche intégré, votre utilisateur ou rôle IAM doit être autorisé à appeler des opérations d'API du service AWS associé à votre type de tâche. Par exemple, si vous utilisez Amazon Rekognition avec Augmented AI, vous devez attacher les autorisations requises pour appeler DetectModerationLabels. Pour des exemples de stratégies basées sur l'identité que vous pouvez utiliser pour accorder ces autorisations, consultez Exemples de stratégies basées sur l'identité Amazon Rekognition et Exemples de stratégies basées sur l'identité Amazon Textract. Vous pouvez également utiliser la stratégie plus générale AmazonAugmentedAIIntegratedAPIAccess pour accorder ces autorisations. Pour de plus amples informations, veuillez consulter Créer un utilisateur IAM disposant des autorisations requises pour appeler les opérations d'API Amazon A2I, Amazon Textract et Amazon Rekognition.

Vous avez besoin d'un ARN de définition de flux pour créer et démarrer une boucle humaine. Pour apprendre à créer une définition de flux (ou flux de vérification humaine), veuillez consulter Créer un flux de vérification humaine.

Important

Amazon A2I exige que tous les compartiments S3 contenant des données d'image d'entrée de boucle humaine soient associés à une stratégie CORS. Pour en savoir plus sur cette modification, veuillez consulter Autorisations CORS requises.

Créer et démarrer une boucle humaine pour un type de tâche intégré

Pour démarrer une boucle humaine à l'aide d'un type de tâche intégré, utilisez l'API du service correspondant pour fournir vos données d'entrée et configurer la boucle humaine. Pour Amazon Textract, vous utilisez l’opération d'API AnalyzeDocument. Pour Amazon Rekognition, vous utilisez l’opération d'API DetectModerationLabels. Vous pouvez utiliser la AWS CLI ou un kit SDK spécifique au langage pour créer des demandes à l'aide de ces opérations d'API.

Important

Lorsque vous créez une boucle humaine à l'aide d'un type de tâche intégré, vous pouvez utiliser DataAttributes pour spécifier un ensemble de ContentClassifiers associés à l'entrée fournie à l’opération StartHumanLoop. Utilisez des classificateurs de contenu pour déclarer que votre contenu est exempt d'informations personnelles identifiables ou de contenu pour adultes.

Pour utiliser Amazon Mechanical Turk, assurez-vous que vos données sont exemptes d'informations personnelles identifiables, notamment d’informations d’état protégées en vertu de la loi HIPAA. Incluez le classificateur de contenu FreeOfPersonallyIdentifiableInformation. Si vous n'utilisez pas ce classificateur de contenu, SageMaker n'envoie pas votre tâche à Mechanical Turk. Si vos données sont exemptes de contenu pour adultes, incluez également le classificateur 'FreeOfAdultContent'. Si vous n'utilisez pas ces classificateurs de contenu, SageMaker peut restreindre les employés Mechanical Turk habilités à afficher votre tâche.

Une fois que vous avez démarré votre tâche ML à l'aide de l'API du service AWS de votre type de tâche intégré, Amazon A2I contrôle les résultats d'inférence de ce service. Par exemple, lors de l'exécution d'une tâche avec Amazon Rekognition, Amazon A2I vérifie le score de fiabilité d'inférence pour chaque image et le compare aux seuils de fiabilité spécifiés dans votre définition de flux. Si les conditions de démarrage d'une tâche de vérification humaine sont remplies ou si vous n'avez pas spécifié de conditions dans votre définition de flux, une tâche de vérification humaine est envoyée aux employés.

Créer une boucle humaine Amazon Textract

Amazon A2I s'intègre à Amazon Textract pour que vous puissiez configurer et démarrer une boucle humaine à l'aide de l'API Amazon Textract. Pour envoyer un fichier document Amazon Textract à des fins d'analyse de texte, vous utilisez AnalyzeDocument l’opération dAPI Amazon Textract. Pour ajouter une boucle humaine à cette tâche d'analyse de document, vous devez configurer le paramètre HumanLoopConfig.

Lorsque vous configurez votre boucle humaine, la définition de flux que vous spécifiez dans FlowDefinitionArn de HumanLoopConfig doit se trouver dans la même région AWS que le compartiment identifié dans Bucket du paramètre Document.

Le tableau suivant montre des exemples d'utilisation de cette opération avec la AWS CLI et AWS SDK for Python (Boto3).

AWS SDK for Python (Boto3)

L’exemple de demande suivant utilise le kit SDK for Python (Boto3). Pour de plus amples informations, veuillez consulter analyze_document dans la référence d’API du kit AWS SDK for Python (Boto).

import boto3 textract = boto3.client('textract', aws_region) response = textract.analyze_document( Document={'S3Object': {'Bucket': bucket_name, 'Name': document_name}}, FeatureTypes=["TABLES", "FORMS"], HumanLoopConfig={ 'FlowDefinitionArn': 'arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name', 'HumanLoopName': 'human_loop_name', 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} } )
AWS CLI

L'exemple de demande suivant utilise la CLI AWS. Pour de plus amples informations, veuillez consulter analyze-document dans la référence AWS CLIcommande.

$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws-region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}' \ --feature-types '["TABLES", "FORMS"]'
$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config \ '{"HumanLoopName":"human_loop_name","FlowDefinitionArn":"arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name","DataAttributes": {"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]}}' \ --feature-types '["TABLES", "FORMS"]'

Une fois que vous avez exécuté AnalyzeDocument avec une boucle humaine configurée, Amazon A2I contrôle les résultats de AnalyzeDocument et les vérifie par rapport aux conditions d'activation de la définition de flux. Si le score de fiabilité d'inférence d’Amazon Textract pour une ou plusieurs paires clés-valeurs remplit les conditions de la vérification, Amazon A2I lance une boucle de vérification humaine et inclut l'objet HumanLoopActivationOutput dans la réponseAnalyzeDocument.

Créer une boucle humaine Amazon Rekognition

Amazon A2I s'intègre à Amazon Rekognition pour que vous puissiez configurer et démarrer une boucle humaine à l'aide de l'API Amazon Rekognition. Pour envoyer des images à Amazon Rekognition à des fins de modération de contenu, vous utilisez DetectModerationLabelsl'opération d'API Amazon Rekognition. Pour configurer une boucle humaine, définissez le paramètre HumanLoopConfig lorsque vous configurez DetectModerationLabels.

Lorsque vous configurez votre boucle humaine, la définition de flux que vous spécifiez dans FlowDefinitionArn de HumanLoopConfig doit se trouver dans la même région AWS que le compartiment S3 identifié dans Bucket du paramètre Image.

Le tableau suivant montre des exemples d'utilisation de cette opération avec la AWS CLI et AWS SDK for Python (Boto3).

AWS SDK for Python (Boto3)

L’exemple de demande suivant utilise le kit SDK for Python (Boto3). Pour de plus amples informations, veuillez consulter detect_moderation_labels dans la référence d’API du kit AWS SDK for Python (Boto).

import boto3 rekognition = boto3.client("rekognition", aws_region) response = rekognition.detect_moderation_labels( \ Image={'S3Object': {'Bucket': bucket_name, 'Name': image_name}}, \ HumanLoopConfig={ \ 'HumanLoopName': 'human_loop_name', \ 'FlowDefinitionArn': , "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name" \ 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} })
AWS CLI

L'exemple de demande suivant utilise la CLI AWS. Pour de plus amples informations, veuillez consulter detect-moderation-labels dans la référence AWS CLIcommande.

$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}'
$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config \ '{"HumanLoopName": "human_loop_name", "FlowDefinitionArn": "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name", "DataAttributes": {"ContentClassifiers": ["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}}'

Une fois que vous avez exécuté DetectModerationLabels avec une boucle humaine configurée, Amazon A2I contrôle les résultats de DetectModerationLabels et les contrôle par rapport aux conditions d'activation de la définition de flux. Si le score de fiabilité d'inférence Amazon Rekognition pour une image remplit les conditions de la vérification, Amazon A2I lance une boucle de vérification humaine et inclut l'élément de réponse HumanLoopActivationOutput dans la réponse DetectModerationLabels.

Créer et démarrer une boucle humaine pour un type de tâche personnalisé

Pour configurer une boucle humaine pour une tâche de vérification humaine personnalisée, utilisez l'opération StartHumanLoop dans votre application. Cette section fournit un exemple de demande de boucle humaine utilisant le kit AWS SDK for Python (Boto3) et la AWS Command Line Interface (AWS CLI). Pour obtenir de la documentation sur d’autres kits SDK spécifiques au langage qui prennent en charge StartHumanLoop, utilisez la section Voir aussi de StartHumanLoop dans la documentation de l'API d'exécution Amazon Augmented AI. Reportez-vous à Cas d'utilisation et exemples d’utilisation d'Amazon A2I pour voir des exemples montrant comment utiliser Amazon A2I avec un type de tâche personnalisé.

Prérequis

Pour réaliser cette procédure, il vous faut :

  • Données d'entrée formatées sous la forme d’une représentation chaîne d'un fichier au format JSON

  • Amazon Resource Name (ARN) de votre définition de flux.

Pour configurer la boucle humaine

  1. Pour DataAttributes, spécifiez un ensemble de ContentClassifiers associés à l'entrée fournie à l'opération StartHumanLoop. Utilisez des classificateurs de contenu pour déclarer que votre contenu est exempt d'informations personnelles identifiables ou de contenu pour adultes.

    Pour utiliser Amazon Mechanical Turk, assurez-vous que vos données sont exemptes d'informations personnelles identifiables, notamment d’informations d’état protégées en vertu de la loi HIPAA, et incluez le classificateur de contenu FreeOfPersonallyIdentifiableInformation. Si vous n'utilisez pas ce classificateur de contenu, SageMaker n'envoie pas votre tâche à Mechanical Turk. Si vos données sont exemptes de contenu pour adultes, incluez également le classificateur 'FreeOfAdultContent'. Si vous n'utilisez pas ces classificateurs de contenu, SageMaker peut restreindre les employés Mechanical Turk habilités à afficher votre tâche.

  2. Pour FlowDefinitionArn, saisissez l'Amazon Resource Name (ARN) de votre définition de flux.

  3. Pour HumanLoopInput, saisissez vos données d'entrée sous la forme d'une représentation chaîne d'un fichier au format JSON. Structurez vos données d'entrée et votre modèle de tâche d’employé personnalisé afin que vos données d'entrée s'affichent correctement pour les employés humains lorsque vous démarrez votre boucle humaine. Veuillez consulter Aperçu d'un modèle de tâche d'employé pour apprendre comment afficher l'aperçu de votre modèle de tâche d’employé personnalisé.

  4. Pour HumanLoopName, saisissez un nom pour la boucle humaine. Le nom doit être unique dans la région de votre compte et peut contenir jusqu'à 63 caractères. Les caractères valides sont a-z, 0-9 et - (trait d'union).

Pour démarrer une boucle humaine

  • Pour démarrer une boucle humaine, envoyez une demande semblable aux exemples suivants en utilisant votre kit SDK spécifique au langage préféré.

AWS SDK for Python (Boto3)

L’exemple de demande suivant utilise le kit SDK for Python (Boto3). Pour de plus amples informations, veuillez consulter Exécution de l'Augmented AI Boto 3 dans la référence d’API du kit SDK AWS for Python (Boto).

import boto3 a2i_runtime_client = boto3.client('sagemaker-a2i-runtime') response = a2i_runtime_client.start_human_loop( HumanLoopName='human_loop_name', FlowDefinitionArn='arn:aws:sagemaker:aws-region:xyz:flow-definition/flow_def_name', HumanLoopInput={ 'InputContent': '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' }, DataAttributes={ 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } )
AWS CLI

L'exemple de demande suivant utilise la CLI AWS. Pour de plus amples informations, veuillez consulter start-human-loop dans la référence AWS CLIcommande.

$ aws sagemaker-a2i-runtime start-human-loop --flow-definition-arn 'arn:aws:sagemaker:aws_region:xyz:flow-definition/flow_def_name' \ --human-loop-name 'human_loop_name' \ --human-loop-input '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' \ --data-attributes ContentClassifiers="FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent" \

Lorsque vous démarrez avec succès une boucle humaine en appelant StartHumanLoop directement, la réponse inclut des objets HumanLoopARN et HumanLoopActivationResults définis sur NULL. Vous pouvez utiliser ce nom de boucle humaine pour contrôler et gérer votre boucle humaine.

Étapes suivantes :

Après avoir démarré une boucle humaine, vous pouvez la gérer et la contrôler avec l'API d'exécution Amazon Augmented AI et Amazon CloudWatch Events. Pour en savoir plus, consultez la section Surveillance et gestion de votre boucle humaine.