Transformers – Simpele uitleg (Attention Is All You Need)

Zonder Transformers hadden we nog geen ChatGPT gehad. Het onderzoek (Attention Is All You Need) waar de theorie achter Transformers tot stand gekomen is, is namelijk bepalend geweest voor de volgende stap van Large Language Models. Salman Naqvi schreef op zijn blog een korte uitleg over Transformers die heel wat meer in de buurt komt van een ELI5-uitleg (maar nog lang niet helemaal).

Wat zijn transformers?

Een transformer is een type structuur dat voor Natural Language Processing taken gebruikt wordt. Deze structuur vult missende data op of maakt de output af. Te vergelijken met een autocomplete functie.
Transformers bestaan uit een encoder, decoder of allebei. Zowel een encoder als decoder heeft zoals de onderzoekers zeggen meerdere aandachtslagen (attention layers).

Een LLM heeft getallen nodig om te werken. Nadat tekst is opgebroken in kleine stukjes, krijgt het een numerieke waarde. Elk stukje tekst staat voor (een reeks van) getallen. De reeks beschrijft het wordt en de relatie/relevantie van het woord naar omliggende woorden toe.

Encoders

Een transformer met alleen een encoder, is geschikt voor het begrijpen van tekst.

Denk aan het classificeren van tekst op basis van het sentiment of het achterhalen waar een bepaald deel van een zin naar verwijst. Zoals een persoon of plaats.

Als encoders worden getraind, worden woorden omgezet naar getallen door de aandachtslagen die ook de omliggende woorden in overweging nemen. Stel je voor dat je de zin hebt “Het is lekker weer”.

De aandachtslaag kijkt naar de woorden ‘het’ en ‘weer’ in overweging wanneer het een numerieke waarde aan ‘lekker’ toewijst.

Het doel van het trainen van encoders is om tekst te begrijpen als bepaalde woorden er niet zouden zijn. Zou de zin ‘lekker weer’ zijn, begrijpt de encoder dat een van de opties kan zijn dat het lekker weer is.

Decoders

Een transformer met alleen een decoder, is geschikt voor het genereren van tekst.

Je kunt dit vergelijken met de autocomplete functie op een telefoon.

Ook decoders geven tekst een numerieke waarde, alleen nu kijkt het alleen naar de woorden die voorafgaand het laatste woord te vinden zijn. Wanneer een decoder het woord ‘lekker’ een numerieke waarde geeft bij de zin ‘het is lekker weer’, nemen de aandachtslagen alleen de woorden ‘het is’ in overweging.

Het doel van het trainen van decoders is om het meest waarschijnlijke woord van een stuk tekst te voorspellen. Alle gegenereerde woorden, worden door de aandachtslagen meegenomen om het volgende woord te genereren.

Encoders en Decoders

Transformers die zowel encoders als decoders gebruiken, worden zowel encoder-decoder modellen als sequence-to-sequence modellen genoemd. Dit soort modellen zijn onder andere in staat om te vertalen en samen te vatten.

Encoder-decoder modellen worden getraind door eerst de encoder de input een numerieke waarde toe te kennen. Vervolgens, wordt deze waarde als input voor de decoder gebruikt. De decoder genereert vervolgens tekst als output.

Simpel gezegd, zorgt de encoder ervoor dat de input wordt begrepen en de decoder dat er een generatie is op basis van dat wat de encoder heeft begrepen.