Créez un système d'alerte en temps réel basé sur l'actualité avec Twitter, Amazon SageMaker et Hugging Face PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Créez un système d'alerte en temps réel basé sur les actualités avec Twitter, Amazon SageMaker et Hugging Face

Aujourd'hui, les réseaux sociaux sont une énorme source d'informations. Les utilisateurs comptent sur des plateformes comme Facebook et Twitter pour consommer des nouvelles. Pour certaines industries telles que les compagnies d'assurance, les premiers répondants, les forces de l'ordre et les agences gouvernementales, la capacité de traiter rapidement les informations sur les événements pertinents qui se produisent peut les aider à prendre des mesures pendant que ces événements se déroulent encore.

Il n'est pas rare que les organisations essayant d'extraire de la valeur des données textuelles recherchent une solution qui n'implique pas la formation d'un modèle NLP (traitement du langage naturel) complexe. Pour ces organisations, l'utilisation d'un modèle NLP pré-formé est plus pratique. De plus, si le modèle choisi ne satisfait pas leurs mesures de réussite, les organisations veulent pouvoir facilement choisir un autre modèle et le réévaluer.

À l'heure actuelle, il est plus facile que jamais d'extraire des informations à partir de données textuelles grâce aux éléments suivants :

  • L'essor des architectures NLP à usage général de pointe telles que les transformateurs
  • La capacité des développeurs et des scientifiques des données à créer, former et déployer rapidement des modèles d'apprentissage automatique (ML) à grande échelle sur le cloud avec des services tels que Amazon Sage Maker
  • La disponibilité de milliers de modèles de PNL pré-formés dans des centaines de langues et avec la prise en charge de plusieurs cadres fournis par la communauté sur des plates-formes telles que Visage câlin

Dans cet article, nous vous montrons comment créer un système d'alerte en temps réel qui consomme les actualités de Twitter et classe les tweets à l'aide d'un modèle pré-formé du Hugging Face Hub. Vous pouvez utiliser cette solution pour la classification zéro coup, ce qui signifie que vous pouvez classer les tweets dans pratiquement n'importe quel ensemble de catégories et déployer le modèle avec SageMaker pour une inférence en temps réel.

Alternativement, si vous recherchez des informations sur les conversations de vos clients et approfondissez la notoriété de votre marque en analysant les interactions sur les réseaux sociaux, nous vous encourageons à consulter le Tableau de bord des médias sociaux basé sur l'IA. La solution utilise Amazon comprendre, un service NLP entièrement géré qui révèle des informations et des connexions précieuses dans le texte sans nécessiter d'expérience en machine learning.

Apprentissage sans coupure

Les domaines de la PNL et de la compréhension du langage naturel (NLU) ont rapidement évolué pour répondre aux cas d'utilisation impliquant la classification de texte, la réponse aux questions, la synthèse, la génération de texte, etc. Cette évolution a été possible, en partie, grâce à la montée en puissance d'architectures polyvalentes de pointe telles que les transformateurs, mais aussi à la disponibilité de corpus de texte plus nombreux et de meilleure qualité disponibles pour la formation de tels modèles.

L'architecture du transformateur est un réseau de neurones complexe qui nécessite une expertise du domaine et une énorme quantité de données afin d'être formé à partir de zéro. Une pratique courante consiste à prendre un transformateur de pointe préformé comme BERT, RoBERTa, T5, GPT-2 ou DistilBERT et à affiner (apprentissage par transfert) le modèle pour un cas d'utilisation spécifique.

Néanmoins, même effectuer un apprentissage par transfert sur un modèle de PNL pré-formé peut souvent être une tâche difficile, nécessitant de grandes quantités de données textuelles étiquetées et une équipe d'experts pour organiser les données. Cette complexité empêche la plupart des organisations d'utiliser efficacement ces modèles, mais l'apprentissage zéro coup aide les praticiens du ML et les organisations à surmonter cette lacune.

