Rakenna uutisiin perustuva reaaliaikainen hälytysjärjestelmä Twitterin, Amazon SageMakerin ja Hugging Face PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Rakenna uutisiin perustuva reaaliaikainen hälytysjärjestelmä Twitterin, Amazon SageMakerin ja Hugging Facen avulla

Nykyään sosiaalinen media on valtava uutislähde. Käyttäjät luottavat uutisten kuluttamiseen Facebookin ja Twitterin kaltaisiin alustoihin. Tietyillä toimialoilla, kuten vakuutusyhtiöillä, ensimmäisillä vastaajilla, lainvalvontaviranomaisilla ja valtion virastoilla, kyky käsitellä nopeasti uutisia tapahtumista olennaisista tapahtumista voi auttaa niitä ryhtymään toimiin näiden tapahtumien ollessa vielä käynnissä.

Ei ole harvinaista, että organisaatiot, jotka yrittävät poimia arvoa tekstitiedoista, etsivät ratkaisua, joka ei edellytä monimutkaisen NLP-mallin (luonnollisen kielen käsittely) koulutusta. Näille organisaatioille esikoulutetun NLP-mallin käyttö on käytännöllisempää. Lisäksi, jos valittu malli ei täytä niiden menestysmittareita, organisaatiot haluavat helposti valita toisen mallin ja arvioida niitä uudelleen.

Tällä hetkellä on helpompaa kuin koskaan poimia tietoa tekstitiedoista seuraavien ansiosta:

  • Huippuluokan, yleiskäyttöisten NLP-arkkitehtuurien, kuten muuntajien, nousu
  • Kehittäjien ja datatieteilijöiden kyky nopeasti rakentaa, kouluttaa ja ottaa käyttöön koneoppimismalleja (ML) mittakaavassa pilvipalveluissa, kuten Amazon Sage Maker
  • Tuhansien esikoulutettujen NLP-mallien saatavuus sadoilla kielillä ja tuella useille yhteisön tarjoamille puitteille alustoilla, kuten Hugging Face Hub

Tässä viestissä näytämme sinulle, kuinka voit rakentaa reaaliaikaisen hälytysjärjestelmän, joka käyttää Twitterin uutisia ja luokittelee twiitit käyttämällä Hugging Face Hubin esikoulutettua mallia. Voit käyttää tätä ratkaisua nolla-luokitukseen, mikä tarkoittaa, että voit luokitella tweetit käytännössä mihin tahansa kategoriaan ja ottaa mallin käyttöön SageMakerin avulla reaaliaikaisten päätelmien tekemiseen.

Vaihtoehtoisesti, jos etsit näkemyksiä asiakkaidesi keskusteluista ja syventää bränditietoisuutta analysoimalla sosiaalisen median vuorovaikutusta, suosittelemme tutustumaan AI-ohjattu sosiaalisen median hallintapaneeli. Ratkaisu käyttää Amazonin käsitys, täysin hallittu NLP-palvelu, joka paljastaa arvokkaita oivalluksia ja yhteyksiä tekstistä ilman koneoppimiskokemusta.

Zero-shot-oppiminen

NLP:n ja luonnollisen kielen ymmärtämisen (NLU) alat ovat nopeasti kehittyneet käsittelemään käyttötapauksia, joihin liittyy tekstin luokittelu, kysymyksiin vastaaminen, yhteenveto, tekstin luominen ja paljon muuta. Tämä kehitys on ollut mahdollista osittain uusimpien, yleiskäyttöisten arkkitehtuurien, kuten muuntajien, nousun ansiosta, mutta myös tällaisten mallien koulutukseen saatavien enemmän ja laadukkaampia tekstikorjauksia.

Muuntaja-arkkitehtuuri on monimutkainen hermoverkko, joka vaatii toimialueen asiantuntemusta ja valtavan määrän dataa, jotta se voidaan kouluttaa tyhjästä. Yleinen käytäntö on ottaa esikoulutettu huippuluokan muuntaja, kuten BERT, RoBERTa, T5, GPT-2 tai DistilBERT, ja hienosäätää (siirtooppiminen) mallia tiettyyn käyttötapaukseen.

Siitä huolimatta jopa siirtooppimisen suorittaminen valmiiksi koulutetulla NLP-mallilla voi usein olla haastava tehtävä, joka vaatii suuria määriä merkittyä tekstidataa ja asiantuntijatiimiä tietojen kuratointiin. Tämä monimutkaisuus estää useimpia organisaatioita käyttämästä näitä malleja tehokkaasti, mutta zero-shot-oppiminen auttaa ML:n harjoittajia ja organisaatioita voittamaan tämän puutteen.

