Deel:𝕏LinkedInRedditFacebookKopieer link

Positional Encoding Uitgelegd: Hoe Transformers Volgorde Begrijpen

Gepubliceerd op leren.llmnet.nl | Categorie: Hoe modellen werken

Moderne grote taalmodellen zijn gebaseerd op de transformer-architectuur. Deze modellen verwerken enorme hoeveelheden tekst en genereren antwoorden die opvallend menselijk overkomen. Een fundamenteel onderdeel van de werking van een transformer is de manier waarop het model omgaat met de volgorde van woorden. Zonder een specifiek mechanisme genaamd positional encoding zou een transformer namelijk volledig blind zijn voor de structuur en de volgorde van een zin.

In dit artikel leggen we uit waarom de basiscomponent van een transformer geen ingebouwde volgorde kent, wat er misgaat als positie-informatie ontbreekt, welke wiskundige oplossingen hiervoor zijn ontwikkeld en wat dit in de praktijk betekent voor het gebruik van taalmodellen.

Het probleem: Attention is permutatie-invariant

Om te begrijpen waarom positional encoding noodzakelijk is, moeten we kijken naar de kern van wat een transformer drijft: het self-attention mechanisme. Wanneer een tekst wordt ingevoerd, worden de woorden eerst omgezet in tokens via tokenisatie. Deze tokens worden vervolgens vertaald naar vectoren, oftewel embeddings.

Het attention-mechanisme berekent de relatie tussen elk paar tokens in een tekst. Het vergelijkt de vectoren van token A en token B door middel van een inwendig product (dot product). De wiskundige bewerking die hier plaatsvindt, behandelt de invoer als een verzameling losse elementen in plaats van als een opeenvolgende reeks. In de wiskunde noemt men deze eigenschap permutatie-invariantie.

Dit houdt in dat als je de tokens in een willekeurige volgorde aan de attention-laag voert, de berekende relaties tussen de individuele tokens exact gelijk blijven. Het model weet wel welke woorden aanwezig zijn, maar heeft geen enkel idee welk woord als eerste, tweede of laatste staat.

Oudere modellen, zoals Recurrent Neural Networks (RNN's), verwerkten tekst stapsgewijs van links naar rechts. Daardoor was volgorde automatisch ingebouwd. Transformers verwerken echter alle tokens tegelijkertijd om parallelle berekening op grafische kaarten mogelijk te maken. Die parallellie levert enorme snelheidswinst op, maar wist het natuurlijke gevoel voor volgorde uit.

Een concreet voorbeeld: Het belang van woordvolgorde

Taal is sterk afhankelijk van volgorde. Dezelfde verzameling woorden kan een totaal andere betekenis krijgen wanneer de volgorde verandert. Stel dat we de volgende twee zinnen invoeren in een model zonder positional encoding:

Zin A: De hond bijt de man.

Zin B: De man bijt de hond.

Beide zinnen bevatten exact dezelfde tokens: "De", "hond", "bijt", "de", "man". Voor een standaard attention-operatie zonder positie-informatie zijn zinnen A en B wiskundig identiek. De vectoren voor "hond" en "man" krijgen in beide gevallen exact dezelfde aandachts-scores toegewezen ten opzichte van "bijt".

Het gevolg is dat het model het cruciale verschil tussen de actor en het lijdend voorwerp niet kan onderscheiden. Zonder een signaal dat aangeeft welk token op positie 2 staat en welk token op positie 5, kan het model de semantische betekenis van de zin niet correct interpreteren. Positional encoding voegt dit essentiële signaal toe aan de embeddings van de tokens voordat ze de eerste attention-laag bereiken.

De evolutie van Positional Encoding technieken

In de loop der jaren zijn er verschillende methoden ontwikkeld om positie-informatie toe te voegen aan transformers. We bespreken de belangrijkste benaderingen, hun achterliggende gedachte en hun praktische eigenschappen.

1. Vaste Sinusoidale Encodings (Vaswani et al., 2017)

In de oorspronkelijke transformer-paper werd gekozen voor een vaste, wiskundige formule op basis van sinus- en cosinusfuncties met verschillende frequenties. Voor elke positie in de tekst wordt een unieke positie-vector gegenereerd. Deze vector wordt simpelweg opgeteld bij de bestaande embedding van het token.

2. Geleerde Absolute Positional Encodings

Modellen zoals GPT-2 en BERT stapten over op een eenvoudiger principe: laat het model de positie-vectoren zelf aanleren tijdens het trainingsproces. Positie 1 krijgt een eigen vector die wordt bijgesteld via backpropagation, positie 2 eveneens, tot aan de gekozen maximale lengte (bijvoorbeeld 2048 tokens).

3. Relatieve en Roterende Encodings (RoPE en ALiBi)

Moderne taalmodellen zoals Llama en Mistral gebruiken vaak *Rotary Position Embedding* (RoPE) of *Attention with Linear Biases* (ALiBi). Deze methoden stappen af van het idee van 'absolute' posities (zoals "dit is token 5") en richten zich op de 'relatieve' afstand tussen tokens (zoals "token A staat 3 plekken voor token B").

Vergelijking van de technieken

Type Encoding Type Positie Trainbare Parameters Flexibiliteit bij Contextverlenging
Sinusoidaal Absoluut Nee (vaste formule) Matig
Geleerd Absoluut Ja (vast aantal) Slecht (harde limiet)
RoPE / ALiBi Relatief Nee (rotatie/bias) Uitstekend (schaalbaar)

Positional encoding en de maximale contextlengte

Het mechanisme voor positional encoding is direct gekoppeld aan het context window van een taalmodel. Wanneer een model getraind is op een specifieke lengte, bijvoorbeeld 4096 tokens, heeft het geleerd hoe aandacht verdeeld moet worden over relaties binnen die afstand.

Als men een model zomaar een tekst voert die langer is dan de getrainde contextlengte, treedt er prestatieverlies op. Dit verschijnsel noemt men het extrapolatieprobleem. Bij geleerde positional encodings ontbreken simpelweg de vectoren voor de hogere posities. Bij sinusoidale of roterende encodings ontstaan er andere problemen: het model krijgt rotatiehoeken of frequenties te verwerken die het tijdens de training nooit heeft gezien.

Hierdoor raakt het attention-mechanisme van de kaart. De aandachts-scores worden onvoorspelbaar, wat leidt tot onsamenhangende uitvoer, herhalingen of hallucinaties. Om de contextgrootte van bestaande modellen toch op te rekken zonder een volledige nieuwe training te starten, worden technieken toegepast zoals RoPE scaling of yarn. Deze technieken 'samendrukken' of herverdelen de positie-frequenties, zodat langere reeksen binnen het vertrouwde wiskundige bereik van het model vallen.

Wat u hier praktisch aan heeft

Voor gebruikers en ontwikkelaars die werken met taalmodellen heeft de werking van positional encoding concrete praktische implicaties:

Positional encoding is een elegant voorbeeld van hoe een fundamentele beperking van een neuraal netwerk — het ontbreken van volgorde in matrixberekeningen — op een gestructureerde manier is opgelost. Het vormt een onmisbare bouwsteen die transformers in staat stelt om de ingewikkelde grammoticale en semantische structuren van menselijke taal te begrijpen.