Creați un sistem de alertă în timp real bazat pe știri cu Twitter, Amazon SageMaker și Hugging Face PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Creați un sistem de alertă în timp real bazat pe știri cu Twitter, Amazon SageMaker și Hugging Face

Astăzi, rețelele sociale sunt o sursă imensă de știri. Utilizatorii se bazează pe platforme precum Facebook și Twitter pentru a consuma știri. Pentru anumite industrii, cum ar fi companiile de asigurări, primii respondenți, forțele de ordine și agențiile guvernamentale, posibilitatea de a procesa rapid știrile despre evenimente relevante care au loc îi poate ajuta să ia măsuri în timp ce aceste evenimente încă se desfășoară.

Nu este neobișnuit ca organizațiile care încearcă să extragă valoare din datele text să caute o soluție care să nu implice antrenarea unui model complex NLP (prelucrarea limbajului natural). Pentru acele organizații, utilizarea unui model NLP pre-instruit este mai practică. În plus, dacă modelul ales nu satisface valorile lor de succes, organizațiile vor să poată alege cu ușurință un alt model și să reevalueze.

În prezent, este mai ușor ca niciodată să extragi informații din datele text datorită următoarelor:

  • Apariția arhitecturilor NLP de ultimă generație, de uz general, cum ar fi transformatoarele
  • Capacitatea pe care o au dezvoltatorii și oamenii de știință de date de a construi, antrena și implementa rapid modele de învățare automată (ML) la scară pe cloud, cu servicii precum Amazon SageMaker
  • Disponibilitatea a mii de modele NLP pre-instruite în sute de limbi și cu suport pentru mai multe cadre oferite de comunitate în platforme precum Hugging Face Hub

În această postare, vă arătăm cum să construiți un sistem de alertă în timp real care consumă știri de pe Twitter și clasifică tweet-urile folosind un model pre-antrenat de la Hugging Face Hub. Puteți utiliza această soluție pentru clasificarea zero-shot, ceea ce înseamnă că puteți clasifica tweet-urile la aproape orice set de categorii și puteți implementa modelul cu SageMaker pentru inferență în timp real.

Ca alternativă, dacă căutați informații despre conversațiile clienților dvs. și să aprofundați cunoașterea mărcii prin analizarea interacțiunilor cu rețelele sociale, vă încurajăm să consultați Tabloul de bord pentru rețelele sociale bazat pe inteligență artificială. Soluția folosește Amazon Comprehend, un serviciu NLP complet gestionat care descoperă informații și conexiuni valoroase în text fără a necesita experiență de învățare automată.

Învățare zero-shot

Domeniile NLP și înțelegerea limbajului natural (NLU) au evoluat rapid pentru a aborda cazurile de utilizare care implică clasificarea textului, răspunsul la întrebări, rezumarea, generarea de text și multe altele. Această evoluție a fost posibilă, în parte, datorită creșterii arhitecturilor de ultimă oră, de uz general, cum ar fi transformatoarele, dar și disponibilității mai multor corpuri de text de mai bună calitate disponibile pentru formarea unor astfel de modele.

Arhitectura transformatorului este o rețea neuronală complexă care necesită expertiză în domeniu și o cantitate imensă de date pentru a fi antrenată de la zero. O practică obișnuită este să luați un transformator de ultimă generație, cum ar fi BERT, RoBERTa, T5, GPT-2 sau DistilBERT și să reglați fin (învățare prin transfer) modelul la un anumit caz de utilizare.

Cu toate acestea, chiar și efectuarea învățării prin transfer pe un model NLP pre-antrenat poate fi adesea o sarcină dificilă, care necesită cantități mari de date text etichetate și o echipă de experți care să gestioneze datele. Această complexitate împiedică majoritatea organizațiilor să folosească aceste modele în mod eficient, dar învățarea zero-shot îi ajută pe practicienii și organizațiile ML să depășească acest neajuns.