L'apprentissage zéro coup est une tâche ML spécifique dans laquelle un classificateur apprend sur un ensemble d'étiquettes pendant la formation, puis pendant l'inférence est évalué sur un ensemble différent d'étiquettes que le classificateur n'a jamais vu auparavant. Dans le NLP, vous pouvez utiliser un classificateur de séquence à tir zéro formé sur une tâche d'inférence en langage naturel (NLI) pour classer le texte sans aucun réglage fin. Dans cet article, nous utilisons le populaire NLI BART modèle bart-large-mnli pour classer les tweets. Il s'agit d'un grand modèle pré-formé (1.6 Go), disponible sur le hub de modèles Hugging Face.

Hugging Face est une société d'intelligence artificielle qui gère une plate-forme open source (Hugging Face Hub) avec des milliers de modèles NLP pré-formés (transformateurs) dans plus de 100 langues différentes et prenant en charge différents frameworks tels que TensorFlow et PyTorch. La bibliothèque de transformateurs aide les développeurs et les scientifiques des données à se lancer dans des tâches NLP et NLU complexes telles que la classification, l'extraction d'informations, la réponse aux questions, la synthèse, la traduction et la génération de texte.

AWS et étreindre le visage ont collaboré pour simplifier et accélérer l'adoption des modèles NLP. Un ensemble de conteneurs d'apprentissage en profondeur (DLC) pour la formation et l'inférence dans PyTorch ou TensorFlow, ainsi que des estimateurs et des prédicteurs de Hugging Face pour le SDK SageMaker Python sont désormais disponibles. Ces fonctionnalités aident les développeurs de tous niveaux d'expertise à démarrer facilement avec le NLP.

Présentation de la solution

Nous fournissons une solution de travail qui récupère les tweets en temps réel à partir de comptes Twitter sélectionnés. Pour la démonstration de notre solution, nous utilisons trois comptes, Amazon Web Services (@awscloud), Sécurité AWS (@AWSSecurityInfo) et Amazon Science (@AmazonScience), et classez leur contenu dans l'une des catégories suivantes : sécurité, base de données, calcul, stockage et apprentissage automatique. Si le modèle renvoie une catégorie avec un score de confiance supérieur à 40 %, une notification est envoyée.

Dans l'exemple suivant, le modèle a classé un tweet d'Amazon Web Services dans la catégorie Machine Learning, avec un score de confiance de 97 %, générant une alerte.

La solution s'appuie sur un modèle de transformateur pré-entraîné Hugging Face (de Hugging Face Hub) pour classer les tweets en fonction d'un ensemble d'étiquettes fournies au moment de l'inférence. Le modèle n'a pas besoin d'être formé. Les captures d'écran suivantes montrent plus d'exemples et comment ils ont été classés.
Quelques exemples pertinents
Nous vous encourageons à essayer la solution par vous-même. Téléchargez simplement le code source à partir du GitHub référentiel et suivez les instructions de déploiement dans le fichier README.

Architecture de la solution

La solution maintient une connexion ouverte au terminal de Twitter et, lorsqu'un nouveau tweet arrive, envoie un message à une file d'attente. Un consommateur lit les messages de la file d'attente, appelle le point de terminaison de classification et, selon les résultats, avertit l'utilisateur final.

