Nettsamtaler er allestedsnærværende i det moderne liv, og spenner over bransjer fra videospill til telekommunikasjon. Dette har ført til en eksponentiell vekst i mengden av nettbaserte samtaledata, noe som har hjulpet i utviklingen av toppmoderne NLP-systemer (naturlig språkbehandling) som chatbots og modeller for generering av naturlig språk (NLG). Over tid har ulike NLP-teknikker for tekstanalyse også utviklet seg. Dette nødvendiggjør kravet om en fullstendig administrert tjeneste som kan integreres i applikasjoner ved hjelp av API-kall uten behov for omfattende maskinlæringskompetanse (ML). AWS tilbyr ferdigtrente AWS AI-tjenester som Amazon Comprehend, som effektivt kan håndtere NLP-brukstilfeller som involverer klassifisering, tekstoppsummering, enhetsgjenkjenning og mer for å samle inn innsikt fra tekst.
I tillegg har nettsamtaler ført til et utbredt fenomen med utradisjonell bruk av språk. Tradisjonelle NLP-teknikker gir ofte dårlige resultater på disse tekstdataene på grunn av de stadig utviklende og domenespesifikke vokabularene som finnes innenfor forskjellige plattformer, samt de betydelige leksikalske avvikene til ord fra riktig engelsk, enten ved et uhell eller med vilje som en form for motstandsangrep .
I dette innlegget beskriver vi flere ML-tilnærminger for tekstklassifisering av nettsamtaler med verktøy og tjenester tilgjengelig på AWS.
Forutsetninger
Før du dykker dypt inn i denne brukssaken, må du fullføre følgende forutsetninger:
- Sett opp en AWS-konto og opprette en IAM-bruker.
- Sett opp AWS CLI og AWS SDK-er.
- (Valgfritt) Konfigurer din Cloud9 IDE-miljø.
datasett
For dette innlegget bruker vi Jigsaw Unintended Bias in Toxicity Classification dataset, en målestokk for det spesifikke problemet med klassifisering av toksisitet i nettsamtaler. Datasettet gir toksisitetsetiketter så vel som flere undergruppeattributter som uanstendig, identitetsangrep, fornærmelse, trussel og seksuelt eksplisitt. Etiketter er gitt som brøkverdier, som representerer andelen av menneskelige kommentatorer som trodde at attributtet ble brukt på et gitt tekststykke, som sjelden er enstemmig. For å generere binære etiketter (for eksempel giftige eller ikke-giftige), brukes en terskel på 0.5 på brøkverdiene, og kommentarer med verdier høyere enn terskelen behandles som den positive klassen for den etiketten.
Innebygging av underord og RNN-er
For vår første modelleringstilnærming bruker vi en kombinasjon av innbygging av underord og tilbakevendende nevrale nettverk (RNN) for å trene tekstklassifiseringsmodeller. Innebygging av underord ble introdusert av Bojanowski et al. i 2017 som en forbedring av tidligere innebyggingsmetoder på ordnivå. Tradisjonelle Word2Vec skip-gram-modeller er opplært til å lære en statisk vektorrepresentasjon av et målord som optimalt forutsier ordets kontekst. Underordsmodeller, derimot, representerer hvert målord som en pose med tegnet n-gram som utgjør ordet, der et n-gram er sammensatt av et sett med n påfølgende tegn. Denne metoden gjør det mulig for innebyggingsmodellen å bedre representere den underliggende morfologien til beslektede ord i korpuset, så vel som beregningen av innebygginger for nye ord utenfor vokabularet (OOV). Dette er spesielt viktig i sammenheng med nettsamtaler, et problemområde der brukere ofte staver ord feil (noen ganger med vilje for å unngå gjenkjenning) og også bruker et unikt, stadig utviklende ordforråd som kanskje ikke fanges opp av et generelt treningskorpus.
Amazon SageMaker gjør det enkelt å trene og optimalisere en uovervåket innbyggingsmodell for underord på ditt eget korpus av domenespesifikke tekstdata med den innebygde BlazingText-algoritme. Vi kan også laste ned eksisterende generelle modeller som er trent på store datasett med netttekst, for eksempel følgende Engelskspråklige modeller tilgjengelig direkte fra fastText. Fra SageMaker bærbare instans, kjør ganske enkelt følgende for å laste ned en forhåndsopplært fastText-modell:
Enten du har trent dine egne innebygginger med BlazingText eller lastet ned en forhåndstrent modell, er resultatet en zippet modellbinær som du kan bruke med gensim-biblioteket for å bygge inn et gitt målord som en vektor basert på dets konstituerende underord:
Etter at vi har forhåndsbehandlet et gitt tekstsegment, kan vi bruke denne tilnærmingen til å generere en vektorrepresentasjon for hvert av de konstituerende ordene (adskilt med mellomrom). Vi bruker deretter SageMaker og et rammeverk for dyp læring som PyTorch for å trene et tilpasset RNN med et binært eller multilabel klassifiseringsmål for å forutsi om teksten er giftig eller ikke og den spesifikke undertypen av toksisitet basert på merkede treningseksempler.
For å laste opp din forhåndsbehandlede tekst til Amazon enkel lagringstjeneste (Amazon S3), bruk følgende kode:
For å starte skalerbar multi-GPU-modellopplæring med SageMaker, skriv inn følgende kode:
Innen , definerer vi et PyTorch-datasett som brukes av train.py
å forberede tekstdataene for opplæring og evaluering av modellen:
Merk at denne koden forutser at vectors.zip
filen som inneholder fastText- eller BlazingText-innbyggingene dine vil bli lagret i .
I tillegg kan du enkelt distribuere forhåndstrente fastText-modeller på egen hånd til levende SageMaker-endepunkter for å beregne innebyggingsvektorer på farten for bruk i relevante oppgaver på ordnivå. Se følgende GitHub eksempel for mer informasjon.
Transformatorer med klemende ansikt
For vår andre modelleringstilnærming går vi over til bruken av Transformers, introdusert i papiret Oppmerksomhet er alt du trenger. Transformatorer er dyplæringsmodeller designet for bevisst å unngå fallgruvene til RNN-er ved å stole på en selvoppmerksomhetsmekanisme for å trekke globale avhengigheter mellom input og output. Transformer-modellarkitekturen tillater betydelig bedre parallellisering og kan oppnå høy ytelse på relativt kort treningstid.
Bygget på suksessen til Transformers, BERT, introdusert i avisen BERT: Fortrening av Deep Bidirectional Transformers for Language Understanding, lagt til toveis foropplæring for språkrepresentasjon. Inspirert av Cloze-oppgaven er BERT forhåndsopplært med maskert språkmodellering (MLM), der modellen lærer å gjenopprette de originale ordene for tilfeldig maskerte tokens. BERT-modellen er også forhåndstrent på den neste setningsprediksjonsoppgaven (NSP) for å forutsi om to setninger er i riktig leserekkefølge. Siden innkomsten i 2018 har BERT og dens varianter blitt mye brukt i tekstklassifiseringsoppgaver.
Vår løsning bruker en variant av BERT kjent som RoBERTa, som ble introdusert i papiret RoBERTa: En Robust Optimized BERT Pretraining Approach. ROBERTa forbedrer BERT-ytelsen ytterligere på en rekke naturlige språkoppgaver ved å optimalisere modelltrening, inkludert treningsmodeller lengre på et 10 ganger større korpus, ved å bruke optimaliserte hyperparametre, dynamisk tilfeldig maskering, fjerning av NSP-oppgaven og mer.
Våre RobERTa-baserte modeller bruker Klemme ansikts-transformatorer library, som er et populært Python-rammeverk med åpen kildekode som gir høykvalitetsimplementeringer av alle slags toppmoderne transformatormodeller for en rekke NLP-oppgaver. Hugging Face har inngått samarbeid med AWS slik at du enkelt kan trene og distribuere Transformer-modeller på SageMaker. Denne funksjonaliteten er tilgjengelig gjennom Hugging Face AWS Deep Learning Container-bilder, som inkluderer bibliotekene Transformers, Tokenizers og Datasett, og optimalisert integrasjon med SageMaker for modelltrening og inferens.
I implementeringen vår arver vi RoBERTa-arkitektur-ryggraden fra Hugging Face Transformers-rammeverket og bruker SageMaker til å trene og distribuere vår egen tekstklassifiseringsmodell, som vi kaller RoBERTox. RobERTox bruker byte-parkoding (BPE), introdusert i Nevral maskinoversettelse av sjeldne ord med underordsenheter, for å tokenisere inndatatekst til representasjoner av underord. Vi kan deretter trene våre modeller og tokenizere på Jigsaw-dataene eller et hvilket som helst stort domenespesifikk korpus (som chat-loggene fra et spesifikt spill) og bruke dem til tilpasset tekstklassifisering. Vi definerer vår egendefinerte klassifiseringsmodellklasse i følgende kode:
Før trening forbereder vi tekstdata og etiketter ved hjelp av Hugging Faces datasettbibliotek og laster opp resultatet til Amazon S3:
Vi starter opplæring av modellen på lignende måte som RNN:
Til slutt illustrerer følgende Python-kodebit prosessen med å betjene RobERTox via et live SageMaker-endepunkt for sanntidstekstklassifisering for en JSON-forespørsel:
Evaluering av modellytelse: Jigsaw utilsiktet bias-datasett
Følgende tabell inneholder ytelsesmålinger for modeller som er trent og evaluert på data fra Jigsaw Unintended Bias in Toxicity Detection Kaggle-konkurransen. Vi trente modeller for tre forskjellige, men sammenhengende oppgaver:
- Binært tilfelle – Modellen ble trent på hele treningsdatasettet for å forutsi
toxicity
bare etikett - Finkornet sak – Delmengden av treningsdataene som
toxicity>=0.5
ble brukt til å forutsi andre toksisitetssubtypeetiketter (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Multitask sak – Det fullstendige treningsdatasettet ble brukt til å forutsi alle seks etikettene samtidig
Vi trente RNN- og RobERTa-modeller for hver av disse tre oppgavene ved å bruke brøketikettene fra Jigsaw, som tilsvarer andelen annotatorer som mente etiketten var passende for teksten, samt med binære etiketter kombinert med klassevekter i nettverket tapsfunksjon. I det binære merkeskjemaet ble proporsjonene satt til 0.5 for hver tilgjengelig etikett (1 hvis etikett>=0.5, ellers 0), og modelltapfunksjonene ble vektet basert på de relative proporsjonene til hver binær etikett i treningsdatasettet. I alle tilfeller fant vi ut at bruk av brøketikettene direkte resulterte i den beste ytelsen, noe som indikerer merverdien av informasjonen som ligger i graden av samsvar mellom annotatorer.
Vi viser to modellberegninger: gjennomsnittlig presisjon (AP), som gir en oppsummering av presisjonsgjenkallingskurven ved å beregne det vektede gjennomsnittet av presisjonsverdiene oppnådd ved hver klassifiseringsterskel, og arealet under mottakerdriftskarakteristikken (AUC) , som aggregerer modellytelse på tvers av klassifiseringsterskler med hensyn til sann positiv rate og falsk positiv rate. Merk at den sanne klassen for en gitt tekstforekomst i testsettet tilsvarer om den sanne andelen er større enn eller lik 0.5 (1 hvis etikett>=0.5, ellers 0).
. | Innebygging av underord + RNN | ROBERTA | ||
. | Brøketiketter | Binære etiketter + Klassevekting | Brøketiketter | Binære etiketter + Klassevekting |
Binary | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Finkornet | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Multitask | AP=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
konklusjonen
I dette innlegget presenterte vi to tekstklassifiseringstilnærminger for nettsamtaler ved bruk av AWS ML-tjenester. Du kan generalisere disse løsningene på tvers av nettbaserte kommunikasjonsplattformer, med bransjer som spilling spesielt sannsynlig å dra nytte av forbedret evne til å oppdage skadelig innhold. I fremtidige innlegg planlegger vi å diskutere en ende-til-ende-arkitektur for sømløs distribusjon av modeller til AWS-kontoen din.
Hvis du vil ha hjelp til å akselerere bruken av ML i produktene og prosessene dine, kan du kontakte Amazon ML Solutions Lab.
Om forfatterne
Ryan Brand er datavitenskapsmann i Amazon Machine Learning Solutions Lab. Han har spesifikk erfaring med å anvende maskinlæring på problemer innen helsetjenester og biovitenskap, og på fritiden liker han å lese historie og science fiction.
Sourav Bhabesh er dataforsker ved Amazon ML Solutions Lab. Han utvikler AI/ML-løsninger for AWS-kunder på tvers av ulike bransjer. Spesialiteten hans er Natural Language Processing (NLP) og brenner for dyp læring. Utenom jobben liker han å lese bøker og reise.
Liutong Zhou er en Applied Scientist ved Amazon ML Solutions Lab. Han bygger skreddersydde AI/ML-løsninger for AWS-kunder på tvers av ulike bransjer. Han spesialiserer seg på Natural Language Processing (NLP) og brenner for multimodal dyplæring. Han er en lyrisk tenor og liker å synge operaer utenom jobben.
Sia Gholami er senior dataforsker ved Amazon ML Solutions Lab, hvor han bygger AI/ML-løsninger for kunder på tvers av ulike bransjer. Han brenner for naturlig språkbehandling (NLP) og dyp læring. Utenom jobben liker Sia å tilbringe tid i naturen og spille tennis.
Daniel Horowitz er en Applied AI Science Manager. Han leder et team av forskere på Amazon ML Solutions Lab som jobber med å løse kundeproblemer og drive skyadopsjon med ML.
- Myntsmart. Europas beste Bitcoin og Crypto Exchange.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. FRI TILGANG.
- CryptoHawk. Altcoin Radar. Gratis prøveperiode.
- Kilde: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- evne
- Om oss
- akselerer
- Logg inn
- Oppnå
- oppnådd
- tvers
- la til
- Adopsjon
- Avtale
- AI
- AI-tjenester
- Alle
- tillater
- Amazon
- beløp
- analyse
- api
- søknader
- anvendt
- Påfør
- påføring
- tilnærming
- tilnærminger
- hensiktsmessig
- arkitektur
- AREA
- attributter
- tilgjengelig
- gjennomsnittlig
- AWS
- veske
- benchmark
- nytte
- BEST
- Bedre
- mellom
- større
- bøker
- bygger
- innebygd
- ring
- saken
- saker
- tegn
- klasse
- klassifisering
- Cloud
- kode
- kombinasjon
- kombinert
- kommentarer
- Kommunikasjon
- konkurranse
- fullføre
- komponert
- beregningen
- Beregn
- databehandling
- påfølgende
- stadig
- kontakt
- Container
- inneholder
- innhold
- Samtale
- samtaler
- skape
- skjøger
- skikk
- kunde
- Kunder
- dato
- dataforsker
- dyp
- utplassere
- distribusjon
- beskrive
- designet
- detaljer
- Gjenkjenning
- Bestem
- Utvikling
- forskjellig
- Dimensjon
- direkte
- diskutere
- Vise
- nedlasting
- stasjonen
- under
- dynamisk
- hver enkelt
- lett
- effektivt
- muliggjøre
- ende til ende
- Endpoint
- Engelsk
- Enter
- enhet
- evaluering
- utvikling
- eksempel
- eksempler
- eksisterende
- erfaring
- ekspertise
- omfattende
- Face
- Mote
- Fiction
- Først
- etter
- skjema
- Forward
- funnet
- brøk
- Rammeverk
- Gratis
- fra
- fullt
- funksjon
- funksjonalitet
- funksjoner
- videre
- framtid
- spill
- Games
- gaming
- general
- generell
- generere
- generasjonen
- Global
- større
- Vekst
- håndtere
- hode
- helsetjenester
- hjelpe
- hjulpet
- Høy
- høykvalitets
- historie
- HTTPS
- menneskelig
- Identitet
- gjennomføring
- viktig
- forbedret
- forbedring
- inkludere
- Inkludert
- bransjer
- informasjon
- iboende
- inngang
- innsikt
- inspirert
- f.eks
- Fornærmelse
- integrert
- integrering
- IT
- stikksag
- Jobb
- nøkler
- kjent
- lab
- Etiketten
- merking
- etiketter
- Språk
- stor
- større
- lag
- Fører
- LÆRE
- læring
- Led
- Bibliotek
- Life Sciences
- Sannsynlig
- leve
- laste
- maskin
- maskinlæring
- gjøre
- GJØR AT
- fikk til
- leder
- maske
- masker
- Match
- Matrix
- mekanisme
- Minne
- metoder
- Metrics
- kunne
- ML
- modell
- modeller
- mer
- flere
- Naturlig
- Natur
- nettverk
- nettverk
- neste
- bærbare
- Antall
- Tilbud
- på nett
- drift
- Optimalisere
- optimalisert
- rekkefølge
- original
- Annen
- ellers
- egen
- Papir
- spesielt
- samarbeid
- lidenskapelig
- ytelse
- brikke
- Plattformer
- spiller
- vær så snill
- Populær
- positiv
- innlegg
- forutsi
- prediksjon
- Forbered
- forrige
- Problem
- problemer
- prosess
- Prosesser
- prosessering
- Produkter
- Projeksjon
- forutsatt
- gir
- Lesning
- sanntids
- Gjenopprette
- relevant
- fjerne
- representere
- representasjon
- representerer
- anmode
- retur
- avkastning
- Rolle
- Kjør
- skalerbar
- ordningen
- Vitenskap
- VITENSKAPER
- Forsker
- forskere
- sømløs
- segmentet
- tjeneste
- Tjenester
- servering
- sett
- flere
- Kort
- signifikant
- lignende
- Enkelt
- siden
- SIX
- Størrelse
- løsning
- Solutions
- LØSE
- Rom
- mellomrom
- spesialisert
- Spesialitet
- spesifikk
- utgifter
- state-of-the-art
- Stater
- lagring
- suksess
- Systemer
- Target
- oppgaver
- lag
- teknikker
- telekommunikasjon
- test
- De
- tre
- terskel
- Gjennom
- tid
- ganger
- tokens
- verktøy
- lommelykt
- tradisjonelle
- Tog
- Kurs
- overgang
- Oversettelse
- Traveling
- etter
- unik
- bruke
- Brukere
- validering
- verdi
- variasjon
- ulike
- video
- videospill
- om
- HVEM
- innenfor
- uten
- ord
- Arbeid
- arbeid
- Din