Tâches d'étiquetage en streaming Ground Truth - Amazon SageMaker

Tâches d'étiquetage en streaming Ground Truth

Si vous souhaitez envoyer perpétuellement de nouveaux objets de données à Amazon SageMaker Ground Truth pour qu'ils soient étiquetés, utilisez une tâche d'étiquetage en streaming. Les tâches d'étiquetage en streaming vous permettent de :

  • Envoyez de nouveaux objets de jeu de données aux employés en temps réel à l'aide d'une tâche d'étiquetage qui s'exécute perpétuellement. Les employés reçoivent continuellement de nouveaux objets de données à étiqueter tant que la tâche d'étiquetage est active et que de nouveaux objets lui sont envoyés.

  • Obtenez une visibilité sur le nombre d'objets qui ont été mis en file d'attente pour être étiquetés. Utilisez ces informations pour contrôler le flux des objets de données envoyés à votre tâche d'étiquetage.

  • Recevez en temps réel les données d'étiquette pour les objets de données individuels lorsque les employés finissent de les étiqueter.

Les tâches d'étiquetage en streaming Ground Truth restent actives jusqu'à ce qu'elles soient arrêtées manuellement ou qu'elles soient inactives pendant plus de 10 jours. Vous pouvez envoyer par intermittence de nouveaux objets de données aux employés tant que la tâche d'étiquetage est active.

Si vous êtes un nouvel utilisateur des tâches d'étiquetage en streaming Ground Truth, il est recommandé de consulter Fonctionnement.

Utilisez Créer une tâche d'étiquetage en streaming pour savoir comment créer une tâche d'étiquetage en streaming.

Note

Les tâches d'étiquetage en streaming Ground Truth ne sont prises en charge que par l'API SageMaker.

Fonctionnement

Lorsque vous créez une tâche d'étiquetage en streaming Ground Truth, elle reste active jusqu'à ce qu'elle soit arrêtée manuellement, qu'elle reste inactive pendant plus de 10 jours ou qu'elle ne soit plus en mesure d'accéder aux sources de données source. Vous pouvez envoyer par intermittence de nouveaux objets de données aux employés tant qu'elle est active. Un collaborateur peut continuer à recevoir de nouveaux objets de données en temps réel tant que le nombre total de tâches actuellement disponibles pour l'employé est inférieur à la valeur spécifiée dans MaxConcurrentTaskCount. Sinon, l'objet de données est envoyé à une file d'attente que Ground Truth crée en votre nom dans Amazon Simple Queue Service(Amazon SQS) en vue de traitement ultérieur. Ces tâches sont envoyées aux employés dès que le nombre total de tâches actuellement disponibles pour un employé tombe en dessous MaxConcurrentTaskCount. Si un objet de données n'est pas envoyé à un employé après 14 jours, il expire. Vous pouvez afficher le nombre de tâches en attente dans la file d'attente et ajuster le nombre d'objets que vous envoyez à la tâche d'étiquetage. Par exemple, vous pouvez réduire la vitesse à laquelle vous envoyez des objets à la tâche d'étiquetage si la quantité d'objets en attente dépasse un certain seuil.

Envoi de données à une tâche d'étiquetage en streaming

Vous pouvez éventuellement soumettre des données source à une tâche d'étiquetage en streaming une seule fois lorsque vous créez la tâche d'étiquetage à l'aide d'un fichier manifeste source. Une fois que la tâche d'étiquetage a démarré et que son statut est InProgress, vous pouvez soumettre de nouveaux objets de données à votre tâche d'étiquetage en temps réel à l'aide de votre rubrique d'entrée Amazon SNS et des notifications d'événements Amazon S3.

