AI 101
Wat Zijn Transformer Neurale Netwerken?

Transformer Neurale Netwerken Beschreven
Transformers zijn een type machine learning-model dat gespecialiseerd is in het verwerken en interpreteren van sequentiële gegevens, waardoor ze optimaal zijn voor taken voor natuurlijke taalverwerking. Om beter te begrijpen wat een machine learning-transformer is en hoe deze werkt, laten we een nadere blik werpen op transformer-modellen en de mechanismen die deze aandrijven.
Dit artikel zal de volgende onderwerpen behandelen:
- Sequentie-naar-Sequentie-Modellen
- De Transformer Neurale Netwerkarchitectuur
- De Aandachtmachine
- Verschillen Tussen Transformers en RNN’s/LSTM’s
Sequentie-naar-Sequentie-Modellen
Sequentie-naar-sequentie-modellen zijn een type NLP-model dat wordt gebruikt om sequenties van het ene type om te zetten in een sequentie van een ander type. Er zijn verschillende soorten sequentie-naar-sequentie-modellen, zoals Recurrent Neural Network-modellen en Long Short-Term Memory (LSTM)-modellen.
Traditionele sequentie-naar-sequentie-modellen zoals RNN’s en LSTM’s zijn niet het onderwerp van dit artikel, maar een begrip van deze modellen is noodzakelijk om te begrijpen hoe transformer-modellen werken en waarom ze superieur zijn aan traditionele sequentie-naar-sequentie-modellen.
In het kort bestaan RNN-modellen en LSTM-modellen uit encoder- en decoder-netwerken die invoergegevens op verschillende tijdstappen analyseren. Het encoder-model is verantwoordelijk voor het vormen van een gecodeerde weergave van de woorden in de invoergegevens. Op elk tijdstap neemt het encoder-netwerk een invoersequentie en een verborgen staat van de vorige tijdstap in de reeks. De verborgen staatwaarden worden bijgewerkt terwijl de gegevens door het netwerk gaan, totdat de laatste tijdstap, waar een “contextvector” wordt gegenereerd. De contextvector wordt vervolgens doorgegeven aan het decoder-netwerk, dat wordt gebruikt om een doelsequentie te genereren door de meest waarschijnlijke woorden te voorspellen die paren met het invoerwoord voor de respectieve tijdstappen.
Deze modellen kunnen worden uitgebreid door het gebruik van een “aandachtmachine”. Een aandachtmachine definieert welke delen van de invoervector het netwerk moet focussen om de juiste uitvoer te genereren. Om het anders te zeggen, een aandachtmachine laat het transformer-model één invoerwoord verwerken terwijl het ook aandacht besteedt aan de relevante informatie die wordt bevatten door de andere invoerwoorden. Aandachtmachines maskeren ook woorden die geen relevante informatie bevatten.
Transformer Neurale Netwerkarchitectuur
We zullen later dieper ingaan op de aandachtmachine, maar voor nu laten we een kijk nemen op de architectuur van een transformer neurale netwerk op een hoger niveau.
In het algemeen ziet een transformer neurale netwerk er ongeveer zo uit:

Hoewel deze algemene structuur tussen netwerken kan veranderen, blijven de kernonderdelen hetzelfde: positionele coderingen, woordvectoren, aandachtmachine, voortstuurbare neurale netwerk.
Positionele Coderingen en Woordvectoren
Een transformer neurale netwerk werkt door een sequentie van invoer om te zetten in twee andere sequenties. De transformer produceert een sequentie van woordvector-embeddings en positionele coderingen.
Woordvector-embeddings zijn slechts de tekst die in een numerieke formaat wordt weergegeven dat het neurale netwerk kan verwerken. Ondertussen bevatten de positionele coderingen vectoriële weergaven die informatie bevatten over de positie van het huidige woord in de invoerzinnen, in relatie tot andere woorden.
Andere tekstgebaseerde neurale netwerkmodellen zoals RNN’s en LSTM’s gebruiken vectoren om de woorden in de invoergegevens weer te geven. Deze vector-embeddings kaarten woorden naar constante waarden, maar dit is beperkend omdat woorden in verschillende contexten kunnen worden gebruikt. Een transformer-netwerk lost dit probleem op door de woordwaarden flexibeler te maken, met behulp van sinusfuncties om de woordvectoren verschillende waarden te laten aannemen, afhankelijk van de positie van het woord in de zin.
Dit stelt het neurale netwerkmodel in staat om informatie te bewaren met betrekking tot de relatieve positie van de invoerwoorden, zelfs nadat de vectoren door de lagen van het transformer-netwerk zijn gegaan.
De positionele coderingen en de woordvector-embeddings worden opgeteld en vervolgens doorgegeven aan zowel de encoder- als decoder-netwerken. Hoewel transformer neurale netwerken encoder/decoder-schemas gebruiken, net als RNN’s en LSTM’s, is één groot verschil tussen hen dat alle invoergegevens tegelijkertijd in het netwerk worden gevoerd, terwijl de gegevens in RNN’s/LSTM’s sequentieel worden doorgegeven.
De encoder-netwerken zijn verantwoordelijk voor het omzetten van de invoer in weergaven die het netwerk kan leren. De decoder-netwerken doen het omgekeerde en zetten de coderingen om in een waarschijnlijkheidsverdeling die wordt gebruikt om de meest waarschijnlijke woorden in de uitvoerzinnen te genereren. Cruciaal is dat zowel de encoder- als decoder-netwerken een aandachtmachine hebben.
Omdat GPU’s in staat zijn tot parallelle verwerking, worden meerdere aandachtmachines in parallel gebruikt, waarbij de relevante informatie voor alle invoerwoorden wordt berekend. Deze mogelijkheid om aandacht te besteden aan meerdere woorden, “multi-head”-aandacht genoemd, op hetzelfde moment helpt het neurale netwerk om de context van een woord binnen een zin te leren, en het is één van de primaire voordelen die transformer-netwerken hebben ten opzichte van RNN’s en LSTM’s.
De Aandachtmachine
De aandachtmachine is het belangrijkste onderdeel van een transformer-netwerk. De aandachtmachine is wat transformer-modellen in staat stelt om verder te gaan dan de aandachtsgrens van een typisch RNN- of LSTM-model. Traditionele sequentie-naar-sequentie-modellen verwijderen alle tussenliggende staten en gebruiken alleen de laatste staat/contextvector wanneer het decoder-netwerk wordt geïnitialiseerd om voorspellingen over een invoersequentie te doen.
Het verwijderen van alles behalve de laatste contextvector werkt redelijk goed wanneer de invoersequenties vrij klein zijn. Echter, naarmate de lengte van een invoersequentie toeneemt, zal de prestatie van het model afnemen bij het gebruik van deze methode. Dit komt doordat het moeilijk wordt om een lange invoersequentie samen te vatten als één vector. De oplossing is om de “aandacht” van het model te vergroten en de tussenliggende encoder-staten te gebruiken om contextvectoren voor de decoder te construeren.
De aandachtmachine definieert hoe belangrijk andere invoertokens zijn voor het model wanneer coderingen worden gemaakt voor een bepaald token. Bijvoorbeeld, “het” is een algemene voornaamwoord, vaak gebruikt om naar dieren te verwijzen wanneer hun geslacht niet bekend is. Een aandachtmachine zou een transformer-model in staat stellen om te bepalen dat “het” in de huidige context naar een eekhoorn verwijst, omdat het alle relevante woorden in de invoerzinnen kan onderzoeken.
Een aandachtmachine kan op drie verschillende manieren worden gebruikt: encoder-naar-decoder, encoder-only, decoder-only.
Encoder-decoder-aandacht laat de decoder toe om invoersequenties te overwegen wanneer een uitvoer wordt gegenereerd, terwijl de encoder-only en decoder-only aandachtmachines het netwerk in staat stellen om alle delen van de vorige en huidige sequenties respectievelijk te overwegen.
De constructie van een aandachtmachine kan worden onderverdeeld in vijf stappen:
- Scoren voor alle encoder-staten berekenen.
- Aandachtsgewichten berekenen
- Contextvectoren berekenen
- Contextvector bijwerken met de uitvoer van de vorige tijdstap
- Uitvoer genereren met decoder
De eerste stap is om de decoder een score te laten berekenen voor alle encoder-staten. Dit gebeurt door het decoder-netwerk te trainen, dat een basis-feed-forward neurale netwerk is. Wanneer de decoder wordt getraind op het eerste woord in de invoersequentie, is er nog geen interne/verborgen staat gemaakt, dus wordt de laatste staat van de encoder meestal gebruikt als de vorige staat van de decoder.
Om de aandachtsgewichten te berekenen, wordt een softmax-functie gebruikt om een waarschijnlijkheidsverdeling voor de aandachtsgewichten te genereren.
Nadat de aandachtsgewichten zijn berekend, moet de contextvector worden berekend. Dit gebeurt door de aandachtsgewichten en de verborgen staat samen te vermenigvuldigen voor elke tijdstap.
Nadat de contextvector is berekend, wordt deze gebruikt samen met het woord dat in de vorige tijdstap is gegenereerd om het volgende woord in de uitvoersequentie te genereren. Omdat de decoder geen vorige uitvoer heeft om naar te verwijzen in de eerste tijdstap, wordt vaak een speciaal “start”-token gebruikt.
Verschillen Tussen Transformers & RNN’s/LSTM’s
Laten we snel enkele van de verschillen tussen RNN’s en LSTM’s behandelen.
RNN’s verwerken invoer sequentieel, terwijl een verborgen staatvector wordt onderhouden en gewijzigd door de invoerwoorden terwijl deze door het netwerk gaan. De verborgen staten van een RNN bevatten meestal weinig relevante informatie met betrekking tot de eerdere invoer. Nieuwe invoer overschrijft vaak de huidige staat, wat informatieverlies en prestatieafname over tijd veroorzaakt.
In tegenstelling tot transformer-modellen verwerken transformer-modellen de hele invoersequentie tegelijk. De aandachtmachine laat elk uitvoerwoord toe om geïnformeerd te worden door elk invoer- en verborgen staat, waardoor het netwerk betrouwbaarder is voor lange stukken tekst.
LSTM’s zijn gemodificeerde versies van RNN’s, aangepast om langere invoersequenties te verwerken. De LSTM-architectuur gebruikt een structuur genaamd “poorten”, met “invoerpoorten”, “uitvoerpoorten” en “vergetenpoorten”. De poortontwerp lost het informatieverlies op dat typisch is voor RNN-modellen. Gegevens worden nog steeds sequentieel verwerkt, en de architectuur van het recurrente ontwerp maakt het moeilijk om LSTM-modellen te trainen met behulp van parallelle berekening, waardoor de trainingsduur langer wordt.
LSTM-ingenieurs voegden vaak aandachtmachines toe aan het netwerk, wat bekend stond als een verbetering van de prestatie van het model. Echter, het werd uiteindelijk ontdekt dat de aandachtmachine alleen de nauwkeurigheid verbeterde. Deze ontdekking leidde tot de creatie van transformer-netwerken die aandachtmachines en parallelle berekening gebruikten dankzij GPU’s.












