Bouw een op nieuws gebaseerd realtime waarschuwingssysteem met Twitter, Amazon SageMaker en Hugging Face PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Bouw een op nieuws gebaseerd realtime waarschuwingssysteem met Twitter, Amazon SageMaker en Hugging Face

Tegenwoordig zijn sociale media een enorme bron van nieuws. Gebruikers vertrouwen op platforms zoals Facebook en Twitter om nieuws te consumeren. Voor bepaalde sectoren, zoals verzekeringsmaatschappijen, eerste respondenten, wetshandhavingsinstanties en overheidsinstanties, kan het snel verwerken van nieuws over relevante gebeurtenissen die zich voordoen, hen helpen om actie te ondernemen terwijl deze gebeurtenissen nog plaatsvinden.

Het is niet ongebruikelijk dat organisaties die waarde uit tekstgegevens proberen te halen, op zoek gaan naar een oplossing die niet de training van een complex NLP-model (natuurlijke taalverwerking) omvat. Voor die organisaties is het gebruik van een vooraf getraind NLP-model praktischer. Bovendien, als het gekozen model niet voldoet aan hun successtatistieken, willen organisaties gemakkelijk een ander model kunnen kiezen en opnieuw kunnen beoordelen.

Op dit moment is het gemakkelijker dan ooit om informatie uit tekstgegevens te extraheren dankzij het volgende:

  • De opkomst van geavanceerde, algemene NLP-architecturen zoals transformatoren
  • De mogelijkheid die ontwikkelaars en datawetenschappers hebben om snel machine learning (ML)-modellen op grote schaal in de cloud te bouwen, te trainen en te implementeren met services zoals Amazon Sage Maker
  • De beschikbaarheid van duizenden vooraf getrainde NLP-modellen in honderden talen en met ondersteuning voor meerdere frameworks die door de gemeenschap worden geboden in platforms zoals Knuffelen Gezicht Hub

In dit bericht laten we je zien hoe je een realtime waarschuwingssysteem bouwt dat nieuws van Twitter consumeert en de tweets classificeert met behulp van een vooraf getraind model van de Hugging Face Hub. U kunt deze oplossing gebruiken voor zero-shot classificatie, wat betekent dat u tweets in vrijwel elke reeks categorieรซn kunt classificeren en het model met SageMaker kunt implementeren voor realtime gevolgtrekking.

Als u op zoek bent naar inzichten in de gesprekken van uw klant en uw merkbekendheid wilt vergroten door interacties op sociale media te analyseren, raden we u aan om de AI-gestuurde dashboard voor sociale media. De oplossing maakt gebruik van: Amazon begrijpt het, een volledig beheerde NLP-service die waardevolle inzichten en verbanden in tekst onthult zonder dat er ervaring met machine learning vereist is.

Zero-shot leren

De gebieden van NLP en begrip van natuurlijke taal (NLU) zijn snel geรซvolueerd om gebruiksgevallen aan te pakken met betrekking tot tekstclassificatie, het beantwoorden van vragen, samenvattingen, het genereren van tekst en meer. Deze evolutie is mede mogelijk gemaakt door de opkomst van geavanceerde, universele architecturen zoals transformatoren, maar ook door de beschikbaarheid van meer en kwalitatief betere tekstcorpora die beschikbaar zijn voor het trainen van dergelijke modellen.

De transformatorarchitectuur is een complex neuraal netwerk dat domeinexpertise en een enorme hoeveelheid gegevens vereist om helemaal opnieuw te worden getraind. Een gangbare praktijk is om een โ€‹โ€‹vooraf getrainde state-of-the-art transformator zoals BERT, RoBERTa, T5, GPT-2 of DistilBERT te nemen en het model af te stemmen (transfer learning) naar een specifieke use case.

Desalniettemin kan zelfs het uitvoeren van transfer learning op een vooraf getraind NLP-model vaak een uitdagende taak zijn, waarbij grote hoeveelheden gelabelde tekstgegevens en een team van experts nodig zijn om de gegevens te beheren. Deze complexiteit verhindert dat de meeste organisaties deze modellen effectief gebruiken, maar zero-shot learning helpt ML-beoefenaars en organisaties om deze tekortkoming te overwinnen.

