AI-basisprincipes
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 ze werken, laten we een nadere blik werpen op transformer-modellen en de mechanismen die ze aandrijven.
Dit artikel zal de volgende onderwerpen behandelen:
- Sequentiële Modellen
- De Architectuur van het Transformer Neurale Netwerk
- De Aandachtmachine
- Verschillen tussen Transformers en RNN’s/LSTM’s
Sequentiële Modellen
Sequentiële modellen zijn een type NLP-model dat wordt gebruikt om sequenties van een type om te zetten in een sequentie van een ander type. Er zijn verschillende soorten sequentiële modellen, zoals Recurrent Neurale Netwerk-modellen en Long Short-Term Memory (LSTM)-modellen.
Traditionele sequentiële modellen zoals RNN’s en LSTM’s zijn niet het onderwerp van dit artikel, maar een begrip van hen is nodig om te begrijpen hoe transformer-modellen werken en waarom ze superieur zijn aan traditionele sequentiële modellen.
In het kort bestaan RNN-modellen en LSTM-modellen uit encoder- en decoder-netwerken die invoergegevens analyseren op verschillende tijdstappen. Het encoder-model is verantwoordelijk voor het vormen van een gecodeerde weergave van de woorden in de invoergegevens. Op elke 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 overeenkomen met de 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 een transformer-model een invoerwoord verwerken terwijl het ook aandacht besteedt aan de relevante informatie die wordt geleverd door de andere invoerwoorden. Aandachtmachines maskeren ook woorden die geen relevante informatie bevatten.
De Architectuur van het Transformer Neurale Netwerk
We zullen later dieper ingaan op de aandachtmachine, maar laten we eerst een kijk nemen op de architectuur van een transformer neurale netwerk op een hoger niveau.
Over het algemeen ziet een transformer neurale netwerk er ongeveer zo uit:

Terwijl deze algemene structuur tussen netwerken kan veranderen, zullen de basiscomponenten hetzelfde blijven: positionele coderingen, woordvectoren, aandachtmachine, feed-forward neurale netwerk.
Positionele Coderingen en Woordvectoren
Een transformer neurale netwerk werkt door een sequentie van invoer te nemen en deze om te zetten in twee andere sequenties. Het transformer-netwerk 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 zijn 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 netwerk in staat om informatie te behouden over 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 samen opgeteld en vervolgens doorgegeven aan zowel de encoder- als decoder-netwerken. Terwijl transformer neurale netwerken encoder/decoder-schemas gebruiken, net als RNN’s en LSTM’s, is een van de belangrijkste verschillen tussen hen dat alle invoergegevens tegelijkertijd in het netwerk worden ingevoerd, terwijl in RNN’s/LSTM’s de gegevens 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 tegenovergestelde en zetten de coderingen om in een kansverdeling 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 parallel gebruikt, waarbij de relevante informatie voor alle invoerwoorden wordt berekend. Deze mogelijkheid om aandacht te besteden aan meerdere woorden, genaamd “multi-head”-aandacht, helpt het neurale netwerk om de context van een woord binnen een zin te leren, en het is een van de belangrijkste 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 voorbij de aandachtsgrens van een typische RNN of LSTM-model te gaan. Traditionele sequentiële modellen verwijderen alle tussenliggende staten en gebruiken alleen de laatste staat/contextvector wanneer ze de decoder-netwerk initialiseren om voorspellingen te doen over een invoersequentie.
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 omdat het moeilijk wordt om een lange invoersequentie samen te vatten als een enkele 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 in de huidige context “het” verwijst naar een eekhoorn, omdat het alle relevante woorden in de invoerzinnen kan onderzoeken.
Een aandachtmachine kan op drie verschillende manieren worden gebruikt: encoder-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:
- Het berekenen van een score voor alle encoder-staten.
- Het berekenen van de aandachtsgewichten
- Het berekenen van contextvectoren
- Het bijwerken van de contextvector met de uitvoer van de vorige tijdstap
- Het genereren van uitvoer met de decoder
De eerste stap is om de decoder een score te laten berekenen voor alle encoder-staten. Dit gebeurt door het trainen van de decoder-netwerk, 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 kansverdeling te genereren voor de aandachtsgewichten.
Als de aandachtsgewichten eenmaal 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 ze door het netwerk gaan. De verborgen staten van een RNN bevatten meestal weinig relevante informatie over de eerdere invoer. Nieuwe invoer overschrijft vaak de huidige staat, wat informatieverlies en prestatieverslechtering over tijd veroorzaakt.
Daarentegen verwerken transformer-modellen de hele invoersequentie tegelijkertijd. De aandachtmachine laat het netwerk toe om elke uitvoerwoord te informeren met elke 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 “vergeetpoorten”. De poortontwerp lost het informatieverlies op dat typisch is voor RNN-modellen. Gegevens worden nog steeds sequentieel verwerkt, en de recurrente ontwerp van de architectuur maakt het moeilijk om LSTM-modellen te trainen met behulp van parallelle berekening, waardoor de trainingsduur langer wordt.
LSTM-ingenieurs zouden vaak aandachtmachines toevoegen 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.