Zero-shot-oppiminen on erityinen ML-tehtävä, jossa luokittelija oppii yhdelle tarrajoukolle harjoituksen aikana, ja sitten päättelyn aikana se arvioidaan eri tarrajoukolla, jota luokittelija ei ole koskaan nähnyt. NLP:ssä voit käyttää luonnollisen kielen päättelytehtävään (NLI) opetettua nollakuvan sekvenssiluokitinta tekstin luokittelemiseen ilman hienosäätöä. Tässä viestissä käytämme suosittua NLI:tä Bart malli bart-large-mnli twiittien luokittelemiseksi. Tämä on suuri esikoulutettu malli (1.6 Gt), saatavilla Hugging Face -mallikeskuksesta.

Hugging Face on tekoälyyritys, joka hallinnoi avoimen lähdekoodin alustaa (Hugging Face Hub), jossa on tuhansia valmiiksi koulutettuja NLP-malleja (muuntajia) yli 100 eri kielellä ja jotka tukevat erilaisia ​​kehyksiä, kuten TensorFlow ja PyTorch. Muuntajakirjasto auttaa kehittäjiä ja datatieteilijöitä pääsemään alkuun monimutkaisissa NLP- ja NLU-tehtävissä, kuten luokittelu, tiedon poimiminen, kysymyksiin vastaaminen, yhteenveto, kääntäminen ja tekstin luominen.

AWS ja halaavat kasvot ovat tehneet yhteistyötä yksinkertaistaakseen ja nopeuttaakseen NLP-mallien käyttöönottoa. Saatavilla on nyt joukko Deep Learning Container (DLC) -säilöjä PyTorchin tai TensorFlow'n harjoittelua ja päätelmiä varten sekä Hugging Face -estimaattorit ja ennustajat SageMaker Python SDK:ta varten. Nämä ominaisuudet auttavat kaikentasoisia kehittäjiä pääsemään NLP:n käyttöön helposti.

Katsaus ratkaisuun

Tarjoamme toimivan ratkaisun, joka hakee twiittejä reaaliajassa valituilta Twitter-tileiltä. Ratkaisumme esittelyyn käytämme kolmea tiliä, Amazon Web Services (@suomimeemi), AWS Security (@AWSSecurityInfo) ja Amazon Science (@AmazonScience) ja luokitella niiden sisältö johonkin seuraavista luokista: tietoturva, tietokanta, laskenta, tallennus ja koneoppiminen. Jos malli palauttaa luokan, jonka luottamuspiste on yli 40 %, lähetetään ilmoitus.

Seuraavassa esimerkissä malli luokitteli Amazon Web Services -tweetin koneoppimisluokkaan 97 %:n luottamuspisteellä ja loi hälytyksen.

Ratkaisu perustuu Hugging Face -esikoulutettuun muuntajamalliin (Hugging Face Hubista), joka luokittelee tweetit päättelyhetkellä toimitettujen tarrojen perusteella – mallia ei tarvitse kouluttaa. Seuraavat kuvakaappaukset näyttävät lisää esimerkkejä ja kuinka ne luokiteltiin.
Muutamia asiaankuuluvia esimerkkejä
Kannustamme sinua kokeilemaan ratkaisua itse. Lataa vain lähdekoodi osoitteesta GitHub-arkisto ja noudata README-tiedoston käyttöönotto-ohjeita.

Ratkaisuarkkitehtuuri

Ratkaisu pitää avoimen yhteyden Twitterin päätepisteeseen ja lähettää uuden twiitin saapuessa viestin jonoon. Kuluttaja lukee viestejä jonosta, soittaa luokituksen päätepisteeseen ja tuloksista riippuen ilmoittaa loppukäyttäjälle.