Zero-shot learning is een specifieke ML-taak waarbij een classifier tijdens de training leert op รฉรฉn set labels, en vervolgens tijdens inferentie wordt geรซvalueerd op een andere set labels die de classifier nog nooit eerder heeft gezien. In NLP kun je een zero-shot sequence classifier gebruiken die is getraind op een natural language inference (NLI)-taak om tekst te classificeren zonder enige fijnafstemming. In dit bericht gebruiken we de populaire NLI BART model bart-large-mnli om tweets te classificeren. Dit is een groot voorgetraind model (1.6 GB), beschikbaar op de Hugging Face-modelhub.

Hugging Face is een AI-bedrijf dat een open source platform (Hugging Face Hub) beheert met duizenden voorgetrainde NLP-modellen (transformatoren) in meer dan 100 verschillende talen en met ondersteuning voor verschillende frameworks zoals TensorFlow en PyTorch. De Transformers-bibliotheek helpt ontwikkelaars en datawetenschappers aan de slag te gaan met complexe NLP- en NLU-taken zoals classificatie, informatie-extractie, vragen beantwoorden, samenvattingen, vertalingen en tekstgeneratie.

AWS en knuffelend gezicht hebben samengewerkt om de invoering van NLP-modellen te vereenvoudigen en te versnellen. Een set Deep Learning Containers (DLC's) voor training en inferentie in PyTorch of TensorFlow, en Hugging Face-schatters en -voorspellers voor de SageMaker Python SDK zijn nu beschikbaar. Deze mogelijkheden helpen ontwikkelaars met alle expertiseniveaus om eenvoudig met NLP aan de slag te gaan.

Overzicht van de oplossing

We bieden een werkende oplossing die tweets in realtime ophaalt van geselecteerde Twitter-accounts. Voor de demonstratie van onze oplossing gebruiken we drie accounts, Amazon Web Services (@Allemaaltaal), AWS-beveiliging (@AWSSecurityInfo), en Amazon Science (@AmazonScience), en classificeer hun inhoud in een van de volgende categorieรซn: beveiliging, database, rekenkracht, opslag en machine learning. Als het model een categorie retourneert met een betrouwbaarheidsscore van meer dan 40%, wordt een melding verzonden.

In het volgende voorbeeld classificeerde het model een tweet van Amazon Web Services in de categorie machine learning, met een betrouwbaarheidsscore van 97%, waardoor een waarschuwing werd gegenereerd.

De oplossing is gebaseerd op een voorgetraind Hugging Face-transformatormodel (van de Hugging Face Hub) om tweets te classificeren op basis van een set labels die bij de inferentie worden verstrekt - het model hoeft niet te worden getraind. De volgende schermafbeeldingen tonen meer voorbeelden en hoe ze zijn geclassificeerd.
Enkele relevante voorbeelden
We raden u aan om de oplossing zelf uit te proberen. Download eenvoudig de broncode van de GitHub-repository en volg de implementatie-instructies in het README-bestand.

Oplossingsarchitectuur

De oplossing houdt een open verbinding met het eindpunt van Twitter en stuurt bij een nieuwe tweet een bericht naar een wachtrij. Een consument leest berichten uit de wachtrij, belt het classificatie-eindpunt en brengt, afhankelijk van de resultaten, de eindgebruiker op de hoogte.

Het volgende is het architectuurdiagram van de oplossing.
Reikwijdte van de oplossing
De workflow van de oplossing bestaat uit de volgende onderdelen:

  1. De oplossing vertrouwt op Twitter's Stream API om in realtime tweets te krijgen die overeenkomen met de geconfigureerde regels (tweets van de betreffende accounts). Om dit te doen, houdt een applicatie die in een container draait een open verbinding met het eindpunt van Twitter. Verwijzen naar Twitter-API voor meer details.
  2. De container draait op Amazon Elastic Container-service (Amazon ECS), een volledig beheerde containerorkestratieservice waarmee u eenvoudig gecontaineriseerde toepassingen kunt implementeren, beheren en schalen. Een enkele taak wordt uitgevoerd op een serverloze infrastructuur die wordt beheerd door AWS Fargate.
  3. De Twitter Bearer-token wordt veilig opgeslagen in AWS Systems Manager-parameteropslag, een vermogen van AWS-systeembeheerder die veilige, hiรซrarchische opslag biedt voor configuratiegegevens en geheimen. De containerafbeelding wordt gehost op Amazon Elastic Container-register (Amazon ECR), een volledig beheerd containerregister met hoogwaardige hosting.
  4. Telkens wanneer een nieuwe tweet binnenkomt, plaatst de containertoepassing de tweet in een Amazon Simple Queue-service (Amazon SQS) wachtrij. Amazon SQS is een volledig beheerde message queuing-service waarmee u microservices, gedistribueerde systemen en serverloze toepassingen kunt ontkoppelen en schalen.
  5. De logica van de oplossing ligt in een AWS Lambda functie. Lambda is een serverloze, gebeurtenisgestuurde rekenservice. De functie verbruikt nieuwe tweets uit de wachtrij en classificeert ze door een eindpunt aan te roepen.
  6. Het eindpunt is gebaseerd op een Hugging Face-model en wordt gehost op SageMaker. Het eindpunt voert de gevolgtrekking uit en geeft de klasse van de tweet weer.
  7. Afhankelijk van de classificatie genereert de functie een melding via: Amazon eenvoudige meldingsservice (Amazon SNS), een volledig beheerde berichtenservice. U kunt zich abonneren op het SNS-onderwerp en meerdere bestemmingen kunnen die melding ontvangen (zie Bestemmingen voor Amazon SNS-evenementen). U kunt de melding bijvoorbeeld als e-mailberichten in uw inbox bezorgen (zie E-mail notificaties).

Implementeer Hugging Face-modellen met SageMaker

U kunt een van de meer dan 10,000 openbaar beschikbare modellen selecteren uit de Knuffelen Gezicht Model Hub en implementeer ze met SageMaker met behulp van Hugging Face Inference DLC's.

Tijdens gebruik AWS CloudFormatie, u selecteert een van de openbaar beschikbare Knuffelen met gezichtsinferentiecontainers en configureer het model en de taak. Deze oplossing maakt gebruik van de facebook/bart-groot-mnli model en de zero-shot-classificatietaak, maar u kunt elk van de modellen kiezen onder Zero-Shot-classificatie op de Hugging Face Model Hub. U configureert deze door de omgevingsvariabelen HF_MODEL_ID en HF_TASK in uw CloudFormation-sjabloon in te stellen, zoals in de volgende code:

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

Als alternatief, als u AWS CloudFormation niet gebruikt, kunt u dezelfde resultaten bereiken met een paar regels code. Verwijzen naar Modellen implementeren op Amazon SageMaker voor meer details.

Om de inhoud te classificeren, roept u gewoon het SageMaker-eindpunt aan. Het volgende is een Python-codefragment:

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())