Voici le diagramme d'architecture de la solution.
Portée de la solution
Le flux de travail de la solution comprend les composants suivants :

  1. La solution s'appuie sur l'API Stream de Twitter pour obtenir des tweets qui correspondent aux règles configurées (tweets des comptes d'intérêt) en temps réel. Pour ce faire, une application s'exécutant à l'intérieur d'un conteneur maintient une connexion ouverte au point de terminaison de Twitter. Faire référence à API Twitter pour plus de détails.
  2. Le conteneur fonctionne sur Service de conteneur élastique Amazon (Amazon ECS), un service d'orchestration de conteneurs entièrement géré qui facilite le déploiement, la gestion et la mise à l'échelle d'applications conteneurisées. Une seule tâche s'exécute sur une infrastructure sans serveur gérée par AWSFargate.
  3. Le jeton Twitter Bearer est stocké en toute sécurité dans Magasin de paramètres AWS Systems Manager, une capacité de Gestionnaire de systèmes AWS qui fournit un stockage sécurisé et hiérarchique pour les données de configuration et les secrets. L'image du conteneur est hébergée sur Registre des conteneurs élastiques Amazon (Amazon ECR), un registre de conteneurs entièrement géré offrant un hébergement haute performance.
  4. Chaque fois qu'un nouveau tweet arrive, l'application conteneur place le tweet dans un Service Amazon Simple Queue (Amazon SQS). Amazon SQS est un service de mise en file d'attente de messages entièrement géré qui vous permet de découpler et de mettre à l'échelle des microservices, des systèmes distribués et des applications sans serveur.
  5. La logique de la solution réside dans une AWS Lambda fonction. Lambda est un service de calcul sans serveur et piloté par les événements. La fonction consomme de nouveaux tweets de la file d'attente et les classe en appelant un point de terminaison.
  6. Le point de terminaison repose sur un modèle Hugging Face et est hébergé sur SageMaker. Le point de terminaison exécute l'inférence et génère la classe du tweet.
  7. Selon la classification, la fonction génère une notification via Service de notification simple d'Amazon (Amazon SNS), un service de messagerie entièrement géré. Vous pouvez vous abonner à la rubrique SNS et plusieurs destinations peuvent recevoir cette notification (voir Destinations d'événements Amazon SNS). Par exemple, vous pouvez envoyer la notification aux boîtes de réception sous forme de messages électroniques (voir Notifications par email).

Déployez des modèles de visage étreignant avec SageMaker

Vous pouvez sélectionner l'un des plus de 10,000 XNUMX modèles disponibles publiquement à partir de la Hub de modèle de visage étreignant et déployez-les avec SageMaker en utilisant DLC d'inférence de visage.

Lors de l'utilisation AWS CloudFormation, vous sélectionnez l'un des Conteneurs d'inférence de visage et configurer le modèle et la tâche. Cette solution utilise le facebook/bart-large-mnli modèle et la tâche de classification zéro coup, mais vous pouvez choisir l'un des modèles sous Classification zéro coup sur le Hugging Face Model Hub. Vous les configurez en définissant les variables d'environnement HF_MODEL_ID et HF_TASK dans votre modèle CloudFormation, comme dans le code suivant :

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

Sinon, si vous n'utilisez pas AWS CloudFormation, vous pouvez obtenir les mêmes résultats avec quelques lignes de code. Faire référence à Déployer des modèles sur Amazon SageMaker pour plus de détails.

Pour classer le contenu, il vous suffit d'appeler le point de terminaison SageMaker. Voici un extrait de code Python :

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

Noter la Faux valeur pour le multi_classe paramètre pour indiquer que la somme de toutes les probabilités pour chaque classe totalisera 1.

Améliorations des solutions

Vous pouvez enrichir la solution proposée ici en stockant les tweets et les résultats du modèle. Service de stockage simple Amazon (Amazon S3), un service de stockage d'objets, est une option. Vous pouvez écrire des tweets, des résultats et d'autres métadonnées sous forme d'objets JSON dans un compartiment S3. Vous pouvez ensuite effectuer des requêtes ad hoc sur ce contenu à l'aide de Amazone Athéna, un service de requête interactif qui facilite l'analyse des données dans Amazon S3 à l'aide de SQL standard.

Vous pouvez utiliser l'historique non seulement pour extraire des informations, mais également pour former un modèle personnalisé. Vous pouvez utiliser la prise en charge de Hugging Face pour former un modèle avec vos propres données avec SageMaker. En savoir plus sur Exécuter une formation sur Amazon SageMaker.

Cas d'utilisation du monde réel

Les clients expérimentent déjà les modèles Hugging Face sur SageMaker. Seguros Bolivar, une société financière et d'assurance colombienne fondée en 1939, en est un exemple.

