Créez un pipeline de classification avec la classification personnalisée d’Amazon Comprehend (Partie I)

Pipeline classification avec classification personnalisée Amazon Comprehend (Partie I)

« Les données stockées dans du texte, de l’audio, des médias sociaux et d’autres sources non structurées peuvent être un avantage compétitif pour les entreprises qui savent comment les utiliser »

Seulement 18% des organisations interrogées lors d’une enquête réalisée par Deloitte en 2019 ont déclaré pouvoir tirer parti des données non structurées. La majorité des données, entre 80% et 90%, sont des données non structurées. C’est une ressource inexploitée qui a le potentiel de donner aux entreprises un avantage concurrentiel si elles parviennent à comprendre comment l’utiliser. Il peut être difficile de trouver des informations à partir de ces données, en particulier si des efforts sont nécessaires pour les classer, les étiqueter ou les annoter. La classification personnalisée d’Amazon Comprehend peut être utile dans cette situation. Amazon Comprehend est un service de traitement du langage naturel (NLP) qui utilise l’apprentissage automatique pour découvrir des informations précieuses et des liens dans le texte.

La catégorisation ou la classification des documents présente des avantages significatifs dans tous les domaines d’activité :

  • Amélioration de la recherche et de la récupération – En classifiant les documents en fonction des sujets ou des catégories pertinents, il est beaucoup plus facile pour les utilisateurs de rechercher et de récupérer les documents dont ils ont besoin. Ils peuvent effectuer des recherches dans des catégories spécifiques pour affiner les résultats.
  • Gestion des connaissances – La catégorisation systématique des documents permet d’organiser la base de connaissances d’une organisation. Cela facilite la recherche d’informations pertinentes et la mise en évidence des liens entre les contenus connexes.
  • Optimisation des flux de travail – Le tri automatique des documents peut aider à rationaliser de nombreux processus métier tels que le traitement des factures, le support client ou la conformité réglementaire. Les documents peuvent être automatiquement acheminés vers les bonnes personnes ou les bons flux de travail.
  • Économies de coûts et de temps – La catégorisation manuelle des documents est fastidieuse, prend du temps et coûte cher. Les techniques d’intelligence artificielle peuvent prendre en charge cette tâche fastidieuse et classer des milliers de documents en peu de temps et à moindre coût.
  • Génération d’informations – L’analyse des tendances dans les catégories de documents peut fournir des informations commerciales utiles. Par exemple, une augmentation des plaintes clients dans une catégorie de produits pourrait signifier des problèmes qui doivent être résolus.
  • Gouvernance et application des politiques – La mise en place de règles de catégorisation des documents permet de s’assurer que les documents sont classés correctement selon les politiques et les normes de gouvernance d’une organisation. Cela permet une meilleure surveillance et un meilleur audit.
  • Expériences personnalisées – Dans des contextes tels que le contenu d’un site web, la catégorisation des documents permet de montrer du contenu personnalisé aux utilisateurs en fonction de leurs intérêts et de leurs préférences, déterminés à partir de leur comportement de navigation. Cela peut augmenter l’engagement des utilisateurs.

La complexité du développement d’un modèle d’apprentissage automatique de classification sur mesure varie en fonction de différents aspects tels que la qualité des données, l’algorithme, la capacité de mise à l’échelle et les connaissances du domaine, pour n’en mentionner que quelques-uns. Il est essentiel de commencer par une définition claire du problème, des données propres et pertinentes, et de progresser progressivement dans les différentes étapes du développement du modèle. Cependant, les entreprises peuvent créer leurs propres modèles d’apprentissage automatique uniques en utilisant la classification personnalisée d’Amazon Comprehend pour classer automatiquement les documents textuels en catégories ou en tags, afin de répondre aux exigences spécifiques de l’entreprise et de les mettre en correspondance avec les catégories technologiques et documentaires de l’entreprise. Comme le marquage ou la catégorisation humaine n’est plus nécessaire, cela permet aux entreprises de gagner beaucoup de temps, d’argent et de main-d’œuvre. Nous avons simplifié ce processus en automatisant l’ensemble du pipeline de formation.

Dans la première partie de ce billet de blog en plusieurs parties, vous apprendrez comment créer un pipeline de formation évolutif et préparer les données d’entraînement pour les modèles de classification personnalisée de Comprehend. Nous présenterons un pipeline de formation de classification sur mesure qui peut être déployé dans votre compte AWS en quelques clics. Nous utilisons l’ensemble de données de nouvelles de la BBC et nous allons former un classificateur pour identifier la classe (par exemple, la politique, le sport) à laquelle appartient un document. Le pipeline permettra à votre organisation de réagir rapidement aux changements et de former de nouveaux modèles sans avoir à repartir de zéro à chaque fois. Vous pouvez facilement mettre à l’échelle et former plusieurs modèles en fonction de votre demande.