Merk op Niet waar waarde voor de multi_klasse parameter om aan te geven dat de som van alle kansen voor elke klasse optellen tot 1.

Oplossingsverbeteringen

U kunt de hier voorgestelde oplossing verbeteren door de tweets en de modelresultaten op te slaan. Amazon eenvoudige opslagservice (Amazon S3), een objectopslagservice, is een optie. U kunt tweets, resultaten en andere metadata als JSON-objecten in een S3-bucket schrijven. U kunt vervolgens ad-hocquery's uitvoeren op die inhoud met behulp van Amazone Athene, een interactieve queryservice die het eenvoudig maakt om gegevens in Amazon S3 te analyseren met behulp van standaard SQL.

U kunt de geschiedenis niet alleen gebruiken om inzichten te extraheren, maar ook om een โ€‹โ€‹aangepast model te trainen. U kunt Hugging Face-ondersteuning gebruiken om een โ€‹โ€‹model met uw eigen gegevens te trainen met SageMaker. Meer informatie over Training geven op Amazon SageMaker.

Praktijkgevallen

Klanten experimenteren al met Hugging Face-modellen op SageMaker. Bolivar verzekering, een Colombiaanse financiรซle en verzekeringsmaatschappij opgericht in 1939, is een voorbeeld.

โ€œWe hebben een oplossing voor het melden van bedreigingen ontwikkeld voor klanten en verzekeringsmakelaars. We gebruiken voorgetrainde NLP-modellen van Hugging Face om tweets van relevante accounts te classificeren om in bijna realtime meldingen voor onze klanten te genereren als preventiestrategie om claims te helpen verminderen. Een claim doet zich voor omdat klanten zich niet bewust zijn van het risiconiveau waaraan ze worden blootgesteld. De oplossing stelt ons in staat om bewustzijn bij onze klanten te genereren, waardoor risico in concrete situaties meetbaar wordt.โ€

