AI 101
Hva er transformatornevrale nettverk?
Transformator nevrale nettverk beskrevet
transformers er en type maskinlæringsmodell som spesialiserer seg på å behandle og tolke sekvensielle data, noe som gjør dem optimale for naturlig språkbehandlingsoppgaver. For bedre å forstå hva en maskinlæringstransformator er, og hvordan de fungerer, la oss se nærmere på transformatormodeller og mekanismene som driver dem.
Denne artikkelen vil dekke:
- Sekvens-til-sekvens-modeller
- The Transformer Neural Network Architecture
- Oppmerksomhetsmekanismen
- Forskjeller mellom transformatorer og RNN-er/LSTM-er
Sekvens-til-sekvens-modeller
Sekvens-til-sekvens-modeller er en type NLP-modell som brukes til å konvertere sekvenser av en type til en sekvens av en annen type. Det finnes ulike typer sekvens-til-sekvens-modeller, som f.eks Gjentatte nevrale nettverk modeller og Langtidsminne (LSTM) modeller.
Tradisjonelle sekvens-til-sekvens-modeller som RNN-er og LSTMS er ikke fokus i denne artikkelen, men en forståelse av dem er nødvendig for å forstå hvordan transformatormodeller fungerer og hvorfor de er overlegne tradisjonelle sekvens-til-sekvens-modeller.
Kort fortalt består RNN-modeller og LSTM-modeller av koder- og dekodernettverk som analyserer inngangsdata på ulike tidspunkt. Kodermodellen er ansvarlig for å danne en kodet representasjon av ordene i inndataene. Ved hvert tidstrinn tar kodernettverket en inngangssekvens og en skjult tilstand fra forrige tidstrinn i serien. De skjulte tilstandsverdiene oppdateres etter hvert som dataene fortsetter gjennom nettverket, til siste tidstrinn, hvor en "kontekstvektor" genereres. Kontekstvektoren sendes deretter til dekodernettverket, som brukes til å generere en målsekvens ved å forutsi det mest sannsynlige ordet som pares med inngangsordet for de respektive tidstrinn.
Disse modellene kan utvides ved bruk av en "oppmerksomhetsmekanisme". En oppmerksomhetsmekanisme definerer hvilke deler av inngangsvektoren nettverket skal fokusere på for å generere riktig utgang. For å si det på en annen måte, lar en oppmerksomhetsmekanisme transformatormodellen behandle ett inngangsord samtidig som den tar hensyn til den relevante informasjonen i de andre inngangsordene. Oppmerksomhetsmekanismer maskerer også ord som ikke inneholder relevant informasjon.
Transformator nevrale nettverksarkitektur
Vi vil gå inn på oppmerksomhetsmekanismen mer detaljert senere, men la oss foreløpig ta en titt på arkitekturen til et transformatornevrale nettverk på et høyere nivå.
Generelt ser et transformatornevralt nettverk omtrent slik ut:
Selv om denne generelle strukturen kan endres mellom nettverk, vil kjernedelene forbli de samme: posisjonskodinger, ordvektorer, oppmerksomhetsmekanisme, fremmatingsnevrale nettverk.
Posisjonelle kodinger og ordvektorer
En transformator nevrale nettverk fungerer ved å ta en sekvens av innganger og konvertere disse inngangene til to andre sekvenser. Transformatoren produserer en sekvens av ordvektorinnleiringer og posisjonskodinger.
Ordvektorinnbygginger er bare teksten representert i et numerisk format som det nevrale nettverket kan behandle. I mellomtiden er posisjonskodingene vektoriserte representasjoner som inneholder informasjon om posisjonen til det gjeldende ordet var i inngangssetningen, i forhold til andre ord.
Andre tekstbaserte nevrale nettverksmodeller som RNN-er og LSTM-er bruker vektorer for å representere ordene i inngangsdata. Disse vektorinnbyggingene kartlegger ord til konstante verdier, men dette er begrensende fordi ord kan brukes i forskjellige sammenhenger. Et transformatornettverk løser dette problemet ved å gjøre ordverdier mer fleksible, ved å bruke sinusformede funksjoner for å la ordvektorene få forskjellige verdier avhengig av ordets plassering i setningen.
Dette gjør at den nevrale nettverksmodellen kan bevare informasjon om den relative posisjonen til inngangsordene, selv etter at vektorene beveger seg gjennom lagene i transformatornettverket.
Posisjonskodingene og ordvektorinnleiringene summeres sammen og sendes deretter inn i både koder- og dekodernettverk. Mens nevrale transformatornettverk bruker koder/dekoderskjemaer akkurat som RNN-er og LSTM-er, er en stor forskjell mellom dem at alle inngangsdata mates inn i nettverket samtidig, mens i RNN-er / LSTM-er sendes dataene sekvensielt.
Kodernettverkene er ansvarlige for å konvertere inngangene til representasjoner nettverket kan lære av, mens dekodernettverkene gjør det motsatte og konverterer kodingene til en sannsynlighetsfordeling som brukes til å generere de mest sannsynlige ordene i utgangssetningen. Det er avgjørende at både koder- og dekodernettverk har en oppmerksomhetsmekanisme.
Fordi GPU-er er i stand til parallell prosessering, brukes flere oppmerksomhetsmekanismer parallelt, som beregner relevant informasjon for alle inngangsordene. Denne evnen til å ta hensyn til flere ord, kalt "multi-head" oppmerksomhet, samtidig hjelper det nevrale nettverket å lære konteksten til et ord i en setning, og det er en av de viktigste fordelene som transformatornettverk har fremfor RNN-er og LSTM-er.
Oppmerksomhetsmekanismen
Oppmerksomhetsmekanismen er den viktigste delen av et transformatornettverk. Oppmerksomhetsmekanismen er det som gjør at transformatormodeller kan gå utover oppmerksomhetsgrensen til en typisk RNN- eller LSTM-modell. Tradisjonelle sekvens-til-sekvens-modeller forkaster alle de mellomliggende tilstandene og bruker bare den endelige tilstanden/kontekstvektoren ved initialisering av dekodernettverket for å generere spådommer om en inngangssekvens.
Å forkaste alt bortsett fra den endelige kontekstvektoren fungerer greit når inngangssekvensene er ganske små. Men etter hvert som lengden på en inngangssekvens øker, vil modellens ytelse forringes mens denne metoden brukes. Dette er fordi det blir ganske vanskelig å oppsummere en lang inngangssekvens som en enkelt vektor. Løsningen er å øke "oppmerksomheten" til modellen og bruke de mellomliggende kodertilstandene til å konstruere kontekstvektorer for dekoderen.
Oppmerksomhetsmekanismen definerer hvor viktige andre input-tokens er for modellen når kodinger opprettes for et gitt token. For eksempel er "det" et generelt pronomen, ofte brukt for å referere til dyr når kjønnet deres ikke er kjent. En oppmerksomhetsmekanisme ville la en transformatormodell bestemme at i den nåværende konteksten refererer "det" til et ekorn, fordi det kan undersøke alle de relevante ordene i inngangssetningen.
En oppmerksomhetsmekanisme kan brukes på tre forskjellige måter: koder-til-dekoder, koder-bare, dekoder-bare.
Enkoder-dekoder-oppmerksomhet lar dekoderen vurdere inngangssekvenser når den genererer en utgang, mens oppmerksomhetsmekanismene kun for koder og dekoder lar nettverkene vurdere alle deler av henholdsvis den forrige og den nåværende sekvensen.
Konstruksjonen av en oppmerksomhetsmekanisme kan deles inn i fem trinn:
- Beregning av en poengsum for alle kodertilstander.
- Beregning av oppmerksomhetsvekter
- Beregning av kontekstvektorer
- Oppdaterer kontekstvektor med forrige tidstrinn
- Generer utgang med dekoder
Det første trinnet er å la dekoderen beregne en poengsum for alle kodertilstandene. Dette gjøres ved å trene opp dekodernettverket, som er et grunnleggende feed-forward nevralt nettverk. Når dekoderen er trent på det første ordet i inngangssekvensen, er det ennå ikke opprettet noen intern/skjult tilstand, så koderens siste tilstand brukes vanligvis som dekoderens forrige tilstand.
For å beregne oppmerksomhetsvektene brukes en softmax-funksjon for å generere en sannsynlighetsfordeling for oppmerksomhetsvektene.
Når oppmerksomhetsvektene er beregnet, må kontekstvektoren beregnes. Dette gjøres ved å multiplisere oppmerksomhetsvektene og den skjulte tilstanden sammen for hvert tidstrinn.
Etter at kontekstvektoren er beregnet, brukes den sammen med ordet generert i forrige tidstrinn for å generere neste ord i utdatasekvensen. Fordi dekoderen ikke har noen tidligere utgang å referere til i det første tidstrinnet, brukes ofte et spesielt "start"-token i stedet.
Forskjeller mellom transformatorer og RNN-er/LSTM-er
La oss raskt dekke noen av forskjellene mellom RNN-er og LSTM-er.
RNN-er behandler innganger sekvensielt, mens en skjult tilstandsvektor opprettholdes og endres av inngangsordene når de beveger seg gjennom nettverket. De skjulte tilstandene til en RNN inneholder vanligvis svært lite relevant informasjon om de tidligere inngangene. Nye innganger overskriver ofte gjeldende tilstand, noe som fører til tap av informasjon og forringer ytelsen over tid.
Derimot behandler transformatormodeller hele inngangssekvensen på en gang. Oppmerksomhetsmekanismen lar hvert utgangsord bli informert av hver input og skjult tilstand, noe som gjør nettverket mer pålitelig for lange tekststykker.
LSTM-er er modifiserte versjoner av RNN-er, justert for å håndtere lengre inngangssekvenser. LSTM-arkitekturen bruker en struktur kalt "porter", med "inngangsporter", "utgangsporter" og "glemporter". Den gatede designen omhandler informasjonstapet som er vanlig for RNN-modeller. Data behandles fortsatt sekvensielt, og arkitekturens tilbakevendende design gjør LSTM-modeller vanskelige å trene ved bruk av parallell databehandling, noe som gjør treningstiden totalt sett lengre.
LSTM-ingeniører la ofte til oppmerksomhetsmekanismer til nettverket, som var kjent for å forbedre ytelsen til modellen. Imidlertid ble det etter hvert oppdaget at oppmerksomhetsmekanismen alene forbedret nøyaktigheten. Denne oppdagelsen førte til opprettelsen av transformatornettverk som brukte oppmerksomhetsmekanismer og parallell databehandling takket være GPUer.