Soumettre des objets de données lorsque vous démarrez la tâche d'étiquetage (une seule fois):

  • Utiliser un fichier manifeste source : vous pouvez éventuellement spécifier un fichier manifeste source URI Amazon S3 dans ManifestS3Uri lorsque vous créez la tâche d'étiquetage en streaming. Ground Truth envoie chaque objet de données du fichier manifeste aux employés pour l'étiquetage dès le début de la tâche d'étiquetage. Pour en savoir plus, consultez Créer un fichier manifeste (facultatif).

    Une fois que vous avez soumis une demande de création de la tâche d'étiquetage en streaming, son statut sera Initializing. Une fois que la tâche d'étiquetage est active, le statut passe à InProgress et vous pouvez commencer à utiliser les options en temps réel pour soumettre des objets de données supplémentaires pour l'étiquetage.

Soumettre des objets de données en temps réel:

  • Envoyer des objets de données à l'aide de messages Amazon SNS – Vous pouvez envoyer de nouveaux objets de données Ground Truth à étiqueter en envoyant un message Amazon SNS. Vous allez envoyer ce message à une rubrique d'entrée Amazon SNS que vous créez et spécifiez lorsque vous créez votre tâche d'étiquetage en streaming. Pour de plus amples informations, veuillez consulter . Envoyer des objets de données à l'aide d'Amazon SNS.

  • Envoyer des objets de données en les plaçant dans un compartiment Amazon S3 – Chaque fois que vous ajoutez un nouvel objet de données à un compartiment Amazon S3, vous pouvez demander à Ground Truth de traiter cet objet pour l'étiquetage. Pour ce faire, vous ajoutez une notification d'événement au compartiment afin qu'il avertisse votre rubrique d'entrée Amazon SNS chaque fois qu'un nouvel objet est ajouté (oucréé) dans ce compartiment. Pour de plus amples informations, veuillez consulter . Envoi d'objets de données avec Amazon S3. Cette option n'est pas disponible pour les tâches d'étiquetage basées sur du texte, telles que la classification de texte et la reconnaissance des entités nommées.

    Important

    Si vous utilisez la configuration Amazon S3, n'utilisez pas le même emplacement Amazon S3 pour votre configuration de données source et vos données de sortie. Vous spécifiez le préfixe S3 pour vos données de sortie lorsque vous créez une tâche d'étiquetage.

Envoyer des objets de données à l'aide d'Amazon SNS

Vous pouvez envoyer des objets de données à votre tâche d'étiquetage en streaming à l'aide d'Amazon Simple Notification Service (Amazon SNS). Amazon SNS est un service Web qui coordonne et gère la mise à disposition des messages à destination et à partir de points de terminaison (par exemple, une adresse e-mail ou une fonction AWS Lambda). Une rubrique Amazon SNS agit comme un canal de communication entre deux points de terminaison ou plus. Vous utilisez Amazon SNS pour envoyer, ou publier, de nouveaux objets de données à la rubrique spécifiée dans le paramètre CreateLabelingJob SnsTopicArn dans InputConfig. Le format de ces messages est le même qu'une seule ligne d'un Fichier manifeste source.

Par exemple, vous pouvez envoyer un morceau de texte à une tâche d'étiquetage de classification de texte actif en le publiant dans votre rubrique d'entrée. Le message que vous publiez peut se présenter comme suit :

{"source": "Lorem ipsum dolor sit amet"}

Pour envoyer un nouvel objet image à une tâche d'étiquetage de classification d'image, votre message peut ressembler à ce qui suit :

{"source-ref": "s3://awsexamplebucket/example-image.jpg"}
Note

Vous pouvez également inclure des identifiants de déduplication personnalisés et des clés de déduplication dans vos messages Amazon SNS. Pour en savoir plus, consultez Gestion des messages en double.

Lorsque Ground Truth crée votre tâche d'étiquetage en streaming, il s'abonne à votre rubrique d'entrée Amazon SNS.

Envoi d'objets de données avec Amazon S3

Vous pouvez envoyer un ou plusieurs nouveaux objets de données à une tâche d'étiquetage en streaming en les plaçant dans un compartiment Amazon S3 configuré avec une notification d'événement Amazon SNS. Vous pouvez configurer un événement pour notifier votre rubrique d'entrée Amazon SNS chaque fois qu'un nouvel objet est créé dans votre compartiment. Vous devez spécifier cette même rubrique d'entrée Amazon SNS dans le paramètre CreateLabelingJob SnsTopicArn dans InputConfig.