โ€“ Julian Rico, hoofd onderzoek en kennis bij Seguros Bolรญvar.

Seguros Bolรญvar werkte samen met AWS om hun oplossing opnieuw te ontwerpen; het vertrouwt nu op SageMaker en lijkt op degene die in dit bericht wordt beschreven.

Conclusie

Zero-shot classificatie is ideaal wanneer je weinig gegevens hebt om een โ€‹โ€‹aangepaste tekstclassificatie te trainen of wanneer je het je niet kunt veroorloven om een โ€‹โ€‹aangepast NLP-model te trainen. Voor gespecialiseerde gebruikssituaties, wanneer tekst is gebaseerd op specifieke woorden of termen, is het beter om te kiezen voor een gecontroleerd classificatiemodel op basis van een aangepaste trainingsset.

In dit bericht hebben we je laten zien hoe je een nieuwsclassificatie bouwt met behulp van een Hugging Face zero-shot-model op AWS. We gebruikten Twitter als onze nieuwsbron, maar u kunt een nieuwsbron kiezen die meer geschikt is voor uw specifieke behoeften. Verder kunt u het model eenvoudig wijzigen, u hoeft alleen het door u gekozen model op te geven in de CloudFormation-sjabloon.

Voor de broncode, raadpleeg de GitHub-repository Het bevat de volledige installatie-instructies. U kunt het zelf klonen, wijzigen, implementeren en uitvoeren. U kunt het ook als uitgangspunt gebruiken en de categorieรซn en de waarschuwingslogica aanpassen of een andere oplossing bouwen voor een vergelijkbare gebruikssituatie.

Probeer het alsjeblieft en laat ons weten wat je ervan vindt. Zoals altijd kijken we uit naar uw feedback. U kunt het naar uw gebruikelijke AWS-ondersteuningscontacten sturen, of in het AWS-forum voor SageMaker.


Over de auteurs

Bouw een op nieuws gebaseerd realtime waarschuwingssysteem met Twitter, Amazon SageMaker en Hugging Face PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.David Laredo is een Prototyping Architect bij AWS Envision Engineering in LATAM, waar hij heeft geholpen bij het ontwikkelen van meerdere prototypes voor machine learning. Daarvoor werkte hij als Machine Learning Engineer en doet hij al meer dan 5 jaar aan machine learning. Zijn interessegebieden zijn NLP, tijdreeksen en end-to-end ML.

Bouw een op nieuws gebaseerd realtime waarschuwingssysteem met Twitter, Amazon SageMaker en Hugging Face PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Rafaรซl Werneck is Senior Prototyping Architect bij AWS Envision Engineering, gevestigd in Braziliรซ. Daarvoor werkte hij als Software Development Engineer op Amazon.com.br en Amazon RDS Performance Insights.

Bouw een op nieuws gebaseerd realtime waarschuwingssysteem met Twitter, Amazon SageMaker en Hugging Face PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Vikram Elango is een AI/ML Specialist Solutions Architect bij Amazon Web Services, gevestigd in Virginia, VS. Vikram helpt klanten uit de financiรซle en verzekeringssector met design en thought leadership om machine learning-applicaties op grote schaal te bouwen en te implementeren. Hij is momenteel gefocust op natuurlijke taalverwerking, verantwoorde AI, inferentie-optimalisatie en het schalen van ML in de hele onderneming. In zijn vrije tijd houdt hij van reizen, wandelen, koken en kamperen met zijn gezin.

Tijdstempel:

Meer van AWS-machine learning