Byg et nyhedsbaseret varslingssystem i realtid med Twitter, Amazon SageMaker og Hugging Face PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Byg et nyhedsbaseret advarselssystem i realtid med Twitter, Amazon SageMaker og Hugging Face

I dag er sociale medier en kæmpe kilde til nyheder. Brugere er afhængige af platforme som Facebook og Twitter for at forbruge nyheder. For visse brancher, såsom forsikringsselskaber, første respondenter, retshåndhævelse og offentlige myndigheder, kan det at være i stand til hurtigt at behandle nyheder om relevante begivenheder, hjælpe dem med at handle, mens disse begivenheder stadig udspiller sig.

Det er ikke ualmindeligt, at organisationer, der forsøger at udvinde værdi fra tekstdata, leder efter en løsning, der ikke involverer træning af en kompleks NLP-model (naturlig sprogbehandling). For disse organisationer er det mere praktisk at bruge en præ-trænet NLP-model. Desuden, hvis den valgte model ikke opfylder deres succesmålinger, ønsker organisationer nemt at kunne vælge en anden model og revurdere.

På nuværende tidspunkt er det nemmere end nogensinde at udtrække information fra tekstdata takket være følgende:

  • Fremkomsten af ​​state-of-the-art, generelle NLP-arkitekturer såsom transformere
  • Den evne, som udviklere og dataforskere har til hurtigt at bygge, træne og implementere maskinlæringsmodeller (ML) i stor skala i skyen med tjenester som f.eks. Amazon SageMaker
  • Tilgængeligheden af ​​tusindvis af præ-trænede NLP-modeller på hundredvis af sprog og med understøttelse af flere rammer leveret af fællesskabet på platforme som f.eks. Krammer Face Hub

I dette indlæg viser vi dig, hvordan du opbygger et alarmsystem i realtid, der bruger nyheder fra Twitter og klassificerer tweets ved hjælp af en fortrænet model fra Hugging Face Hub. Du kan bruge denne løsning til nul-skudsklassificering, hvilket betyder, at du kan klassificere tweets i stort set alle kategorier og implementere modellen med SageMaker til realtidsslutning.

Alternativt, hvis du leder efter indsigt i din kundes samtaler og uddybe brandbevidstheden ved at analysere interaktioner på sociale medier, opfordrer vi dig til at tjekke AI-drevet Social Media Dashboard. Løsningen bruger Amazon Comprehend, en fuldt administreret NLP-tjeneste, der afslører værdifuld indsigt og forbindelser i tekst uden at kræve maskinlæringserfaring.

Zero-shot læring

Områderne NLP og naturlig sprogforståelse (NLU) har hurtigt udviklet sig til at adressere brugssager, der involverer tekstklassificering, besvarelse af spørgsmål, opsummering, tekstgenerering og mere. Denne udvikling har været mulig, til dels takket være fremkomsten af ​​state-of-the-art, universelle arkitekturer såsom transformatorer, men også tilgængeligheden af ​​flere og bedre kvalitet tekstkorpus tilgængelige til træning af sådanne modeller.

Transformatorarkitekturen er et komplekst neuralt netværk, der kræver domæneekspertise og en enorm mængde data for at blive trænet fra bunden. En almindelig praksis er at tage en fortrænet state-of-the-art transformer som BERT, RoBERTa, T5, GPT-2 eller DistilBERT og finjustere (transfer learning) modellen til en specifik use case.

Ikke desto mindre kan selv udførelse af overførselslæring på en præ-trænet NLP-model ofte være en udfordrende opgave, der kræver store mængder mærkede tekstdata og et team af eksperter til at kurere dataene. Denne kompleksitet forhindrer de fleste organisationer i at bruge disse modeller effektivt, men nul-skudslæring hjælper ML-udøvere og organisationer med at overvinde denne mangel.

Zero-shot learning er en specifik ML-opgave, hvor en klassifikator lærer på ét sæt etiketter under træning, og derefter under inferens evalueres på et andet sæt etiketter, som klassificereren aldrig har set før. I NLP kan du bruge en nul-skudssekvensklassificering, der er trænet i en naturlig sproginferens (NLI) opgave til at klassificere tekst uden nogen finjustering. I dette indlæg bruger vi det populære NLI BART model bart-large-mnli til at klassificere tweets. Dette er en stor præ-trænet model (1.6 GB), tilgængelig på Hugging Face-modellen.

Hugging Face er en kunstig intelligens-virksomhed, der administrerer en open source-platform (Hugging Face Hub) med tusindvis af præ-trænede NLP-modeller (transformere) på mere end 100 forskellige sprog og med understøttelse af forskellige rammer såsom TensorFlow og PyTorch. Transformatorbiblioteket hjælper udviklere og dataforskere med at komme i gang med komplekse NLP- og NLU-opgaver såsom klassificering, informationsudtrækning, besvarelse af spørgsmål, opsummering, oversættelse og tekstgenerering.

