Grunderna i AI
Vad är Transformer Neurala Nätverk?
Transformer Neurala Nätverk Beskrivna
Transformatorer är en typ av maskinlärningsmodell som specialiserar sig på att bearbeta och tolka sekventiell data, vilket gör dem optimala för naturligt språkbehandlingsuppgifter. För att bättre förstå vad en maskinlärningstransformator är och hur de fungerar, låt oss ta en närmare titt på transformatormodeller och de mekanismer som driver dem.
Den här artikeln kommer att täcka:
- Sekvens-till-Sekvens-Modeller
- Transformator Neurala Nätverksarkitektur
- Uppmärksamhetsmekanismen
- Skillnader Mellan Transformatorer och RNN/LSTM
Sekvens-till-Sekvens-Modeller
Sekvens-till-sekvens-modeller är en typ av NLP-modell som används för att konvertera sekvenser av en typ till en sekvens av en annan typ. Det finns olika typer av sekvens-till-sekvens-modeller, såsom Rekurrenta Neurala Nätverk och Lång Korttidslagring (LSTM).
Traditionella sekvens-till-sekvens-modeller som RNN och LSTM är inte fokus för den här artikeln, men en förståelse för dem är nödvändig för att uppskatta hur transformatormodeller fungerar och varför de är överlägsna traditionella sekvens-till-sekvens-modeller.
I korthet består RNN-modeller och LSTM-modeller av encoder- och decoder-nätverk som analyserar indata vid olika tidspunkter. Encoder-modellen är ansvarig för att bilda en kodad representation av orden i indata. Vid varje tidpunkt tar encoder-nätverket emot en indatasekvens och en dold tillstånd från den föregående tidpunkten i serien. De dolda tillstånds-värdena uppdateras när data flyter genom nätverket, tills den sista tidpunkten, där en “kontextvektor” genereras. Kontextvektorn skickas sedan till decoder-nätverket, som används för att generera en målsekvens genom att förutsäga det mest sannolika ordet som parar med indataordet för respektive tidspunkter.
Dessa modeller kan förbättras genom att använda en “uppmärksamhetsmekanism”. En uppmärksamhetsmekanism definierar vilka delar av indatavektorn nätverket ska fokusera på för att generera rätt utdata. För att uttrycka det på ett annat sätt, låter en uppmärksamhetsmekanism transformator-modellen bearbeta ett indataord medan den också uppmärksammar relevant information som innehålls av andra indataord. Uppmärksamhetsmekanismer maskerar också ut ord som inte innehåller relevant information.
Transformator Neurala Nätverksarkitektur
Vi kommer att gå in på uppmärksamhetsmekanismen i mer detalj senare, men för nu låt oss ta en titt på arkitekturen för ett transformator-neuralt nätverk på en högre nivå.
I allmänhet ser ett transformator-neuralt nätverk ut så här:

Medan denna allmänna struktur kan ändras mellan nätverk, kommer de grundläggande delarna att förbli desamma: positionskodningar, ordvektorer, uppmärksamhetsmekanism, feed-forward neurala nätverk.
Positionskodningar och Ordvektorer
Ett transformator-neuralt nätverk fungerar genom att ta en sekvens av indata och konvertera dessa indata till två andra sekvenser. Transformatorn producerar en sekvens av ordvektor-embeddings och positionskodningar.
Ordvektor-embeddings är bara texten representerad i ett numeriskt format som neurala nätverket kan bearbeta. Samtidigt är positionskodningarna vektoriserade representationer som innehåller information om den aktuella ordets position i indata-meningen, i förhållande till andra ord.
Andra textbaserade neurala nätverksmodeller som RNN och LSTM använder vektorer för att representera orden i indata. Dessa vektor-embeddings kartlägger ord till konstanta värden, men detta är begränsande eftersom ord kan användas i olika sammanhang. Ett transformator-nätverk löser detta problem genom att göra ordvärdena mer flexibla, med hjälp av sinusformade funktioner för att låta ordvektorerna anta olika värden beroende på ordets position i meningen.
Detta möjliggör för det neurala nätverksmodellen att bevara information om den relativa positionen för indataorden, även efter att vektorerna har flödat genom transformator-nätverkets lager.
Positionskodningarna och ordvektor-embeddings summeras sedan och skickas till både encoder- och decoder-nätverken. Medan transformator-neurala nätverk använder encoder/decoder-scheman precis som RNN och LSTM, är en stor skillnad mellan dem att all indata skickas till nätverket samtidigt, till skillnad från RNN/LSTM, där data skickas sekventiellt.
Encoder-nätverken är ansvariga för att konvertera indata till representationer som nätverket kan lära sig från, medan decoder-nätverken gör tvärtom och konverterar kodningarna till en sannolikhetsfördelning som används för att generera de mest sannolika orden i utdata-meningen. Avgörande är att både encoder- och decoder-nätverken har en uppmärksamhetsmekanism.
Eftersom GPU:er kan bearbeta parallellt, används flera uppmärksamhetsmekanismer parallellt, för att beräkna relevant information för alla indataord. Denna förmåga att fokusera på flera ord, kallad “multi-huvud”-uppmärksamhet, vid en tidpunkt hjälper det neurala nätverket att lära sig ordets sammanhang i en mening, och det är en av de primära fördelarna som transformator-nätverk har över RNN och LSTM.
Uppmärksamhetsmekanismen
Uppmärksamhetsmekanismen är den viktigaste delen av ett transformator-nätverk. Uppmärksamhetsmekanismen är vad möjliggör för transformator-modeller att gå utöver uppmärksamhetsgränsen för en typisk RNN eller LSTM-modell. Traditionella sekvens-till-sekvens-modeller kastar bort alla mellanliggande tillstånd och använder endast det sista tillståndet/kontextvektorn när de initierar decoder-nätverket för att generera förutsägelser om en indata-sekvens.
Att kasta bort allt utom det sista kontextvektorn fungerar bra när indata-sekvenserna är ganska små. Men när längden på en indata-sekvens ökar, kommer modellens prestanda att försämras medan denna metod används. Detta beror på att det blir ganska svårt att sammanfatta en lång indata-sekvens som en enda vektor. Lösningen är att öka “uppmärksamheten” hos modellen och använda de mellanliggande encoder-tillstånden för att konstruera kontextvektorer för decoder.
Uppmärksamhetsmekanismen definierar hur viktiga andra indata-token är för modellen när kodningar skapas för ett visst token. Till exempel är “det” ett allmänt pronomen, ofta använt för att hänvisa till djur när deras kön inte är känt. En uppmärksamhetsmekanism skulle låta ett transformator-nätverk bestämma att i den aktuella kontexten “det” hänvisar till en ekorre, eftersom det kan undersöka alla relevanta ord i indata-meningen.
En uppmärksamhetsmekanism kan användas på tre olika sätt: encoder-till-decoder, encoder-endast, decoder-endast.
Encoder-decoder-uppmärksamhet låter decoder-nätverket överväga indata-sekvenser när den genererar en utdata, medan encoder-endast och decoder-endast uppmärksamhetsmekanismer låter nätverken överväga alla delar av de föregående och nuvarande sekvenserna.
Konstruktionen av en uppmärksamhetsmekanism kan delas in i fem steg:
- Beräkna en poäng för alla encoder-tillstånd.
- Beräkna uppmärksamhets-vikterna
- Beräkna kontext-vektorer
- Uppdatera kontext-vektorn med tidigare tidstegs utdata
- Generera utdata med decoder
Det första steget är att låta decoder-nätverket beräkna en poäng för alla encoder-tillstånd. Detta görs genom att träna decoder-nätverket, som är ett grundläggande feed-forward neuralt nätverk. När decoder-nätverket tränas på det första ordet i indata-sekvensen, har inget internt/ dolt tillstånd skapats ännu, så encoder-nätverkets sista tillstånd används vanligtvis som decoder-nätverkets föregående tillstånd.
För att beräkna uppmärksamhets-vikterna används en softmax-funktion för att generera en sannolikhetsfördelning för uppmärksamhets-vikterna.
När uppmärksamhets-vikterna har beräknats, måste kontext-vektorn beräknas. Detta görs genom att multiplicera uppmärksamhets-vikterna och det dolda tillståndet tillsammans för varje tidpunkt.
Efter att kontext-vektorn har beräknats, används den tillsammans med det ord som genererades i den föregående tidpunkten för att generera nästa ord i utdata-sekvensen. Eftersom decoder-nätverket inte har någon tidigare utdata att hänvisa till i den första tidpunkten, används ofta en special “start”-token istället.
Skillnader Mellan Transformatorer och RNN/LSTM
Låt oss snabbt täcka några av skillnaderna mellan RNN och LSTM.
RNN bearbetar indata sekventiellt, medan ett dolt tillstånds-vektor underhålls och ändras av indata-orden när de flyter genom nätverket. De dolda tillstånden i en RNN innehåller vanligtvis mycket lite relevant information om tidigare indata. Nya indata skriver ofta över det aktuella tillståndet, vilket orsakar informationsförlust och försämrar prestanda över tid.
I kontrast bearbetar transformator-modeller hela indata-sekvensen på en gång. Uppmärksamhetsmekanismen låter varje utdata-ord informeras av varje indata och dolt tillstånd, vilket gör nätverket mer tillförlitligt för långa textstycken.
LSTM är en modifierad version av RNN, justerad för att hantera längre indata-sekvenser. LSTM-arkitekturen använder en struktur som kallas “grindar”, med “indata-grindar”, “utdata-grindar” och “glömska-grindar”. Den grind-utformade designen hanterar den informationsförlust som är vanlig för RNN-modeller. Data bearbetas fortfarande sekventiellt, och arkitekturens återkommande design gör det svårt att träna LSTM-modeller med parallell bearbetning, vilket gör tränings-tiden längre totalt.
LSTM-ingenjörer skulle ofta lägga till uppmärksamhets-mekanismer i nätverket, vilket var känt för att förbättra modellens prestanda. Men det upptäcktes så småningom att uppmärksamhets-mekanismen ensam förbättrade noggrannheten. Denna upptäckt ledde till skapandet av transformator-nätverk som använde uppmärksamhets-mekanismer och parallell bearbetning tack vare GPU:er.