Prérequis

  • Un compte AWS actif (Cliquez ici pour créer un nouveau compte AWS)
  • Accès à Amazon Comprehend, Amazon S3, Amazon Lambda, Amazon Step Function, Amazon SNS et Amazon CloudFormation
  • Données d’entraînement (semi-structurées ou textuelles) préparées dans la section suivante
  • Connaissance de base de Python et de l’apprentissage automatique en général

Préparer les données d’entraînement

Cette solution peut prendre en entrée un format texte (par exemple, CSV) ou un format semi-structuré (par exemple, PDF).

Entrée texte

La classification personnalisée d’Amazon Comprehend prend en charge deux modes : multi-classe et multi-étiquette.

En mode multi-classe, chaque document peut se voir attribuer une et une seule classe. Les données d’entraînement doivent être préparées sous la forme d’un fichier CSV à deux colonnes, chaque ligne du fichier contenant une seule classe et le texte d’un document qui illustre la classe.

CLASS, Texte du document 1
CLASS, Texte du document 2
...

Exemple pour l’ensemble de données des actualités BBC :

Business, L'Europe blâme les États-Unis pour le dollar faible...
Tech, Les taxis collectent une montagne de téléphones portables...
...

En mode multi-étiquettes, chaque document a au moins une classe qui lui est assignée, mais peut en avoir plusieurs. Les données d’entraînement doivent être sous la forme d’un fichier CSV à deux colonnes, chaque ligne du fichier contenant une ou plusieurs classes et le texte du document d’entraînement. Plus d’une classe doit être indiquée en utilisant un délimiteur entre chaque classe.

CLASS, Texte du document 1
CLASS|CLASS|CLASS, Texte du document 2
...

Aucun en-tête ne doit être inclus dans le fichier CSV pour l’un ou l’autre des modes d’entraînement.

Entrée semi-structurée

À partir de 2023, Amazon Comprehend prend désormais en charge la formation de modèles à l’aide de documents semi-structurés. Les données d’entraînement pour une entrée semi-structurée sont composées d’un ensemble de documents étiquetés, qui peuvent être des documents pré-identifiés provenant d’un référentiel de documents auquel vous avez déjà accès. Voici un exemple de fichier CSV d’annotations requis pour la formation (données d’échantillon) :

CLASS, document1.pdf, 1
CLASS, document1.pdf, 2
...

Le fichier CSV d’annotations contient trois colonnes : la première colonne contient l’étiquette du document, la deuxième colonne est le nom du document (c’est-à-dire le nom du fichier), et la dernière colonne est le numéro de la page du document que vous souhaitez inclure dans l’ensemble de données d’entraînement. Dans la plupart des cas, si le fichier CSV d’annotations se trouve dans le même dossier que tous les autres documents, il vous suffit de spécifier le nom du document dans la deuxième colonne. Cependant, si le fichier CSV est situé à un emplacement différent, vous devrez spécifier le chemin d’accès à l’emplacement dans la deuxième colonne, par exemple chemin/vers/préfixe/document1.pdf.

Pour plus de détails sur la préparation de vos données d’entraînement, veuillez vous référer à ici.

Aperçu de la solution

  1. Le pipeline de formation d’Amazon Comprehend démarre lorsque les données d’entraînement (fichier .csv pour l’entrée texte et fichier .csv d’annotations pour l’entrée semi-structurée) sont téléchargées dans un compartiment Amazon Simple Storage Service (Amazon S3) dédié.
  2. Une fonction AWS Lambda est invoquée par le déclencheur Amazon S3 de sorte que chaque fois qu’un objet est téléchargé à l’emplacement Amazon S3 spécifié, la fonction AWS Lambda récupère le nom du compartiment source et le nom de la clé de l’objet téléchargé et les transmet au flux de travail de l’étape de formation.
  3. Dans le flux de travail de l’étape de formation, après avoir reçu les noms de compartiment et de clé d’objet des données d’entraînement en tant que paramètres d’entrée, un flux de travail de formation de modèle personnalisé est lancé sous la forme d’une série de fonctions Lambda, comme décrit ci-dessous :
    1. StartComprehendTraining : Cette fonction AWS Lambda définit un objet ComprehendClassifier en fonction du type de fichiers d’entrée (c’est-à-dire texte ou semi-structuré), puis lance une tâche de formation de classification personnalisée Amazon Comprehend en appelant l’API create_document_classifier, qui renvoie un ARN de tâche de formation. Ensuite, cette fonction vérifie l’état de la tâche de formation en invoquant l’API describe_document_classifier. Enfin, elle renvoie un ARN de tâche de formation et l’état de la tâche, en tant que sortie pour l’étape suivante du flux de travail de formation.
    2. GetTrainingJobStatus : Cette fonction AWS Lambda vérifie l’état de la tâche de formation toutes les 15 minutes, en appelant l’API describe_document_classifier, jusqu’à ce que l’état de la tâche de formation passe à Terminé ou Échec.
    3. GenerateMultiClass ou GenerateMultiLabel : Si vous sélectionnez oui pour le rapport de performance lors du lancement de la pile, l’une de ces deux fonctions AWS Lambda exécutera une analyse en fonction des sorties du modèle Amazon Comprehend, ce qui génère une analyse des performances par classe et l’enregistre dans Amazon S3.
    4. GenerateMultiClass : Cette fonction AWS Lambda sera appelée si votre entrée est MultiClass et que vous sélectionnez oui pour le rapport de performance.
    5. GenerateMultiLabel : Cette fonction AWS Lambda sera appelée si votre entrée est MultiLabel et que vous sélectionnez oui pour le rapport de performance.
  4. Une fois la formation terminée avec succès, la solution génère les sorties suivantes :
    1. Modèle de classification personnalisé : Un ARN de modèle entraîné sera disponible dans votre compte pour des travaux d’inférence ultérieurs.
    2. Matrice de confusion [Optionnel] : Une matrice de confusion (confusion_matrix.json) sera disponible dans le chemin de sortie Amazon S3 défini par l’utilisateur, en fonction de la sélection de l’utilisateur.
    3. Notification Amazon Simple Notification Service [Optionnel] : Un e-mail de notification sur l’état de la tâche de formation sera envoyé aux abonnés, en fonction de la sélection initiale de l’utilisateur.

Guide pas à pas

Lancement de la solution

Pour déployer votre pipeline, suivez les étapes suivantes :

  1. Choisissez le bouton Lancer la pile :

  1. Choisissez Suivant

  1. Spécifiez les détails du pipeline avec les options correspondant à votre cas d’utilisation :

Informations pour chaque détail de la pile :

  • Nom de la pile (obligatoire) – le nom que vous avez spécifié pour cette pile AWS CloudFormation. Le nom doit être unique dans la région dans laquelle vous la créez.
  • Nom du seau Q01ClassifierInputBucketName (obligatoire) – Le nom du seau Amazon S3 pour stocker vos données d’entrée. Il doit s’agir d’un nom unique à l’échelle mondiale et la pile AWS CloudFormation vous aide à créer le seau pendant son lancement.
  • Nom du seau Q02ClassifierOutputBucketName (obligatoire) – Le nom du seau Amazon S3 pour stocker les sorties d’Amazon Comprehend et du pipeline. Il doit également s’agir d’un nom unique à l’échelle mondiale.
  • Q03InputFormat – Une sélection déroulante, vous pouvez choisir texte (si vos données d’entraînement sont des fichiers csv) ou semi-structure (si vos données d’entraînement sont semi-structurées [par exemple, des fichiers PDF]) en fonction de votre format d’entrée de données.
  • Q04Language – Une sélection déroulante, choisissez la langue des documents dans la liste prise en charge. Veuillez noter que seule l’anglais est actuellement pris en charge si votre format d’entrée est semi-structuré.
  • Q05MultiClass – Une sélection déroulante, sélectionnez oui si votre entrée est en mode MultiClass. Sinon, sélectionnez non.
  • Q06LabelDelimiter – Uniquement requis si votre réponse à Q05MultiClass est non. Ce délimiteur est utilisé dans vos données d’entraînement pour séparer chaque classe.
  • Q07ValidationDataset – Une sélection déroulante, changez la réponse en oui si vous souhaitez tester les performances du classificateur entraîné avec vos propres données de test.
  • Q08S3ValidationPath – Uniquement requis si votre réponse à Q07ValidationDataset est oui.
  • Q09PerformanceReport – Une sélection déroulante, sélectionnez oui si vous souhaitez générer le rapport de performance au niveau des classes après l’entraînement du modèle. Le rapport sera enregistré dans le seau de sortie spécifié dans Q02ClassifierOutputBucketName.
  • Q10EmailNotification – Une sélection déroulante. Sélectionnez oui si vous souhaitez recevoir une notification après que le modèle soit entraîné.
  • Q11EmailID – Entrez une adresse e-mail valide pour recevoir une notification de rapport de performance. Veuillez noter que vous devez confirmer l’abonnement à partir de votre e-mail après le lancement de la pile AWS CloudFormation, avant de pouvoir recevoir une notification lorsque l’entraînement est terminé.
  1. Dans la section Amazon Configure stack options, ajoutez des balises optionnelles, des autorisations et d’autres paramètres avancés.

  1. Choisissez Suivant
  2. Revoyez les détails de la pile et sélectionnez J’accepte qu’AWS CloudFormation puisse créer des ressources IAM AWS.

  1. Choisissez Envoyer. Cela lance le déploiement du pipeline dans votre compte AWS.
  2. Une fois que la pile est déployée avec succès, vous pouvez commencer à utiliser le pipeline. Créez un dossier /training-data sous votre emplacement Amazon S3 spécifié pour les données d’entrée. Remarque : Amazon S3 applique automatiquement le chiffrement côté serveur (SSE-S3) pour chaque nouvel objet, sauf si vous spécifiez une autre option de chiffrement. Veuillez consulter la protection des données dans Amazon S3 pour plus de détails sur la protection des données et le chiffrement dans Amazon S3.

  1. Téléchargez vos données d’entraînement dans le dossier. (Si les données d’entraînement sont semi-structurées, téléchargez d’abord tous les fichiers PDF avant de télécharger les informations d’étiquettes au format .csv).

Vous avez terminé ! Vous avez déployé avec succès votre pipeline et vous pouvez vérifier l’état du pipeline dans la fonction d’étape déployée. (Vous aurez un modèle entraîné dans votre panneau de classification personnalisée Amazon Comprehend).

Si vous choisissez le modèle et sa version à l’intérieur de la console Amazon Comprehend, vous pouvez maintenant voir plus de détails sur le modèle que vous venez d’entraîner. Cela inclut le mode que vous avez sélectionné, qui correspond à l’option Q05MultiClass, le nombre d’étiquettes et le nombre de documents d’entraînement et de test dans vos données d’entraînement. Vous pouvez également vérifier les performances globales ci-dessous ; cependant, si vous souhaitez vérifier les performances détaillées pour chaque classe, veuillez vous référer au rapport de performance généré par le pipeline déployé.

Quotas de service

Votre compte AWS dispose de quotas par défaut pour Amazon Comprehend et AmazonTextract, si les entrées sont au format semi-structuré. Pour consulter les quotas de service, veuillez vous référer ici pour Amazon Comprehend et ici pour AmazonTextract.

Nettoyage

Pour éviter des frais continus, supprimez les ressources que vous avez créées dans le cadre de cette solution lorsque vous avez terminé.

  1. Sur la console Amazon S3, supprimez manuellement le contenu des compartiments que vous avez créés pour les données d’entrée et de sortie.
  2. Sur la console AWS CloudFormation, choisissez Stacks dans le volet de navigation.
  3. Sélectionnez la pile principale et choisissez Supprimer.

Cela supprime automatiquement la pile déployée.

  1. Votre modèle de classification personnalisé Amazon Comprehend entraîné restera dans votre compte. Si vous n’en avez plus besoin, dans la console Amazon Comprehend, supprimez le modèle créé.

Conclusion

Dans cet article, nous vous avons montré le concept d’un pipeline d’entraînement scalable pour les modèles de classification personnalisée Amazon Comprehend et fourni une solution automatisée pour l’entraînement efficace de nouveaux modèles. Le modèle de formation AWS CloudFormation fourni vous permet de créer vos propres modèles de classification de texte sans effort, en répondant à l’échelle de la demande. La solution adopte la fonctionnalité Euclid récemment annoncée et accepte les entrées au format texte ou semi-structuré.

Maintenant, nous vous encourageons, chers lecteurs, à tester ces outils. Vous pouvez trouver plus de détails sur la préparation des données d’entraînement et comprendre les métriques du classificateur personnalisé. Essayez-le et voyez par vous-même comment il peut rationaliser votre processus de formation de modèle et améliorer l’efficacité. Veuillez nous faire part de vos commentaires !

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Découvrez l'Advanced Reasoning Benchmark (ARB) un nouveau benchmark pour évaluer les grands modèles de langage.

Le traitement du langage naturel a connu une évolution significative ces dernières années, notamment avec la création...

AI

ChatGPT se donne des lois pour se réguler lui-même

Le Costa Rica a franchi une étape intéressante dans la réglementation de l’intelligence artificielle (IA) en se...

AI

Rencontrez DiffComplete une méthode d'IA intéressante qui peut compléter des objets 3D à partir de formes incomplètes

La complétion de forme sur les balayages 3D de plage est une tâche difficile qui consiste à inférer des formes 3D com...

AI

Découvrez les Fellows Accenture de 2023-24

L'Initiative de Convergence MIT et Accenture pour l'Industrie et la Technologie annonce les boursiers diplômés de 202...

AI

Robot parlant Notre nouveau modèle d'IA traduit la vision et le langage en actions robotiques.

Google DeepMind présente un nouveau modèle de vision-langage-action pour améliorer la robotique.

AI

Spotify adopte l'IA des listes de lecture personnalisées aux annonces audio

La plateforme de streaming de musique populaire, Spotify, est à la pointe de la technologie, explorant continuellemen...