Een nieuwe “Attention Sink Detector” spoort tokens op die het grootste deel van de aandachtsmassa (attention mass) opeisen tijdens de prefill-fase van de inference van grote taalmodellen (LLM's). De tool laat zien dat het verwijderen van deze sink-tokens uit een key-value (KV)-cache de prestaties van het model ernstig schaadt, waardoor ze essentiële ankers zijn voor een stabiele generatie.
Waarom de prefill-fase belangrijk is
De meeste LLM-onderzoeken richten zich op de token-voor-token generatieloop, maar het werk dat plaatsvindt vóór het eerste token — de prefill — zet de toon voor alles wat volgt. Tijdens de prefill verwerkt het model de volledige prompt, bouwt het de KV-cache op en verspreidt het de aandacht over elke positie. Omdat de softmax die de aandachtsgewichten produceert, moet optellen tot 1, kan het model niet zeggen dat "niets relevant is". Het dumpt de resterende waarschijnlijkheidsmassa op een token dat gemakkelijk aan te spreken is, meestal het eerste token in de reeks. Dat token wordt een attention sink.
Wat een attention sink is, in begrijpelijke taal
In een Transformer berekent elke head een gewicht voor elk tokenpaar. Wanneer de verdeling sterk scheef is, kan een enkel token een onevenredig groot deel van het aandachtsgewicht ontvangen. Dit fenomeen is geen bug; het volgt uit de softmax-beperking. Het eerste token (vaak een begin-van-de-zin-marker) fungeert als een "ontlastingsventiel" voor de resterende waarschijnlijkheid die niet elders kan worden toegewezen.
Belangen voor KV-cache beheer
KV-caches slaan de key- en value-vectoren op voor elk verwerkt token, wat snelle controles tijdens de generatie mogelijk maakt. In scenario's met een lange context prunen (verkleinen) ontwikkelaars de cache om binnen de limieten van het GPU-geheugen te blijven. De nieuwe detector laat zien dat het willekeurig verwijderen van tokens die "onbelangrijk" lijken, ook precies de sinks verwijdert waar het model op vertrouwt, wat leidt tot een instorting van de prestaties. Het vastzetten (pinning) van sink-tokens in de cache behoudt het interne evenwicht van het model en houdt de generatie stabiel.
Hoe de detector werkt
- Eager attention: De implementatie omzeilt snelle kernels zoals FlashAttention, die de volledige aandachtmatrix comprimeren, en registreert in plaats daarvan de ruwe aandachtsscores voor elke head.
- Aggregatie over alle lagen: Scores worden gemiddeld over alle lagen en heads om een enkel aandachtsmassa-profiel per token te produceren.
- Log-median absolute deviation (MAD): Omdat aandachtsgewichten sterk rechts-scheef zijn, classificeert een eenvoudige gemiddelde-standaarddeviatie-test normale variatie onterecht als uitschieters (outliers). Het logaritmisch transformeren van de gewichten normaliseert de verdeling; het toepassen van MAD markeert vervolgens tokens waarvan de aandachtsmassa de typische spreiding overschrijdt.
Twee klassen van ontdekte sinks
- Echte sinks – Het beginning-of-sentence (BOS)-token absorbeert consistent een enorme hoeveelheid aandacht, ongeacht de inhoud van de prompt.
- Structurele sinks – Tokens die behoren tot prompts op systeemniveau, zoals de markers die worden gebruikt in ChatML (
<im_start>,<im_end>), vormen kleine clusters die ook aandacht aantrekken. Ze fungeren als logische grenzen die het model helpen om gebruikersberichten te scheiden van systeeminstructies.
Tegenargument: Hebben we de ruwe matrix echt nodig?
De auteur wijst erop dat zonder de ruwe cijfers het sink-fenomeen verborgen blijft, en dat elk cache-pruning-beleid gebaseerd op onvolledige gegevens het risico loopt het model te destabiliseren.
Waar we op moeten letten
De detector is het tweede deel van een serie van vier die begon met een entropie-tracker voor de kwaliteit van de generatie. Het volgende deel zal sink-detectie integreren met entropie-gestuurde speculative decoding. De laatste studie zal een empirische studie zijn.
Kernpunt: Attention sinks zijn geen obscure eigenaardigheid; het zijn structurele pijlers die de aandachtverdeling van een Transformer beheersbaar houden tijdens de prefill. Elke KV-cache pruning-strategie die hen negeert, brengt de stabiliteit van het model in gevaar. Het detecteren en behouden van deze tokens is een kosteneffectieve waarborg die inference met een lange context zowel betrouwbaar als efficiënt kan maken.
