Grunnleggende AI
Hva er Transformer Neural Networks?
Transformer Neural Networks beskrevet
Transformere er en type maskinlæringsmodell som spesialiserer seg på å prosessere og tolke sekvensielle data, noe som gjør dem optimale for naturlijke språkbehandling-oppgaver. For å bedre forstå hva en maskinlærings-transformer er, og hvordan de opererer, la oss ta en nærmere titt på transformer-modeller og mekanismene som driver dem.
Denne artikkelen vil dekke:
- Sequens-til-sekvens-modeller
- Transformer Neural Network-arkitektur
- Oppmerksomhetsmekanismen
- Forskjeller mellom transformere og RNN/LSTM
Sequens-til-sekvens-modeller
Sequens-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 forskjellige typer sekvens-til-sekvens-modeller, som Recurrent Neural Network-modeller og Long Short-Term Memory (LSTM)-modeller.
Tradisjonelle sekvens-til-sekvens-modeller som RNN og LSTM er ikke fokusert i denne artikkelen, men en forståelse av dem er nødvendig for å appresiere hvordan transformer-modeller opererer og hvorfor de er overlegne tradisjonelle sekvens-til-sekvens-modeller.
I korte trekk består RNN-modeller og LSTM-modeller av encoder- og decoder-nettverk som analyserer inndata på forskjellige tidspunkter. Encoder-modellen er ansvarlig for å danne en kodet representasjon av ordene i inndata. På hvert tidspunkt tar encoder-nettverket imot en inndata-sekvens og en skjult tilstand fra det foregående tidspunktet i serien. De skjulte tilstandsverdiene oppdateres når dataene går gjennom nettverket, til det siste tidspunktet, hvor en “kontekst-vektor” genereres. Kontekst-vektoren overføres deretter til decoder-nettverket, som brukes til å generere en målsekvens ved å forutsi det mest sannsynlige ordet som parer med inndata-ordet for de respektive tidspunktene.
Disse modellene kan utvides gjennom bruken av en “oppmerksomhetsmekanism”. En oppmerksomhetsmekanism definerer hvilke deler av inndata-vektoren nettverket skal fokusere på for å generere riktig utgang. For å si det på en annen måte, lar en oppmerksomhetsmekanism transformer-modellen prosessere ett inndata-ord samtidig som den også tar hensyn til den relevante informasjonen som inneholdes av de andre inndata-ordene. Oppmerksomhetsmekanismer maskerer også ut ord som ikke inneholder relevant informasjon.
Transformer Neural Network-arkitektur
Vi kommer til å gå gjennom oppmerksomhetsmekanismen i mer detalj senere, men for nå la oss ta en titt på arkitekturen til en transformer-neuralnettsverk på et høyere nivå.
Generelt ser en transformer-neuralnettsverk ut som følger:

Selv om denne generelle strukturen kan endres mellom nettverk, vil de grunnleggende delene forbli de samme: posisjonskodninger, ordvektorer, oppmerksomhetsmekanismen, feed-forward neuralnettsverk.
Posisjonskodninger og ordvektorer
En transformer-neuralnettsverk opererer ved å ta imot en sekvens av inndata og konvertere disse inndata til to andre sekvenser. Transformeren produserer en sekvens av ordvektor-embeddings og posisjonskodninger.
Ordvektor-embeddings er bare tekst representert i et numerisk format som neuralnettsverket kan prosessere. Mens posisjonskodningene er vektoriserte representasjoner som inneholder informasjon om posisjonen til det nåværende ordet i inndata-setningen, i forhold til andre ord.
Andre tekst-baserte neuralnettsverk-modeller som RNN og LSTM bruker vektorer til å representere ordene i inndata. Disse vektor-embeddings kartlegger ord til konstante verdier, men dette er begrensende fordi ord kan brukes i forskjellige sammenhenger. En transformer-nettverk løser dette problemet ved å gjøre ordverdier mer fleksible, ved å bruke sinus-formede funksjoner til å la ordvektorene ta på seg forskjellige verdier avhengig av posisjonen til ordet i setningen.
Dette lar neuralnettsverk-modellen bevare informasjon om den relative posisjonen til inndata-ordene, selv etter at vektorene flytter gjennom lagene i transformer-nettverket.
Posisjonskodningene og ordvektor-embeddingsene summeres sammen og overføres deretter til både encoder- og decoder-nettverkene. Mens transformer-neuralnettsverk bruker encoder/decoder-skjemaer som RNN og LSTM, er en av de største forskjellene mellom dem at all inndata overføres til nettverket samtidig, mens i RNN/LSTM overføres data sekvensielt.
Encoder-nettverkene er ansvarlige for å konvertere inndata til representasjoner som nettverket kan lære fra, mens decoder-nettverkene gjør det motsatte og konverterer kodningene til en sannsynlighetsfordeling som brukes til å generere de mest sannsynlige ordene i utgangssetningen. Avgjørende er at både encoder- og decoder-nettverkene har en oppmerksomhetsmekanism.
Fordi GPU-er kan utføre parallell prosessering, brukes flere oppmerksomhetsmekanismer parallelt, og beregner den relevante informasjonen for alle inndata-ordene. Evnen til å fokusere på flere ord samtidig, kalt “multi-head”-oppmerksomhet, hjelper neuralnettsverket med å lære konteksten til et ord i en setning, og det er en av de primære fordeler som transformer-nettverk har over RNN og LSTM.
Oppmerksomhetsmekanismen
Oppmerksomhetsmekanismen er den viktigste delen av en transformer-nettverk. Oppmerksomhetsmekanismen er det som lar transformer-modeller gå ut over oppmerksomhetsgrensen til en typisk RNN eller LSTM-modell. Tradisjonelle sekvens-til-sekvens-modeller kasserer alle mellomliggende tilstander og bruker bare den siste tilstanden/kontekst-vektoren når de initialiserer decoder-nettverket for å generere forutsigelser om en inndata-sekvens.
Å kassere alt annet enn den siste kontekst-vektoren fungerer greit når inndata-sekvensene er ganske små. Men når lengden på en inndata-sekvens øker, vil modellens ytelse forverres når denne metoden brukes. Dette skyldes at det blir ganske vanskelig å summerere en lang inndata-sekvens som en enkelt vektor. Løsningen er å øke “oppmerksomheten” til modellen og bruke de mellomliggende encoder-tilstandene til å konstruere kontekst-vektorer for decoderen.
Oppmerksomhetsmekanismen definerer hvor viktig andre inndata-token er for modellen når kodninger skapes for et gitt token. For eksempel er “det” et generelt pronomen, ofte brukt til å referere til dyr når deres kjønn ikke er kjent. En oppmerksomhetsmekanism ville la en transformer-modell bestemme at i den nåværende konteksten “det” refererer til en ekorn, fordi den kan undersøke alle relevante ordene i inndata-setningen.
En oppmerksomhetsmekanism kan brukes på tre forskjellige måter: encoder-til-decoder, encoder-bare, decoder-bare.
Encoder-decoder-oppmerksomhet lar decoderen vurdere inndata-sekvenser når den genererer en utgang, mens encoder-bare og decoder-bare oppmerksomhetsmekanismer lar nettverkene vurdere alle deler av de foregående og nåværende sekvensene henholdsvis.
Konstruksjonen av en oppmerksomhetsmekanism kan deles inn i fem trinn:
- Beregning av en score for alle encoder-tilstander.
- Beregning av oppmerksomhetsvektene
- Beregning av kontekst-vektorer
- Oppdatering av kontekst-vektoren med forrige tidspunkts utgang
- Generering av utgang med decoder
Det første trinnet er å la decoderen beregne en score for alle encoder-tilstandene. Dette gjøres ved å trene decoder-nettverket, som er et grundig feed-forward neuralnettsverk. Når decoderen er trenet på det første ordet i inndata-sekvensen, er det ingen interne/skjulte tilstander som er skapt ennå, så encoderens siste tilstand brukes vanligvis som decoderens forrige tilstand.
For å beregne oppmerksomhetsvektene, brukes en softmax-funksjon til å generere en sannsynlighetsfordeling for oppmerksomhetsvektene.
Når oppmerksomhetsvektene er beregnet, må kontekst-vektoren beregnes. Dette gjøres ved å multiplisere oppmerksomhetsvektene og den skjulte tilstanden sammen for hvert tidspunkt.
Etter at kontekst-vektoren er beregnet, brukes den sammen med ordet som ble generert i det foregående tidspunktet til å generere det neste ordet i utgangssekvensen. Fordi decoderen ikke har noen forrige utgang å referere til i det første tidspunktet, brukes ofte et spesielt “start”-token i stedet.
Forskjeller mellom transformere og RNN/LSTM
La oss dekke noen av forskjellene mellom RNN og LSTM.
RNN prosesserer inndata sekvensielt, mens en skjult tilstandsvektor opprettholdes og endres av inndata-ordene når de flytter gjennom nettverket. De skjulte tilstandene til en RNN inneholder vanligvis svært lite relevant informasjon om de tidligere inndataene. Nye inndata overskriver ofte den nåværende tilstanden, noe som forårsaker informasjonstap og forverrer ytelsen over tid.
I motsetning prosesserer transformer-modeller hele inndata-sekvensen på en gang. Oppmerksomhetsmekanismen lar hver utgangs-ord bli informert av hver inndata og skjult tilstand, noe som gjør nettverket mer pålitelig for lange tekststykker.
LSTM er en modifisert versjon av RNN, justert for å håndtere lengre inndata-sekvenser. LSTM-arkitekturen bruker en struktur kalt “porter”, med “inngangsporter”, “utgangsporter” og “glemmeporter”. Den porter-baserte designen håndterer informasjonstap som er vanlig for RNN-modeller. Data prosesseres fremdeles sekvensielt, og arkitekturens rekursive design gjør det vanskelig å trene LSTM-modeller ved hjelp av parallell prosessering, noe som gjør trenings-tiden lengre totalt.
LSTM-ingeniører ville ofte legge til oppmerksomhetsmekanismer til nettverket, noe som var kjent for å forbedre modellens ytelse. Men det ble til slutt oppdaget at oppmerksomhetsmekanismen alene forbedret nøyaktigheten. Denne oppdagelsen ledet til skapelsen av transformer-nettverk som brukte oppmerksomhetsmekanismer og parallell prosessering takket være GPU-er.












