Expert • Les 22

Positional encoding: hoe transformers volgorde begrijpen

Self-attention is van nature permutatievast: het behandelt alle tokens als een ongeordende verzameling. Zonder extra informatie weet de transformer niet of token 5 voor of na token 3 komt. Positional encoding voegt deze cruciale informatie toe.

Absolute positional encoding

Het originele Transformer-paper (Vaswani et al., 2017) gebruikt sinusoïdale positionele encoding: elke positie krijgt een vaste vector bestaande uit sinussen en cosinussen op verschillende frequenties. Leerbare absolute positional embeddings (BERT, GPT-2) laten de positionele representaties worden ge-fine-tuned. Het nadeel van absolute encoding is slechte generalisatie buiten de getrainde context window.

Rotary Position Embeddings (RoPE)

RoPE (Su et al., 2021) is de dominante positional encoding in moderne LLMs (Llama, Mistral, Qwen). In plaats van positionele vectoren op te tellen bij token-embeddings, roteert RoPE de query- en key-vectoren met een hoek evenredig aan de absolute positie. Dit codeert relatieve afstand impliciet via het inproduct en generaliseert beter naar langere contexten.

ALiBi en length extrapolation

Attention with Linear Biases (ALiBi) voegt een negatieve lineaire bias toe aan de attention-scores als functie van de afstand tussen tokens. Er worden geen positionele embeddings aan de inputvectoren toegevoegd. ALiBi generaliseert goed naar sequenties langer dan de trainingscontext. Het is gebruikt in MPT en BLOOM.

YaRN en context window uitbreiding

YaRN (Yet another RoPE extensioN) is een methode om RoPE-gebaseerde modellen te fine-tunen voor grotere context windows dan waarvoor ze zijn getraind. Door de theta-parameter van RoPE aan te passen en relatief weinig fine-tuning data te gebruiken, kunnen context windows worden uitgebreid van 4k naar 128k tokens. Dit is goedkoper dan hoe trainen met grote context.