Învățarea zero-shot este o sarcină ML specifică în care un clasificator învață pe un set de etichete în timpul antrenamentului, iar apoi în timpul inferenței este evaluat pe un set diferit de etichete pe care clasificatorul nu le-a văzut niciodată înainte. În NLP, puteți utiliza un clasificator de secvență zero-shot antrenat pe o sarcină de inferență în limbaj natural (NLI) pentru a clasifica textul fără nicio reglare fină. În această postare, folosim popularul NLI BART model bart-large-mnli pentru a clasifica tweet-urile. Acesta este un model mare pre-antrenat (1.6 GB), disponibil pe hub-ul modelului Hugging Face.

Hugging Face este o companie AI care gestionează o platformă open-source (Hugging Face Hub) cu mii de modele NLP (transformatoare) pre-antrenate în peste 100 de limbi diferite și cu suport pentru diferite cadre, cum ar fi TensorFlow și PyTorch. Biblioteca transformatoare ajută dezvoltatorii și oamenii de știință de date să înceapă în sarcini complexe NLP și NLU, cum ar fi clasificarea, extragerea informațiilor, răspunsul la întrebări, rezumarea, traducerea și generarea de text.

AWS și Hugging Face au colaborat pentru a simplifica și accelera adoptarea modelelor NLP. Un set de Deep Learning Containers (DLC) pentru antrenament și inferență în PyTorch sau TensorFlow și estimatori și predictori Hugging Face pentru SDK-ul SageMaker Python sunt acum disponibile. Aceste capabilități îi ajută pe dezvoltatorii cu toate nivelurile de expertiză să înceapă cu NLP cu ușurință.

Prezentare generală a soluției

Oferim o soluție funcțională care preia tweet-uri în timp real din conturile de Twitter selectate. Pentru demonstrarea soluției noastre, folosim trei conturi, Amazon Web Services (@awscloud), AWS Security (@AWSSecurityInfo), și Amazon Science (@AmazonScience) și clasifică conținutul acestora într-una dintre următoarele categorii: securitate, bază de date, calcul, stocare și învățare automată. Dacă modelul returnează o categorie cu un scor de încredere mai mare de 40%, se trimite o notificare.

În exemplul următor, modelul a clasificat un tweet de la Amazon Web Services în categoria machine learning, cu un scor de încredere de 97%, generând o alertă.

Soluția se bazează pe un model de transformator pre-antrenat Hugging Face (de la Hugging Face Hub) pentru a clasifica tweet-urile pe baza unui set de etichete care sunt furnizate la momentul deducerii — modelul nu trebuie să fie antrenat. Următoarele capturi de ecran arată mai multe exemple și cum au fost clasificate.
Câteva exemple relevante
Vă încurajăm să încercați singur soluția. Pur și simplu descărcați codul sursă din GitHub depozit și urmați instrucțiunile de implementare din fișierul README.

Arhitectura soluțiilor

Soluția păstrează o conexiune deschisă la punctul final al Twitter și, când sosește un nou tweet, trimite un mesaj la o coadă. Un consumator citește mesajele din coadă, apelează punctul final de clasificare și, în funcție de rezultate, notifică utilizatorul final.