Chaque fois que vous configurez un compartiment Amazon S3 pour envoyer des notifications à Amazon SNS, Ground Truth publiera un événement de test "s3:TestEvent" pour être sûr que la rubrique existe et que le propriétaire du compartiment Amazon S3 spécifié est autorisé à publier dans la rubrique spécifiée. Il est recommandé de configurer votre connexion Amazon S3 avec Amazon SNS avant de commencer une tâche d'étiquetage en streaming. Si vous ne le faites pas, cet événement de test peut s'enregistrer en tant qu'objet de données et être envoyé à Ground Truth pour l'étiquetage.

Important

Si vous utilisez la configuration Amazon S3, n'utilisez pas le même emplacement Amazon S3 pour votre configuration de données source et vos données de sortie. Vous spécifiez le préfixe S3 pour vos données de sortie lorsque vous créez une tâche d'étiquetage.

Pour toutes les tâches d'étiquetage basées sur les images, Ground Truth exige que tous les compartiments S3 soient associés à une politique CORS. Pour en savoir plus, consultez Autorisations CORS requises.

Une fois que vous avez configuré votre compartiment Amazon S3 et créé votre tâche d'étiquetage, vous pouvez ajouter des objets à votre compartiment et Ground Truth envoie cet objet aux employés ou le place dans votre file d'attente Amazon SQS.

Pour en savoir plus, consultez Configurer des notifications d'événement de compartiment Amazon S3.

Important

Cette option n'est pas disponible pour les tâches d'étiquetage basées sur du texte, telles que la classification de texte et la reconnaissance des entités nommées.

Gérer les requêtes d'étiquetage à l'aide d'une file d'attente Amazon SQS

Lorsque Ground Truth crée votre tâche d'étiquetage en streaming, il crée une file d'attente Amazon SQS dans le compte AWS qui a été utilisé pour créer la tâche d'étiquetage. Le nom de file d'attente est GroundTruth-labeling_job_name, où labeling_job_name est le nom de votre tâche d'étiquetage, en minuscules. Lorsque vous envoyez des objets de données à votre tâche d'étiquetage, Ground Truth envoie les objets de données directement aux employés ou place la tâche dans votre file d'attente pour être traitée ultérieurement. Si un objet de données n'est pas envoyé à un employé après 14 jours, il expire et est retiré de la file d'attente. Vous pouvez configurer une alarme dans Amazon SQS pour détecter l'expiration des objets et utiliser ce mécanisme pour contrôler la quantité d'objets que vous envoyez à votre tâche d'étiquetage.

Important

La modification, la suppression ou l'envoi d'objets directement à la file d'attente Amazon SQS associée à votre tâche d'étiquetage en streaming peut entraîner des échecs de tâche.

Recevoir des données de sortie à partir d'une tâche étiquetage en streaming

Votre compartiment de sortie Amazon S3 est régulièrement mis à jour avec les nouvelles données de sortie de votre tâche d'étiquetage en streaming.

Le cas échéant, vous pouvez spécifier une rubrique de sortie Amazon SNS. Chaque fois qu'un employé soumet un objet étiqueté, une notification contenant les données en sortie est envoyée à cette rubrique. Vous pouvez abonner un point de terminaison à votre rubrique de sortie SNS pour recevoir des notifications ou déclencher des événements lorsque vous recevez des données de sortie d'une tâche d'étiquetage. Utilisez une rubrique de sortie Amazon SNS si vous souhaitez effectuer un chaînage en temps réel à une autre tâche en streaming et recevoir des notifications Amazon SNS chaque fois qu'un objet de données est envoyé par un employé.

Pour en savoir plus, consultez Abonner un point de terminaison à votre rubrique de sortie Amazon SNS.

Gestion des messages en double