Seuraava on ratkaisun arkkitehtuurikaavio.
Ratkaisun laajuus
Ratkaisun työnkulku koostuu seuraavista osista:

  1. Ratkaisu perustuu Twitterin Stream API:hen saadakseen tweettejä, jotka vastaavat määritettyjä sääntöjä (tweetit kiinnostuksen kohteena olevilta tileiltä) reaaliajassa. Tätä varten säilön sisällä toimiva sovellus pitää avoimen yhteyden Twitterin päätepisteeseen. Viitata Twitter-sovellusliittymä lisätietoja.
  2. Säiliö käy Amazonin elastisten säiliöiden palvelu (Amazon ECS), täysin hallittu konttiorkesteripalvelu, jonka avulla voit helposti ottaa käyttöön, hallita ja skaalata säiliösovelluksia. Yksi tehtävä suoritetaan palvelimettomassa infrastruktuurissa, jota hallinnoi AWS-veljeskunta.
  3. Twitter Bearer -tunnus on tallennettu turvallisesti AWS Systems Manager -parametrikauppa, kyky AWS-järjestelmien päällikkö joka tarjoaa turvallisen, hierarkkisen tallennustilan konfigurointitiedoille ja salaisuuksille. Säilön kuvaa isännöidään Amazonin elastisten säiliörekisteri (Amazon ECR), täysin hallittu konttirekisteri, joka tarjoaa tehokkaan isännöinnin.
  4. Aina kun uusi twiitti saapuu, säilösovellus laittaa twiitin Amazonin yksinkertainen jonopalvelu (Amazon SQS) -jonossa. Amazon SQS on täysin hallittu viestijonopalvelu, jonka avulla voit irrottaa ja skaalata mikropalveluita, hajautettuja järjestelmiä ja palvelimettomia sovelluksia.
  5. Ratkaisun logiikka piilee an AWS Lambda toiminto. Lambda on palvelimeton, tapahtumapohjainen laskentapalvelu. Funktio kuluttaa uudet tweetit jonosta ja luokittelee ne kutsumalla päätepistettä.
  6. Päätepiste perustuu Hugging Face -malliin, ja sitä isännöi SageMaker. Päätepiste suorittaa päättelyn ja tulostaa twiitin luokan.
  7. Luokittelusta riippuen toiminto luo ilmoituksen kautta Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS), täysin hallittu viestintäpalvelu. Voit tilata SNS-aiheen, ja useat kohteet voivat vastaanottaa tämän ilmoituksen (katso Amazon SNS -tapahtumakohteet). Voit esimerkiksi toimittaa ilmoituksen postilaatikoihin sähköpostiviesteinä (katso Sähköposti-ilmoitukset).

Ota käyttöön Hugging Face -malleja SageMakerin avulla

Voit valita minkä tahansa yli 10,000 XNUMX julkisesti saatavilla olevasta mallista Halaava Face Model Hub ja ota ne käyttöön SageMakerilla käyttämällä Hugging Face Inference DLC:t.

Käytettäessä AWS-pilven muodostuminen, valitset yhden julkisesti saatavilla olevista Halaavat kasvopäätelmäsäiliöt ja määritä malli ja tehtävä. Tämä ratkaisu käyttää facebook/bart-large-mnli malli ja nollakuvan luokittelutehtävä, mutta voit valita minkä tahansa alla olevista malleista Zero-Shot-luokitus Hugging Face Model Hubissa. Määrität ne asettamalla ympäristömuuttujat HF_MODEL_ID ja HF_TASK CloudFormation-mallissasi seuraavan koodin mukaisesti:

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

Vaihtoehtoisesti, jos et käytä AWS CloudFormationia, voit saavuttaa samat tulokset muutamalla koodirivillä. Viitata Ota mallit käyttöön Amazon SageMakerissa lisätietoja.

Luokitellaksesi sisältöä, soitat vain SageMaker-päätepisteeseen. Seuraava on Python-koodinpätkä:

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

Huomaa Väärä arvo moni_luokka parametri osoittaa, että kunkin luokan kaikkien todennäköisyyksien summa on 1.

Ratkaisuparannuksia

Voit parantaa tässä ehdotettua ratkaisua tallentamalla twiitit ja mallitulokset. Amazonin yksinkertainen tallennuspalvelu (Amazon S3), objektien tallennuspalvelu, on yksi vaihtoehto. Voit kirjoittaa twiittejä, tuloksia ja muita metatietoja JSON-objekteina S3-säihöön. Voit sitten tehdä ad hoc -kyselyitä kyseiselle sisällölle käyttämällä Amazon Athena, interaktiivinen kyselypalvelu, jonka avulla on helppo analysoida tietoja Amazon S3:ssa tavallisella SQL:llä.

Voit käyttää historiaa paitsi oivallusten poimimiseen myös mukautetun mallin kouluttamiseen. Voit käyttää Hugging Face -tukea mallin kouluttamiseen omilla tiedoillasi SageMakerilla. Lisätietoja aiheesta Suorita koulutus Amazon SageMakerissa.

Tosielämän käyttötapaukset