Mai jos este diagrama arhitecturii soluției.
Domeniul de aplicare al soluției
Fluxul de lucru al soluției constă din următoarele componente:

  1. Soluția se bazează pe Twitter Stream API pentru a obține tweet-uri care se potrivesc cu regulile configurate (tweeturi din conturile de interes) în timp real. Pentru a face acest lucru, o aplicație care rulează într-un container păstrează o conexiune deschisă la punctul final al Twitter. A se referi la API Twitter pentru mai multe detalii.
  2. Containerul merge mai departe Serviciul Amazon de containere elastice (Amazon ECS), un serviciu de orchestrare a containerelor complet gestionat, care vă facilitează implementarea, gestionarea și scalarea aplicațiilor containerizate. O singură sarcină rulează pe o infrastructură fără server gestionată de AWS Fargate.
  3. Tokenul Twitter Bearer este stocat în siguranță Magazin de parametri AWS Systems Manager, o capacitate de Manager sistem AWS care oferă stocare sigură, ierarhică pentru datele de configurare și secrete. Imaginea containerului este găzduită pe Registrul Amazon de containere elastice (Amazon ECR), un registru de containere complet gestionat care oferă găzduire de înaltă performanță.
  4. Ori de câte ori sosește un tweet nou, aplicația container plasează tweetul într-un Serviciul de coadă simplă Amazon coadă (Amazon SQS). Amazon SQS este un serviciu de așteptare a mesajelor complet gestionat care vă permite să decuplați și să scalați microservicii, sistemele distribuite și aplicațiile fără server.
  5. Logica soluției rezidă într-un AWS Lambdas funcţie. Lambda este un serviciu de calcul fără server, bazat pe evenimente. Funcția consumă tweet-uri noi din coadă și le clasifică apelând un punct final.
  6. Punctul final se bazează pe un model Hugging Face și este găzduit pe SageMaker. Punctul final rulează inferența și emite clasa tweet-ului.
  7. În funcție de clasificare, funcția generează o notificare prin Serviciul de notificare simplă Amazon (Amazon SNS), un serviciu de mesagerie complet gestionat. Vă puteți abona la subiectul SNS și mai multe destinații pot primi acea notificare (vezi Destinații de evenimente Amazon SNS). De exemplu, puteți livra notificarea în căsuțele primite ca mesaje de e-mail (vezi Notificări prin email).

Implementați modele Hugging Face cu SageMaker

Puteți selecta oricare dintre cele peste 10,000 de modele disponibile public din Hugging Face Model Hub și implementați-le cu SageMaker utilizând Îmbrățișarea DLC-urilor pentru inferența feței.

Atunci când se utilizează Formarea AWS Cloud, selectați una dintre cele disponibile public Îmbrățișarea containerelor de inferență pentru față și configurați modelul și sarcina. Această soluție folosește facebook/bart-large-mnli model și sarcina de clasificare zero-shot, dar puteți alege oricare dintre modelele de mai jos Clasificare Zero-Shot pe Hugging Face Model Hub. Le configurați setând variabilele de mediu HF_MODEL_ID și HF_TASK în șablonul CloudFormation, ca în următorul cod:

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

Alternativ, dacă nu utilizați AWS CloudFormation, puteți obține aceleași rezultate cu câteva linii de cod. A se referi la Implementați modele pe Amazon SageMaker pentru mai multe detalii.

Pentru a clasifica conținutul, trebuie doar să apelați punctul final SageMaker. Următorul este un fragment de cod 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())

Rețineți Fals valoare pentru multi_clasă parametru pentru a indica faptul că suma tuturor probabilităților pentru fiecare clasă se va aduna până la 1.

Îmbunătățiri ale soluției

Puteți îmbunătăți soluția propusă aici prin stocarea tweet-urilor și a rezultatelor modelului. Serviciul Amazon de stocare simplă (Amazon S3), un serviciu de stocare a obiectelor, este o opțiune. Puteți scrie tweet-uri, rezultate și alte metadate ca obiecte JSON într-o găleată S3. Apoi puteți efectua interogări ad-hoc asupra conținutului respectiv folosind Amazon Atena, un serviciu de interogare interactiv care facilitează analiza datelor în Amazon S3 utilizând SQL standard.

Puteți folosi istoricul nu numai pentru a extrage informații, ci și pentru a antrena un model personalizat. Puteți folosi suportul Hugging Face pentru a antrena un model cu propriile date cu SageMaker. Aflați mai multe pe Efectuați antrenament pe Amazon SageMaker.

Cazuri de utilizare din lumea reală