Pour les objets de données envoyés en temps réel, Ground Truth garantit qu'ils restent idempotents en s'assurant que chaque objet unique n'est envoyé pour l'étiquetage qu'une seule fois, même si le message d'entrée faisant référence à cet objet est reçu plusieurs fois (messages dupliqués). Pour ce faire, chaque objet de données envoyé à une tâche d'étiquetage en streaming se voit attribuer un ID de déduplication, qui est identifié par une clé de déduplication.

Si vous envoyez vos demandes d'étiquetage d'objets de données directement via votre rubrique d'entrée Amazon SNS à l'aide de messages Amazon SNS, vous pouvez choisir une clé de déduplication personnalisée et des ID de déduplication pour vos objets. Pour de plus amples informations, veuillez consulter . Spécifier une clé et un ID de déduplication dans un message Amazon SNS.

Si vous ne fournissez pas votre propre clé de déduplication, ou si vous utilisez la configuration Amazon S3 pour envoyer des objets de données à votre tâche d'étiquetage, Ground Truth utilise l'un des éléments suivants pour l'ID de déduplication :

  • Pour les messages envoyés directement à votre rubrique d'entrée Amazon SNS, Ground Truth utilise l'ID de message SNS.

  • Pour les messages provenant d'une configuration Amazon S3, Ground Truth crée un ID de déduplication en combinant l'URI Amazon S3 de l'objet avec le jeton séquenceur dans le message.

Spécifier une clé et un ID de déduplication dans un message Amazon SNS

Lorsque vous envoyez un objet de données à votre tâche d'étiquetage en streaming à l'aide d'un message Amazon SNS, vous avez la possibilité de spécifier votre clé de déduplication et votre ID de déduplication de l'une des manières suivantes. Dans tous ces scénarios, identifiez votre clé de déduplication avec dataset-objectid-attribute-name.

Apporter vos propres ID et clé de déduplication

Créez vos propres ID et clé de déduplication en configurant votre message Amazon SNS comme suit. Remplacez byo-key par votre clé et UniqueId par l'ID de déduplication de cet objet de données.

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"byo-key", "byo-key":"UniqueId" }

La clé de déduplication peut contenir jusqu'à 140 caractères. Les modèles pris en charge sont les suivants : "^[$a-zA-Z0-9](-*[a-zA-Z0-9])*".

Votre ID de déduplication peut contenir jusqu'à 1 024 caractères. Les modèles pris en charge sont les suivants : ^(https|s3)://([^/]+)/?(.*)$.

Utiliser une clé existante pour votre clé de déduplication

Vous pouvez utiliser une clé existante dans votre message comme clé de déduplication. Lorsque vous effectuez cette opération, la valeur associée à cette clé est utilisée pour l'ID de déduplication.

Par exemple, vous pouvez utiliser source-ref comme clé de déduplication en formatant votre message comme suit :

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"source-ref" }

Dans cet exemple, Ground Truth utilise "s3://bucket/prefix/object1" pour l'ID de déduplication.

Trouver la clé et l'ID de déduplication dans vos données de sortie

Vous pouvez voir la clé et l'ID de déduplication dans vos données de sortie. La clé de déduplication est identifiée par dataset-objectid-attribute-name.

Lorsque vous utilisez votre propre clé de déduplication personnalisée, votre sortie contient quelque chose de similaire à ce qui suit :

"dataset-objectid-attribute-name": "byo-key", "byo-key": "UniqueId",

Lorsque vous ne spécifiez pas de clé, vous pouvez trouver l'ID de déduplication que Ground Truth a attribué à votre objet de données comme suit. Le paramètre $label-attribute-name-object-id identifie votre ID de déduplication.

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"$label-attribute-name-object-id" "label-attribute-name" :0, "label-attribute-name-metadata": {...}, "$label-attribute-name-object-id":"<service-generated-key>" }

Pour <service-generated-key>, si l'objet de données est provient d'une configuration Amazon S3, Ground Truth ajoute une valeur unique utilisée par le service et émet un nouveau champ clé par $sequencer qui montre le séquenceur Amazon S3 utilisé. Si l'objet a été envoyé directement à SNS, Ground Truth utilise l'ID de message SNS.

Note

N'utilisez pas le $ dans votre nom d'attribut d'étiquette.