GrundlÃĶggende AI
Hvad er Transformer Neural Networks?
Transformer Neural Networks beskrevet
Transformatorer er en type maskinlÃĶringsmodel, der specialiserer sig i at behandle og fortolke sekventielle data, hvilket gÃļr dem optimale til naturligsprogsbehandlingsopgaver. For bedre at forstÃĨ, hvad en maskinlÃĶringstransformator er, og hvordan de fungerer, skal vi tage en nÃĶrmere kig pÃĨ transformatormodellerne og de mekanismer, der driver dem.
Denne artikel vil dÃĶkke fÃļlgende emner:
- Sequence-til-Sequence-modeller
- Transformer Neural Network-arkitektur
- OpmÃĶrksomhedsmechanismen
- Forskelle mellem Transformatorer og RNNâer/LSTMâer
Sequence-til-Sequence-modeller
Sequence-til-Sequence-modeller er en type NLP-model, der bruges til at konvertere sekvenser af en type til en sekvens af en anden type. Der er forskellige typer af Sequence-til-Sequence-modeller, sÃĨsom Rekurrente Neurale NetvÃĶrksmodeller og Lang Korttidshukommelse (LSTM)-modeller.
Traditionelle Sequence-til-Sequence-modeller som RNNâer og LSTMâer er ikke fokus for denne artikel, men en forstÃĨelse af dem er nÃļdvendig for at vÃĶrdsÃĶtte, hvordan transformatormodeller fungerer og hvorfor de er overlegne traditionelle Sequence-til-Sequence-modeller.
I korte trÃĶk bestÃĨr RNN-modeller og LSTM-modeller af encoder- og decoder-netvÃĶrk, der analyserer inputdata pÃĨ forskellige tidspunkter. Encoder-modellen er ansvarlig for at danne en kodet reprÃĶsentation af ordene i inputdataen. Ved hvert tidspunkt modtager encoder-netvÃĶrket en inputsekvens og en skjult tilstand fra det foregÃĨende tidspunkt i serien. De skjulte tilstandsvÃĶrdier opdateres, mens dataene passerer gennem netvÃĶrket, indtil det sidste tidspunkt, hvor en âkontekstvektorâ genereres. Kontekstvektoren overfÃļres herefter til decoder-netvÃĶrket, der bruges til at generere en mÃĨlsekvens ved at forudsige det mest sandsynlige ord, der parres med inputordet for de respektive tidspunkter.
Disse modeller kan udvides gennem brugen af en âopmÃĶrksomhedsmechanismeâ. En opmÃĶrksomhedsmechanisme definerer, hvilke dele af inputvektoren netvÃĶrket skal fokusere pÃĨ for at generere den korrekte output. Med andre ord, en opmÃĶrksomhedsmechanisme lÃĨter transformator-modellen behandle ÃĐt inputord, samtidig med at den ogsÃĨ kan fokusere pÃĨ den relevante information, der er indeholdt i de andre inputord.
Transformer Neural Network-arkitektur
Vi vil gÃĨ mere i detalje med opmÃĶrksomhedsmechanismen senere, men for nu skal vi tage et kig pÃĨ arkitekturen af en transformer neural network pÃĨ et hÃļjere niveau.
Generelt ser en transformer neural network ud som fÃļlger:

Selvom denne generelle struktur kan ÃĶndre sig mellem netvÃĶrk, vil de centrale dele forblive de samme: positionskodninger, ordvektorer, opmÃĶrksomhedsmechanisme, feed-forward neuralt netvÃĶrk.
Positionskodninger og Ordvektorer
En transformer neural network opererer ved at tage en sekvens af input og konvertere disse input til to andre sekvenser. Transformator-produktet er en sekvens af ordvektor-embedding og positionskodninger.
Ordvektor-embedding er blot tekst reprÃĶsenteret i en numerisk format, som neuralt netvÃĶrk kan behandle. Imens er positionskodningerne vektoriserede reprÃĶsentationer, der indeholder information om positionen af det nuvÃĶrende ord i forhold til andre ord.
Andre tekstbaserede neurale netvÃĶrksmodeller som RNNâer og LSTMâer bruger vektorer til at reprÃĶsentere ordene i inputdataen. Disse vektor-embedding mapper ord til konstante vÃĶrdier, men dette er begrÃĶnsende, fordi ord kan bruges i forskellige sammenhÃĶnge. En transformator-netvÃĶrk lÃļser dette problem ved at gÃļre ordvÃĶrdierne mere fleksible, ved at bruge sinusoidale funktioner til at lade ordvektorerne tage pÃĨ forskellige vÃĶrdier afhÃĶngigt af ordets position i sÃĶtningen.
Dette tillader neuralt netvÃĶrksmodel at bevare information om den relative position af inputordene, selv efter vektorerne passerer gennem lagene i transformator-netvÃĶrket.
Positionskodningerne og ordvektor-embeddingene lÃĶgges sammen og overfÃļres herefter til bÃĨde encoder- og decoder-netvÃĶrkene. Selvom transformer neurale netvÃĶrk bruger encoder/decoder-skemaer ligesom RNNâer og LSTMâer, er en af de stÃļrste forskelle mellem dem, at alle inputdataene fÃļres ind i netvÃĶrket pÃĨ samme tid, hvorimod i RNNâer/LSTMâer fÃļres dataene ind sekventielt.
Encoder-netvÃĶrkene er ansvarlige for at konvertere inputdataene til reprÃĶsentationer, som netvÃĶrket kan lÃĶre fra, mens decoder-netvÃĶrkene gÃļr det modsatte og konverterer kodningerne til en sandsynlighedsfordeling, der bruges til at generere de mest sandsynlige ord i output-sÃĶtningen. AfgÃļrende er, at bÃĨde encoder- og decoder-netvÃĶrkene har en opmÃĶrksomhedsmechanisme.
Fordi GPUâer kan udfÃļre parallel procesering, bruges multiple opmÃĶrksomhedsmechanismer i parallel, beregner den relevante information for alle inputordene. Denne evne til at fokusere pÃĨ multiple ord pÃĨ samme tid hjÃĶlper neuralt netvÃĶrk med at lÃĶre konteksten af et ord i en sÃĶtning, og det er en af de primÃĶre fordele, som transformator-netvÃĶrk har over RNNâer og LSTMâer.
OpmÃĶrksomhedsmechanismen
OpmÃĶrksomhedsmechanismen er den vigtigste del af en transformator-netvÃĶrk. OpmÃĶrksomhedsmechanismen er det, der tillader transformator-modeller at gÃĨ ud over opmÃĶrksomhedsgrÃĶnsen for en typisk RNN eller LSTM-model. Traditionelle Sequence-til-Sequence-modeller kasserer alle mellemstats og bruger kun den sidste stat/kontekstvektor, nÃĨr de initialiserer decoder-netvÃĶrket til at generere forudsigelser om en inputsekvens.
Kassering af alt andet end den sidste kontekstvektor fungerer okay, nÃĨr inputsekvenserne er ret smÃĨ. Men nÃĨr lÃĶngden af en inputsekvens Ãļges, vil modellens prÃĶstation falde, hvis denne metode bruges. Dette skyldes, at det kan vÃĶre ret svÃĶrt at sammenfatte en lang inputsekvens som en enkelt vektor. LÃļsningen er at Ãļge âopmÃĶrksomhedenâ af modellen og bruge de mellemstats fra encoderen til at konstruere kontekstvektorer for decoderen.
OpmÃĶrksomhedsmechanismen definerer, hvor vigtigt andre inputtegn er for modellen, nÃĨr kodninger oprettes for et givent tegn. For eksempel er âdetâ et generelt pronomen, ofte brugt til at referere til dyr, nÃĨr deres kÃļn ikke er kendt. En opmÃĶrksomhedsmechanisme ville lade en transformator-model bestemme, at i den nuvÃĶrende kontekst âdetâ refererer til en egern, fordi den kan undersÃļge alle relevante ord i input-sÃĶtningen.
En opmÃĶrksomhedsmechanisme kan bruges pÃĨ tre forskellige mÃĨder: encoder-til-decoder, encoder-kun, decoder-kun.
Encoder-decoder-opmÃĶrksomhed lÃĨter decoderen overveje inputsekvenser, nÃĨr den genererer en output, mens encoder-kun og decoder-kun opmÃĶrksomhedsmechanismer lÃĨter netvÃĶrkene overveje alle dele af de foregÃĨende og nuvÃĶrende sekvenser henholdsvis.
Konstruktionen af en opmÃĶrksomhedsmechanisme kan deles i fem trin:
- Beregning af en score for alle encoder-tilstande.
- Beregning af opmÃĶrksomheds-vÃĶgtene
- Beregning af kontekstvektorer
- Opdatering af kontekstvektor med forrige tidspunkts output
- Generering af output med decoder
Det fÃļrste trin er at lade decoderen beregne en score for alle encoder-tilstande. Dette gÃļres ved at trÃĶne decoder-netvÃĶrket, der er et grundlÃĶggende feed-forward neuralt netvÃĶrk. NÃĨr decoderen trÃĶnes pÃĨ det fÃļrste ord i inputsekvensen, er der ikke oprettet nogen intern/hemmelig tilstand endnu, sÃĨ encoderens sidste tilstand bruges typisk som decoders forrige tilstand.
For at beregne opmÃĶrksomheds-vÃĶgtene bruges en softmax-funktion til at generere en sandsynlighedsfordeling for opmÃĶrksomheds-vÃĶgtene.
NÃĨr opmÃĶrksomheds-vÃĶgtene er beregnet, skal kontekstvektoren beregnes. Dette gÃļres ved at multiplicere opmÃĶrksomheds-vÃĶgtene og den skjulte tilstand sammen for hvert tidspunkt.
Efter at kontekstvektoren er beregnet, bruges den sammen med ordet, der er genereret i det foregÃĨende tidspunkt, til at generere det nÃĶste ord i outputsekvensen. Fordi decoderen ikke har nogen forrige output at referere til i det fÃļrste tidspunkt, bruges ofte et sÃĶrligt âstartâ-tegn i stedet.
Forskelle mellem Transformatorer & RNNâer/LSTMâer
Lad os hurtigt dÃĶkke nogle af forskellene mellem RNNâer og LSTMâer.
RNNâer behandler input sekventielt, mens en skjult tilstandsvektor opretholdes og ÃĶndres af inputordene, mens de passerer gennem netvÃĶrket. De skjulte tilstande i en RNN indeholder typisk meget lidt relevant information om de tidligere input. Nye input overskriver ofte den nuvÃĶrende tilstand, hvilket fÃļrer til informations-tab og degraderer prÃĶstationen over tid.
Til gengÃĶld behandler transformator-modeller hele inputsekvensen pÃĨ ÃĐn gang. OpmÃĶrksomhedsmechanismen lÃĨter hver outputord vÃĶre informeret om hver input og skjult tilstand, hvilket gÃļr netvÃĶrket mere pÃĨlideligt for lange tekststykker.
LSTMâer er en modificeret version af RNNâer, tilpasset til at hÃĨndtere lÃĶngere inputsekvenser. LSTM-arkitekturen bruger en struktur kaldet âgatesâ, med âinput-gatesâ, âoutput-gatesâ og âforget-gatesâ. Den gatede design hÃĨndterer informations-tab, der er almindelig for RNN-modeller. Data behandles stadig sekventielt, og arkitekturens rekursive design gÃļr LSTM-modeller svÃĶre at trÃĶne ved hjÃĶlp af parallel procesering, hvilket gÃļr trÃĶningstiden lÃĶngere i alt.
LSTM-ingeniÃļrer ville ofte tilfÃļje opmÃĶrksomhedsmechanismer til netvÃĶrket, hvilket var kendt for at forbedre modellens prÃĶstation. Men det blev til sidst opdaget, at opmÃĶrksomhedsmechanismen alene forbedrede nÃļjagtigheden. Denne opdagelse fÃļrte til skabelsen af transformator-netvÃĶrk, der brugte opmÃĶrksomhedsmechanismer og parallel procesering takket vÃĶre GPUâer.