Asiakkaat kokeilevat jo Hugging Face -malleja SageMakerissa. Bolivarin vakuutus, kolumbialainen rahoitus- ja vakuutusyhtiö, joka perustettiin vuonna 1939, on esimerkki.

”Kehitimme uhkailmoitusratkaisun asiakkaille ja vakuutusmeklareille. Käytämme Hugging Face -valmiiksi koulutettuja NLP-malleja luokitellaksemme asiaankuuluvien tilien twiittejä ja luodaksemme asiakkaillemme lähes reaaliaikaisia ​​ilmoituksia ehkäisystrategiana, joka auttaa vähentämään vaatimuksia. Vaatimus syntyy, koska asiakkaat eivät ole tietoisia riskitasosta, jolle he ovat alttiina. Ratkaisun avulla voimme herättää tietoisuutta asiakkaistamme ja muuttaa riskit konkreettisissa tilanteissa mitattavaksi."

– Julian Rico, Seguros Bolívarin tutkimus- ja osaamispäällikkö.

Seguros Bolívar työskenteli AWS:n kanssa heidän ratkaisunsa uudelleenarkkitehtuurissa; se perustuu nyt SageMakeriin ja muistuttaa tässä viestissä kuvattua.

Yhteenveto

Zero-shot-luokitus on ihanteellinen, kun sinulla on vähän tietoja mukautetun tekstiluokittimen kouluttamiseen tai kun sinulla ei ole varaa kouluttaa mukautettua NLP-mallia. Erikoiskäyttötapauksissa, kun teksti perustuu tiettyihin sanoihin tai termeihin, on parempi käyttää valvottua luokitusmallia, joka perustuu mukautettuun harjoitussarjaan.

Tässä viestissä näytimme sinulle, kuinka voit rakentaa uutisluokittelun käyttämällä Hugging Face nollakuvaa AWS:ssä. Käytimme Twitteriä uutislähteenä, mutta voit valita uutislähteen, joka sopii paremmin tarpeisiisi. Lisäksi voit helposti vaihtaa mallia, määrittämällä vain valitsemasi malli CloudFormation-mallissa.

Katso lähdekoodi kohdasta GitHub-arkisto Se sisältää täydelliset asennusohjeet. Voit kloonata, muuttaa, ottaa käyttöön ja käyttää sitä itse. Voit myös käyttää sitä lähtökohtana ja mukauttaa luokkia ja hälytyslogiikkaa tai rakentaa toisen ratkaisun samanlaiseen käyttötapaukseen.

Kokeile ja kerro meille mielipiteesi. Kuten aina, odotamme palautettasi. Voit lähettää sen tavallisille AWS-tukikontakteillesi tai AWS-foorumi SageMakerille.


Tietoja kirjoittajista

Rakenna uutisiin perustuva reaaliaikainen hälytysjärjestelmä Twitterin, Amazon SageMakerin ja Hugging Face PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.David Laredo on prototyyppiarkkitehti AWS Envision Engineeringissä LATAMissa, jossa hän on auttanut kehittämään useita koneoppimisprototyyppejä. Aiemmin hän on työskennellyt koneoppimisinsinöörinä ja tehnyt koneoppimista yli 5 vuotta. Hänen kiinnostuksen kohteitaan ovat NLP, aikasarjat ja end-to-end ML.

Rakenna uutisiin perustuva reaaliaikainen hälytysjärjestelmä Twitterin, Amazon SageMakerin ja Hugging Face PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Rafael Werneck on vanhempi prototyyppiarkkitehti AWS Envision Engineeringissä Brasiliassa. Aiemmin hän työskenteli ohjelmistokehitysinsinöörinä Amazon.com.br- ja Amazon RDS Performance Insights -sivustoilla.

Rakenna uutisiin perustuva reaaliaikainen hälytysjärjestelmä Twitterin, Amazon SageMakerin ja Hugging Face PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Vikram Elango on AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä Virginiassa Yhdysvalloissa. Vikram auttaa rahoitus- ja vakuutusalan asiakkaita suunnittelu- ja ajatusjohtajuudella rakentamaan ja ottamaan käyttöön koneoppimissovelluksia mittakaavassa. Hän keskittyy tällä hetkellä luonnollisen kielen käsittelyyn, vastuulliseen tekoälyyn, päätelmien optimointiin ja ML:n skaalaukseen koko yrityksessä. Vapaa-ajallaan hän nauttii matkustamisesta, vaeltamisesta, ruoanlaitosta ja telttailusta perheensä kanssa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen