Les conversations en ligne sont omniprésentes dans la vie moderne, couvrant des secteurs allant des jeux vidéo aux télécommunications. Cela a conduit à une croissance exponentielle de la quantité de données de conversation en ligne, ce qui a contribué au développement de systèmes de traitement du langage naturel (NLP) à la pointe de la technologie, tels que les chatbots et les modèles de génération de langage naturel (NLG). Au fil du temps, diverses techniques de PNL pour l'analyse de texte ont également évolué. Cela nécessite l'exigence d'un service entièrement géré qui peut être intégré dans des applications à l'aide d'appels d'API sans avoir besoin d'une expertise approfondie en apprentissage automatique (ML). AWS propose des services d'IA AWS préformés tels que Amazon comprendre, qui peut gérer efficacement les cas d'utilisation de la PNL impliquant la classification, la synthèse de texte, la reconnaissance d'entités, etc. pour recueillir des informations à partir de texte.
De plus, les conversations en ligne ont conduit à un phénomène répandu d'utilisation non traditionnelle de la langue. Les techniques traditionnelles de PNL fonctionnent souvent mal sur ces données textuelles en raison des vocabulaires en constante évolution et spécifiques au domaine qui existent sur différentes plates-formes, ainsi que des déviations lexicales importantes des mots par rapport à l'anglais approprié, soit par accident, soit intentionnellement comme une forme d'attaque contradictoire. .
Dans cet article, nous décrivons plusieurs approches ML pour la classification textuelle des conversations en ligne avec les outils et services disponibles sur AWS.
Pré-requis
Avant d'approfondir ce cas d'utilisation, veuillez remplir les conditions préalables suivantes :
- Mettre en place un Compte AWS ainsi que créer un utilisateur IAM.
- Mettre en place le CLI AWS ainsi que SDK AWS.
- (Facultatif) Configurez votre Environnement IDE Cloud9.
Ensemble de données
Pour cet article, nous utilisons le Jigsaw Biais involontaires dans l'ensemble de données de classification de la toxicité, une référence pour le problème spécifique de la classification de la toxicité dans les conversations en ligne. L'ensemble de données fournit des étiquettes de toxicité ainsi que plusieurs attributs de sous-groupes tels que obscène, attaque d'identité, insulte, menace et sexuellement explicite. Les étiquettes sont fournies sous forme de valeurs fractionnaires, qui représentent la proportion d'annotateurs humains qui croyaient que l'attribut s'appliquait à un morceau de texte donné, qui sont rarement unanimes. Pour générer des étiquettes binaires (par exemple, toxique ou non toxique), un seuil de 0.5 est appliqué aux valeurs fractionnaires, et les commentaires avec des valeurs supérieures au seuil sont traités comme la classe positive pour cette étiquette.
Incorporation de sous-mots et RNN
Pour notre première approche de modélisation, nous utilisons une combinaison d'incorporation de sous-mots et de réseaux de neurones récurrents (RNN) pour former des modèles de classification de texte. Les intégrations de sous-mots ont été introduites par Bojanowski et al. en 2017 comme une amélioration par rapport aux méthodes précédentes d'intégration au niveau du mot. Les modèles de saut de gramme Word2Vec traditionnels sont formés pour apprendre une représentation vectorielle statique d'un mot cible qui prédit de manière optimale le contexte de ce mot. Les modèles de sous-mots, quant à eux, représentent chaque mot cible comme un sac de n-grammes de caractères qui composent le mot, où un n-gramme est composé d'un ensemble de n caractères consécutifs. Cette méthode permet au modèle d'incorporation de mieux représenter la morphologie sous-jacente des mots apparentés dans le corpus ainsi que le calcul des incorporations pour les nouveaux mots hors vocabulaire (OOV). Ceci est particulièrement important dans le contexte des conversations en ligne, un espace problématique dans lequel les utilisateurs mal orthographient souvent les mots (parfois intentionnellement pour échapper à la détection) et utilisent également un vocabulaire unique en constante évolution qui pourrait ne pas être capturé par un corpus de formation général.
Amazon Sage Maker facilite la formation et l'optimisation d'un modèle d'intégration de sous-mots non supervisé sur votre propre corpus de données textuelles spécifiques à un domaine avec la fonction intégrée Algorithme BlazingText. Nous pouvons également télécharger des modèles à usage général existants formés sur de grands ensembles de données de texte en ligne, tels que les suivants Modèles en anglais disponibles directement à partir de fastText. À partir de votre instance de bloc-notes SageMaker, exécutez simplement ce qui suit pour télécharger un modèle fastText pré-entraîné :
Que vous ayez entraîné vos propres incorporations avec BlazingText ou téléchargé un modèle pré-entraîné, le résultat est un modèle binaire compressé que vous pouvez utiliser avec la bibliothèque gensim pour incorporer un mot cible donné en tant que vecteur basé sur ses sous-mots constitutifs :
Après avoir prétraité un segment de texte donné, nous pouvons utiliser cette approche pour générer une représentation vectorielle pour chacun des mots constitutifs (séparés par des espaces). Nous utilisons ensuite SageMaker et un cadre d'apprentissage en profondeur tel que PyTorch pour former un RNN personnalisé avec un objectif de classification binaire ou multiétiquette pour prédire si le texte est toxique ou non et le sous-type spécifique de toxicité basé sur des exemples de formation étiquetés.
Pour télécharger votre texte prétraité sur Service de stockage simple Amazon (Amazon S3), utilisez le code suivant :
Pour lancer une formation de modèle multi-GPU évolutive avec SageMaker, saisissez le code suivant :
Dans , nous définissons un jeu de données PyTorch qui est utilisé par train.py
pour préparer les données textuelles pour la formation et l'évaluation du modèle :
Notez que ce code anticipe que le vectors.zip
fichier contenant vos intégrations fastText ou BlazingText sera stocké dans .
De plus, vous pouvez facilement déployer seuls des modèles FastText pré-entraînés sur des points de terminaison SageMaker actifs pour calculer à la volée des vecteurs d'intégration à utiliser dans des tâches pertinentes au niveau du mot. Voir ce qui suit Exemple GitHub pour plus de détails.
Transformateurs avec visage étreignant
Pour notre deuxième approche de modélisation, nous passons à l'utilisation de Transformers, introduite dans l'article L'attention est tout ce dont vous avez besoin. Les transformateurs sont des modèles d'apprentissage en profondeur conçus pour éviter délibérément les pièges des RNN en s'appuyant sur un mécanisme d'auto-attention pour établir des dépendances globales entre l'entrée et la sortie. L'architecture du modèle Transformer permet une parallélisation nettement meilleure et peut atteindre des performances élevées en un temps de formation relativement court.
S'appuyant sur le succès de Transformers, BERT, présenté dans l'article BERT: Pré-formation de transformateurs bidirectionnels profonds pour la compréhension du langage, ajout d'une pré-formation bidirectionnelle pour la représentation du langage. Inspiré de la tâche Cloze, BERT est pré-formé avec la modélisation de langage masqué (MLM), dans laquelle le modèle apprend à récupérer les mots originaux pour des jetons masqués de manière aléatoire. Le modèle BERT est également pré-entraîné sur la tâche de prédiction de phrase suivante (NSP) pour prédire si deux phrases sont dans le bon ordre de lecture. Depuis son avènement en 2018, le BERT et ses variantes ont été largement utilisés dans les tâches de classification de texte.
Notre solution utilise une variante de BERT connue sous le nom de RoBERTa, qui a été introduite dans l'article RoBERTa: une approche de pré-formation BERT fortement optimisée. RoBERTa améliore encore les performances du BERT sur une variété de tâches en langage naturel grâce à une formation de modèle optimisée, y compris des modèles de formation plus longs sur un corpus 10 fois plus grand, en utilisant des hyperparamètres optimisés, un masquage aléatoire dynamique, la suppression de la tâche NSP, etc.
Nos modèles basés sur RoBERTa utilisent le Transformateurs de visage étreignant bibliothèque, qui est un framework Python open source populaire qui fournit des implémentations de haute qualité de toutes sortes de modèles Transformer de pointe pour une variété de tâches NLP. Hugging Face s'est associé à AWS pour vous permettre de former et de déployer facilement des modèles Transformer sur SageMaker. Cette fonctionnalité est disponible via Images du conteneur d'apprentissage en profondeur d'AWS, qui incluent les bibliothèques Transformers, Tokenizers et Datasets, et une intégration optimisée avec SageMaker pour la formation et l'inférence de modèles.
Dans notre implémentation, nous héritons de l'ossature de l'architecture RoBERTa du framework Hugging Face Transformers et utilisons SageMaker pour former et déployer notre propre modèle de classification de texte, que nous appelons RoBERTox. RoBERTox utilise le codage par paires d'octets (BPE), introduit dans Traduction automatique neuronale de mots rares avec des unités de sous-mots, pour segmenter le texte d'entrée en représentations de sous-mots. Nous pouvons ensuite former nos modèles et tokenizers sur les données Jigsaw ou sur tout corpus volumineux spécifique à un domaine (tel que les journaux de discussion d'un jeu spécifique) et les utiliser pour une classification de texte personnalisée. Nous définissons notre classe de modèle de classification personnalisée dans le code suivant :
Avant la formation, nous préparons nos données textuelles et nos étiquettes à l'aide de la bibliothèque d'ensembles de données de Hugging Face et téléchargeons le résultat sur Amazon S3 :
Nous lançons la formation du modèle de la même manière que le RNN :
Enfin, l'extrait de code Python suivant illustre le processus de diffusion de RoBERTox via un point de terminaison SageMaker en direct pour la classification de texte en temps réel pour une requête JSON :
Évaluation des performances du modèle : ensemble de données Jigsaw sur les biais involontaires
Le tableau suivant contient des métriques de performance pour les modèles entraînés et évalués sur les données du concours Jigsaw Unintended Bias in Toxicity Detection Kaggle. Nous avons formé des modèles pour trois tâches différentes mais interdépendantes :
- Cas binaire – Le modèle a été entraîné sur l'ensemble de données d'entraînement complet pour prédire la
toxicity
étiquette seulement - Boîtier à grain fin – Le sous-ensemble des données d'apprentissage pour lequel
toxicity>=0.5
a été utilisé pour prédire d'autres étiquettes de sous-types de toxicité (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Mallette multitâche – L'ensemble de données de formation complet a été utilisé pour prédire simultanément les six étiquettes
Nous avons formé les modèles RNN et RoBERTa pour chacune de ces trois tâches en utilisant les étiquettes fractionnaires fournies par Jigsaw, qui correspondent à la proportion d'annotateurs qui pensaient que l'étiquette était appropriée pour le texte, ainsi qu'avec des étiquettes binaires combinées avec des poids de classe dans le réseau. fonction de perte. Dans le schéma d'étiquetage binaire, les proportions ont été seuillées à 0.5 pour chaque étiquette disponible (1 si étiquette> = 0.5, 0 sinon), et les fonctions de perte du modèle ont été pondérées en fonction des proportions relatives de chaque étiquette binaire dans l'ensemble de données d'apprentissage. Dans tous les cas, nous avons constaté que l'utilisation directe des étiquettes fractionnaires entraînait les meilleures performances, indiquant la valeur ajoutée de l'information inhérente au degré d'accord entre les annotateurs.
Nous affichons deux métriques de modèle : la précision moyenne (AP), qui fournit un résumé de la courbe précision-rappel en calculant la moyenne pondérée des valeurs de précision obtenues à chaque seuil de classification, et l'aire sous la courbe caractéristique de fonctionnement du récepteur (AUC) , qui agrège les performances du modèle à travers les seuils de classification en ce qui concerne le taux de vrais positifs et le taux de faux positifs. Notez que la vraie classe pour une instance de texte donnée dans l'ensemble de test correspond au fait que la vraie proportion est supérieure ou égale à 0.5 (1 si label>=0.5, 0 sinon).
. | Incorporation de sous-mots + RNN | ROBERTa | ||
. | Étiquettes fractionnaires | Étiquettes binaires + pondération de classe | Étiquettes fractionnaires | Étiquettes binaires + pondération de classe |
binaire | PA=0.746, ASC = 0.966 | PA = 0.730, ASC = 0.963 | PA = 0.758, ASC = 0.966 | PA = 0.747, ASC = 0.963 |
À grain fin | PA = 0.906, ASC = 0.909 | PA = 0.850, ASC = 0.851 | PA = 0.913, ASC = 0.913 | PA = 0.911, ASC = 0.912 |
Multitâche | PA=0.721, ASC = 0.972 | PA = 0.535, ASC = 0.907 | PA = 0.740, ASC = 0.972 | PA = 0.711, ASC = 0.961 |
Conclusion
Dans cet article, nous avons présenté deux approches de classification de texte pour les conversations en ligne à l'aide des services AWS ML. Vous pouvez généraliser ces solutions sur toutes les plateformes de communication en ligne, avec des industries telles que les jeux particulièrement susceptibles de bénéficier d'une meilleure capacité à détecter les contenus préjudiciables. Dans les prochains articles, nous prévoyons de discuter plus en détail d'une architecture de bout en bout pour un déploiement transparent des modèles dans votre compte AWS.
Si vous souhaitez de l'aide pour accélérer votre utilisation du ML dans vos produits et processus, veuillez contacter le Laboratoire de solutions Amazon ML.
À propos des auteurs
Marque Ryan est Data Scientist au sein du laboratoire de solutions Amazon Machine Learning. Il a une expérience spécifique de l'application de l'apprentissage automatique à des problèmes de santé et des sciences de la vie, et pendant son temps libre, il aime lire l'histoire et la science-fiction.
Sourav Bhabesh est Data Scientist au Amazon ML Solutions Lab. Il développe des solutions AI/ML pour les clients AWS dans divers secteurs. Sa spécialité est le traitement automatique du langage naturel (TAL) et il est passionné par l'apprentissage en profondeur. En dehors du travail, il aime lire et voyager.
Liutong Zhou est scientifique appliquée au Amazon ML Solutions Lab. Il crée des solutions d'IA/ML sur mesure pour les clients AWS dans divers secteurs. Il est spécialisé dans le traitement du langage naturel (TAL) et est passionné par l'apprentissage profond multimodal. Il est ténor lyrique et aime chanter des opéras en dehors du travail.
Sia Gholami est Senior Data Scientist au Amazon ML Solutions Lab, où il conçoit des solutions d'IA/ML pour des clients de divers secteurs. Il est passionné par le traitement du langage naturel (TAL) et l'apprentissage en profondeur. En dehors du travail, Sia aime passer du temps dans la nature et jouer au tennis.
Daniel Horowitz est un responsable des sciences appliquées de l'IA. Il dirige une équipe de scientifiques du laboratoire de solutions Amazon ML qui travaille à résoudre les problèmes des clients et à favoriser l'adoption du cloud avec ML.
- Coinsmart. Le meilleur échange Bitcoin et Crypto d'Europe.
- Platoblockchain. Intelligence métaverse Web3. Connaissance amplifiée. ACCÈS LIBRE.
- CryptoHawk. Radar Altcoins. Essai gratuit.
- Source : https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- capacité
- Qui sommes-nous ?
- accélérer
- Compte
- atteindre
- atteint
- à travers
- ajoutée
- Adoption
- contrat
- AI
- Services d'IA
- Tous
- permet
- Amazon
- montant
- selon une analyse de l’Université de Princeton
- api
- applications
- appliqué
- Appliquer
- Application
- une approche
- approches
- approprié
- architecture
- Réservé
- attributs
- disponibles
- moyen
- AWS
- sac
- référence
- profiter
- LES MEILLEURS
- Améliorée
- jusqu'à XNUMX fois
- plus gros
- Livres
- construit
- intégré
- Appelez-nous
- maisons
- cas
- caractères
- classe
- classification
- le cloud
- code
- combinaison
- combiné
- commentaires
- Communication
- concurrence
- complet
- composé
- calcul
- calcul
- informatique
- consécutif
- constamment
- contact
- Contenant
- contient
- contenu
- Conversation
- conversations
- engendrent
- courbe
- Customiser
- des clients
- Clients
- données
- Data Scientist
- profond
- déployer
- déploiement
- décrire
- un
- détails
- Détection
- Déterminer
- Développement
- différent
- Dimension
- directement
- discuter
- Commande
- download
- motivation
- pendant
- Dynamic
- chacun
- même
- de manière efficace
- permettre
- end-to-end
- Endpoint
- Anglais
- Entrer
- entité
- évaluation
- évolution
- exemple
- exemples
- existant
- Découvrez
- nous a permis de concevoir
- les
- Visage
- Mode
- Fiction
- Prénom
- Abonnement
- formulaire
- Avant
- trouvé
- fractionnaire
- Framework
- Test d'anglais
- de
- plein
- fonction
- fonctions
- plus
- avenir
- jeu
- Games
- jeux
- Général
- à usage général
- générer
- génération
- Global
- plus grand
- Croissance
- manipuler
- front
- la médecine
- aider
- a aidé
- Haute
- de haute qualité
- Histoire
- HTTPS
- humain
- Active
- la mise en oeuvre
- important
- amélioré
- amélioration
- comprendre
- Y compris
- secteurs
- d'information
- inhérent
- contribution
- idées.
- inspiré
- instance
- Insulter
- des services
- l'intégration
- IT
- puzzle
- Emploi
- clés
- connu
- laboratoire
- Libellé
- l'étiquetage
- Etiquettes
- langue
- gros
- plus importantes
- couche
- Conduit
- APPRENTISSAGE
- apprentissage
- LED
- Bibliothèque
- Life Sciences
- Probable
- le travail
- charge
- click
- machine learning
- faire
- FAIT DU
- gérés
- manager
- masque
- Masques
- Match
- Matrice
- mécanisme
- Mémoire
- méthodes
- Métrique
- pourrait
- ML
- modèle
- numériques jumeaux (digital twin models)
- PLUS
- plusieurs
- Nature
- Nature
- réseau et
- réseaux
- next
- cahier
- nombre
- Offres Speciales
- en ligne
- d'exploitation
- Optimiser
- optimisé
- de commander
- original
- Autre
- autrement
- propre
- Papier
- particulièrement
- en partenariat
- passionné
- performant
- pièce
- Plateformes
- jouer
- veuillez cliquer
- Populaire
- positif
- Poteaux
- prévoir
- prédiction
- Préparer
- précédent
- Problème
- d'ouvrabilité
- processus
- les process
- traitement
- Produits
- Projection
- à condition de
- fournit
- en cours
- en temps réel
- Récupérer
- pertinent
- enlever
- représentent
- représentation
- représentation
- nécessaire
- retourner
- Retours
- Rôle
- Courir
- évolutive
- programme
- Sciences
- STARFLEET SCIENCES
- Scientifique
- scientifiques
- fluide
- clignotant
- service
- Services
- service
- set
- plusieurs
- Shorts
- significative
- similaires
- étapes
- depuis
- SIX
- Taille
- sur mesure
- Solutions
- RÉSOUDRE
- Space
- espaces
- spécialise
- Hébergement spécial
- groupe de neurones
- Dépenses
- state-of-the-art
- États
- storage
- succès
- Système
- Target
- tâches
- équipe
- techniques
- télécommunications
- tester
- La
- trois
- порог
- Avec
- fiable
- fois
- Tokens
- les outils
- torche
- traditionnel
- Train
- Formation
- transition
- Traduction
- Voyages
- sous
- unique
- utilisé
- utilisateurs
- validation
- Plus-value
- variété
- divers
- Vidéo
- jeux vidéo
- que
- WHO
- dans les
- sans
- des mots
- Activités principales
- de travail
- Votre