AWS og Hugging Face har samarbejdet om at forenkle og fremskynde vedtagelsen af ​​NLP-modeller. Et sæt Deep Learning Containers (DLC'er) til træning og inferens i PyTorch eller TensorFlow, og Hugging Face-estimatorer og forudsigere til SageMaker Python SDK er nu tilgængelige. Disse muligheder hjælper udviklere med alle niveauer af ekspertise med at komme nemt i gang med NLP.

Oversigt over løsning

Vi leverer en fungerende løsning, der henter tweets i realtid fra udvalgte Twitter-konti. Til demonstrationen af ​​vores løsning bruger vi tre konti, Amazon Web Services (@awscloud), AWS Security (@AWSSecurityInfo), og Amazon Science (@AmazonScience), og klassificere deres indhold i en af ​​følgende kategorier: sikkerhed, database, compute, storage og machine learning. Hvis modellen returnerer en kategori med en konfidensscore på mere end 40 %, sendes en meddelelse.

I det følgende eksempel klassificerede modellen et tweet fra Amazon Web Services i maskinlæringskategorien med en konfidensscore på 97 %, hvilket genererede en advarsel.

Løsningen er afhængig af en Hugging Face-foruddannet transformermodel (fra Hugging Face Hub) til at klassificere tweets baseret på et sæt etiketter, der leveres på inferenstidspunktet – modellen behøver ikke at blive trænet. Følgende skærmbilleder viser flere eksempler, og hvordan de blev klassificeret.
Nogle relevante eksempler
Vi opfordrer dig til selv at prøve løsningen. Du skal blot downloade kildekoden fra GitHub repository og følg installationsinstruktionerne i README-filen.

Løsningsarkitektur

Løsningen holder en åben forbindelse til Twitters slutpunkt og sender, når der kommer et nyt tweet, en besked til en kø. En forbruger læser beskeder fra køen, ringer til klassificeringsslutpunktet og giver slutbrugeren besked, afhængigt af resultaterne.

Det følgende er arkitekturdiagrammet for løsningen.
Løsningens omfang
Løsningens arbejdsgang består af følgende komponenter:

  1. Løsningen er afhængig af Twitters Stream API for at få tweets, der matcher de konfigurerede regler (tweets fra de interesserede konti) i realtid. For at gøre det holder et program, der kører inde i en container, en åben forbindelse til Twitters slutpunkt. Henvise til Twitter API for flere detaljer.
  2. Containeren kører videre Amazon Elastic Container Service (Amazon ECS), en fuldt administreret containerorkestreringstjeneste, der gør det nemt for dig at implementere, administrere og skalere containeriserede applikationer. En enkelt opgave kører på en serverløs infrastruktur, der administreres af AWS Fargate.
  3. Twitter Bearer-tokenet er sikkert gemt i AWS Systems Manager Parameter Store, en evne til AWS System Manager der giver sikker, hierarkisk lagring af konfigurationsdata og hemmeligheder. Containerbilledet er hostet på Amazon Elastic Container Registry (Amazon ECR), et fuldt administreret containerregister, der tilbyder højtydende hosting.
  4. Hver gang et nyt tweet ankommer, sætter containerapplikationen tweetet i en Amazon Simple Queue Service (Amazon SQS) kø. Amazon SQS er en fuldt administreret beskedkø-tjeneste, der giver dig mulighed for at afkoble og skalere mikrotjenester, distribuerede systemer og serverløse applikationer.
  5. Løsningens logik ligger i en AWS Lambda fungere. Lambda er en serverløs, hændelsesdrevet computertjeneste. Funktionen bruger nye tweets fra køen og klassificerer dem ved at kalde et slutpunkt.
  6. Slutpunktet er baseret på en Hugging Face-model og hostes på SageMaker. Slutpunktet kører inferensen og udsender tweets klasse.
  7. Afhængigt af klassifikationen genererer funktionen en notifikation igennem Amazon Simple Notification Service (Amazon SNS), en fuldt administreret beskedtjeneste. Du kan abonnere på SNS-emnet, og flere destinationer kan modtage den meddelelse (se Amazon SNS-begivenhedsdestinationer). For eksempel kan du levere meddelelsen til indbakker som e-mail-beskeder (se Email meddelelser).

Implementer Hugging Face-modeller med SageMaker

Du kan vælge en hvilken som helst af de over 10,000 offentligt tilgængelige modeller fra Hugging Face Model Hub og implementer dem med SageMaker ved at bruge Hugging Face Inference DLC'er.

Når du bruger AWS CloudFormation, vælger du en af ​​de offentligt tilgængelige Krammede ansigtsinferensbeholdere og konfigurere modellen og opgaven. Denne løsning bruger facebook/bart-large-mnli model og nulskudsklassificeringsopgaven, men du kan vælge en hvilken som helst af modellerne under Nulskudsklassifikation på Hugging Face Model Hub. Du konfigurerer dem ved at indstille miljøvariablerne HF_MODEL_ID og HF_TASK i din CloudFormation-skabelon, som i følgende kode:

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

Alternativt, hvis du ikke bruger AWS CloudFormation, kan du opnå de samme resultater med få linjer kode. Henvise til Implementer modeller til Amazon SageMaker for flere detaljer.

For at klassificere indholdet ringer du bare til SageMaker-endepunktet. Følgende er et Python-kodestykke:

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

Bemærk False værdi for multi_class parameter for at angive, at summen af ​​alle sandsynligheder for hver klasse vil summere til 1.

Løsningsforbedringer

Du kan forbedre den her foreslåede løsning ved at gemme tweets og modelresultaterne. Amazon Simple Storage Service (Amazon S3), en objektlagringstjeneste, er en mulighed. Du kan skrive tweets, resultater og andre metadata som JSON-objekter i en S3-bøtte. Du kan derefter udføre ad hoc-forespørgsler mod det pågældende indhold ved hjælp af Amazonas Athena, en interaktiv forespørgselstjeneste, der gør det nemt at analysere data i Amazon S3 ved hjælp af standard SQL.

Du kan bruge historikken til ikke kun at udtrække indsigt, men også til at træne en tilpasset model. Du kan bruge Hugging Face-støtte til at træne en model med dine egne data med SageMaker. Lær mere om Løb træning på Amazon SageMaker.

Reelle brugssager

Kunder eksperimenterer allerede med Hugging Face-modeller på SageMaker. Bolivar forsikring, et colombiansk finans- og forsikringsselskab grundlagt i 1939, er et eksempel.

"Vi har udviklet en løsning til meddelelse om trusler til kunder og forsikringsmæglere. Vi bruger Hugging Face præ-trænede NLP-modeller til at klassificere tweets fra relevante konti for at generere notifikationer til vores kunder i næsten realtid som en forebyggelsesstrategi for at hjælpe med at afbøde krav. Et krav opstår, fordi kunderne ikke er klar over det risikoniveau, de er udsat for. Løsningen giver os mulighed for at skabe opmærksomhed hos vores kunder og gøre risiko til noget, der kan måles i konkrete situationer.”

– Julian Rico, chef for forskning og viden hos Seguros Bolívar.

Seguros Bolívar arbejdede sammen med AWS for at re-arkitektere deres løsning; den er nu afhængig af SageMaker og ligner den, der er beskrevet i dette indlæg.

Konklusion

Zero-shot-klassificering er ideel, når du har få data til at træne en tilpasset tekstklassificering, eller når du ikke har råd til at træne en tilpasset NLP-model. For specialiserede brugstilfælde, når tekst er baseret på specifikke ord eller udtryk, er det bedre at gå med en overvåget klassifikationsmodel baseret på et tilpasset træningssæt.

I dette indlæg viste vi dig, hvordan du bygger en nyhedsklassificering ved hjælp af en Hugging Face zero-shot model på AWS. Vi brugte Twitter som vores nyhedskilde, men du kan vælge en nyhedskilde, der passer bedre til dine specifikke behov. Ydermere kan du nemt ændre modellen, blot specificer din valgte model i CloudFormation skabelonen.

For kildekoden henvises til GitHub repository Det inkluderer de fulde opsætningsinstruktioner. Du kan klone, ændre, implementere og køre det selv. Du kan også bruge det som udgangspunkt og tilpasse kategorierne og advarselslogikken eller bygge en anden løsning til en lignende use case.

Prøv det, og lad os vide, hvad du synes. Som altid ser vi frem til din feedback. Du kan sende det til dine sædvanlige AWS-supportkontakter eller i AWS Forum for SageMaker.


Om forfatterne

Byg et nyhedsbaseret varslingssystem i realtid med Twitter, Amazon SageMaker og Hugging Face PlatoBlockchain Data Intelligence. Lodret søgning. Ai.David Laredo er Prototyping Architect hos AWS Envision Engineering i LATAM, hvor han har hjulpet med at udvikle flere machine learning-prototyper. Tidligere har han arbejdet som Machine Learning Engineer og har lavet maskinlæring i over 5 år. Hans interesseområder er NLP, tidsserier og end-to-end ML.

Byg et nyhedsbaseret varslingssystem i realtid med Twitter, Amazon SageMaker og Hugging Face PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Rafael Werneck er Senior Prototyping Architect hos AWS Envision Engineering med base i Brasilien. Tidligere arbejdede han som softwareudviklingsingeniør på Amazon.com.br og Amazon RDS Performance Insights.

Byg et nyhedsbaseret varslingssystem i realtid med Twitter, Amazon SageMaker og Hugging Face PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Vikram Elango er en AI/ML Specialist Solutions Architect hos Amazon Web Services, baseret i Virginia, USA. Vikram hjælper finans- og forsikringsbranchens kunder med design og tankelederskab med at bygge og implementere maskinlæringsapplikationer i stor skala. Han er i øjeblikket fokuseret på naturlig sprogbehandling, ansvarlig AI, inferensoptimering og skalering af ML på tværs af virksomheden. I sin fritid nyder han at rejse, vandre, lave mad og campere med sin familie.

Tidsstempel:

Mere fra AWS maskinindlæring