« Nous avons développé une solution de notification des menaces pour les clients et les courtiers d'assurance. Nous utilisons des modèles NLP pré-formés de Hugging Face pour classer les tweets des comptes pertinents afin de générer des notifications pour nos clients en temps quasi réel en tant que stratégie de prévention pour aider à atténuer les réclamations. Un sinistre survient parce que les clients ne sont pas conscients du niveau de risque auquel ils sont exposés. La solution nous permet de générer une prise de conscience chez nos clients, transformant le risque en quelque chose de mesurable dans des situations concrètes.

– Julian Rico, chef de la recherche et des connaissances chez Seguros Bolívar.

Seguros Bolívar a travaillé avec AWS pour restructurer leur solution ; il s'appuie désormais sur SageMaker et ressemble à celui décrit dans cet article.

Conclusion

La classification Zero-shot est idéale lorsque vous avez peu de données pour former un classificateur de texte personnalisé ou lorsque vous ne pouvez pas vous permettre de former un modèle NLP personnalisé. Pour les cas d'utilisation spécialisés, lorsque le texte est basé sur des mots ou des termes spécifiques, il est préférable d'opter pour un modèle de classification supervisée basé sur un ensemble de formation personnalisé.

Dans cet article, nous vous avons montré comment créer un classificateur d'actualités à l'aide d'un modèle Hugging Face zero-shot sur AWS. Nous avons utilisé Twitter comme source d'informations, mais vous pouvez choisir une source d'informations plus adaptée à vos besoins spécifiques. De plus, vous pouvez facilement changer de modèle, il vous suffit de spécifier le modèle que vous avez choisi dans le modèle CloudFormation.

Pour le code source, reportez-vous au GitHub référentiel Il comprend les instructions de configuration complètes. Vous pouvez le cloner, le modifier, le déployer et l'exécuter vous-même. Vous pouvez également l'utiliser comme point de départ et personnaliser les catégories et la logique d'alerte ou créer une autre solution pour un cas d'utilisation similaire.

Essayez-le et dites-nous ce que vous en pensez. Comme toujours, nous attendons vos commentaires avec impatience. Vous pouvez l'envoyer à vos contacts AWS Support habituels, ou dans le Forum AWS pour SageMaker.


À propos des auteurs

Créez un système d'alerte en temps réel basé sur l'actualité avec Twitter, Amazon SageMaker et Hugging Face PlatoBlockchain Data Intelligence. Recherche verticale. Aï.David Laredo est architecte de prototypage chez AWS Envision Engineering à LATAM, où il a aidé à développer plusieurs prototypes d'apprentissage automatique. Auparavant, il a travaillé comme ingénieur en apprentissage automatique et pratique l'apprentissage automatique depuis plus de 5 ans. Ses domaines d'intérêt sont le NLP, les séries chronologiques et le ML de bout en bout.

Créez un système d'alerte en temps réel basé sur l'actualité avec Twitter, Amazon SageMaker et Hugging Face PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Raphaël Werneck est architecte principal de prototypage chez AWS Envision Engineering, basé au Brésil. Auparavant, il a travaillé comme ingénieur en développement logiciel sur Amazon.com.br et Amazon RDS Performance Insights.

Créez un système d'alerte en temps réel basé sur l'actualité avec Twitter, Amazon SageMaker et Hugging Face PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Vikram Elango est architecte de solutions spécialisées en IA/ML chez Amazon Web Services, basé en Virginie, aux États-Unis. Vikram aide les clients des secteurs de la finance et de l'assurance en matière de conception et de leadership éclairé pour créer et déployer des applications d'apprentissage automatique à grande échelle. Il se concentre actuellement sur le traitement du langage naturel, l'IA responsable, l'optimisation des inférences et la mise à l'échelle du ML dans l'entreprise. Dans ses temps libres, il aime voyager, faire de la randonnée, cuisiner et camper avec sa famille.

Horodatage:

Plus de Apprentissage automatique AWS