Clienții experimentează deja modelele Hugging Face pe SageMaker. Asigurarea Bolivar, o companie columbiană financiară și de asigurări fondată în 1939, este un exemplu.

„Am dezvoltat o soluție de notificare a amenințărilor pentru clienți și brokerii de asigurări. Folosim modele NLP pregătite în prealabil Hugging Face pentru a clasifica tweet-urile din conturile relevante pentru a genera notificări pentru clienții noștri în timp aproape real, ca strategie de prevenire pentru a ajuta la atenuarea reclamațiilor. O reclamație apare deoarece clienții nu sunt conștienți de nivelul de risc la care sunt expuși. Soluția ne permite să generăm conștientizare în rândul clienților noștri, transformând riscul în ceva măsurabil în situații concrete.”

– Julian Rico, șef de cercetare și cunoștințe la Seguros Bolívar.

Seguros Bolívar a lucrat cu AWS pentru a-și re-arhitectura soluția; acum se bazează pe SageMaker și seamănă cu cel descris în această postare.

Concluzie

Clasificarea zero-shot este ideală atunci când aveți puține date pentru a antrena un clasificator de text personalizat sau când nu vă puteți permite să antrenați un model NLP personalizat. Pentru cazurile de utilizare specializate, când textul se bazează pe anumite cuvinte sau termeni, este mai bine să mergeți cu un model de clasificare supravegheat bazat pe un set de instruire personalizat.

În această postare, v-am arătat cum să construiți un clasificator de știri folosind un model zero-shot Hugging Face pe AWS. Am folosit Twitter ca sursă de știri, dar puteți alege o sursă de știri care este mai potrivită nevoilor dumneavoastră specifice. În plus, puteți schimba cu ușurință modelul, trebuie doar să specificați modelul ales în șablonul CloudFormation.

Pentru codul sursă, consultați GitHub depozit Include instrucțiunile complete de configurare. Îl puteți clona, ​​schimba, implementa și rula singur. De asemenea, îl poți folosi ca punct de plecare și personaliza categoriile și logica alertelor sau construi o altă soluție pentru un caz de utilizare similar.

Vă rugăm să încercați și să ne spuneți ce părere aveți. Ca întotdeauna, așteptăm cu nerăbdare feedback-ul dvs. Îl puteți trimite persoanelor de contact obișnuite de asistență AWS sau în Forumul AWS pentru SageMaker.


Despre autori

Creați un sistem de alertă în timp real bazat pe știri cu Twitter, Amazon SageMaker și Hugging Face PlatoBlockchain Data Intelligence. Căutare verticală. Ai.David Laredo este arhitect de prototipare la AWS Envision Engineering din LATAM, unde a contribuit la dezvoltarea mai multor prototipuri de învățare automată. Anterior, a lucrat ca inginer de învățare automată și a făcut învățare automată de peste 5 ani. Domeniile sale de interes sunt NLP, serii cronologice și ML end-to-end.

Creați un sistem de alertă în timp real bazat pe știri cu Twitter, Amazon SageMaker și Hugging Face PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Rafael Werneck este arhitect senior de prototipare la AWS Envision Engineering, cu sediul în Brazilia. Anterior, a lucrat ca inginer de dezvoltare software pe Amazon.com.br și Amazon RDS Performance Insights.

Creați un sistem de alertă în timp real bazat pe știri cu Twitter, Amazon SageMaker și Hugging Face PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Vikram Elango este arhitect specializat în soluții AI/ML la Amazon Web Services, cu sediul în Virginia, SUA. Vikram îi ajută pe clienții din industria financiară și de asigurări cu design și lider de gândire pentru a construi și implementa aplicații de învățare automată la scară. În prezent, se concentrează pe procesarea limbajului natural, AI responsabil, optimizarea inferenței și scalarea ML în întreaga întreprindere. În timpul liber, îi place să călătorească, să facă drumeții, să gătească și să campeze împreună cu familia.

Timestamp-ul:

Mai mult de la Învățare automată AWS