Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Attention Sink

ia

Définition

Les Attention Sinks (puits d'attention) sont un phenomene decouverts par Xiao et al. (MIT, 2023) dans les Transformers auto-regressifs : les LLMs tendent a concentrer massivement leur attention sur les tout premiers tokens de la sequence (generalement le token BOS — Beginning of Sequence), quelle que soit leur contenu semantique. Ces 'puits' absorbent une fraction disproportionnee des softmax weights d'attention. La cause : dans l'attention softmax, les poids doivent toujours sommer a 1. Quand le modele veut 'ne pas attendre' les tokens recents (generer des informations independantes du contexte, ou effectuer une 'no-op'), il doit neamnoins distribuer ses poids quelque part. Les premiers tokens deviennent des 'poubelles' ou deposer ce poids exces — ce comportement est appris pendant le pretraining. L'impact sur les systemes de streaming et de long contexte : StreamingLLM (Xiao et al., 2023) a exploite cette decouverte pour permettre l'inference sur des contextes indefiniment longs avec une fenetre de KV cache fixe. En conservant toujours les K premiers tokens (les attention sinks) dans le KV cache, plus une fenetre glissante de tokens recents, le modele maintient ses capacites de generation meme sur des sequences de millions de tokens. L'implication pour la suppression des KV caches : des travaux d'elagage du KV cache (comme ScissorHands, H2O) qui suppriment les tokens 'non importants' basee sur leurs scores d'attention echouaient jusqu'a ce qu'ils prennent en compte les attention sinks — supprimer les premiers tokens, meme s'ils semblent peu importants semantiquement, degrade massivement les performances. Des solutions architecturales : Mistral 7B a introduit le 'Initial Token Aware' training ou les premiers tokens sont traites differemment. LLaMA 3 et d'autres modeles recents utilisent des strategies de pre-training qui reduisent (sans eliminer) la dependance aux attention sinks, ameliorant les capacites de long contexte.

StreamingLLM : fenetre glissante avec sinks

# StreamingLLM : garder N sinks + W tokens recents
class StreamingCache:
    def __init__(self, n_sinks=4, window_size=1024):
        self.n_sinks = n_sinks     # Nb de tokens 'pivots' a conserver
        self.window_size = window_size  # Fenetre de tokens recents
        self.sink_kv = None        # KV cache des pivots (sauvegardes)
        self.recent_kv = []        # KV cache des tokens recents

    def update(self, new_kv, position):
        if position < self.n_sinks:
            # Les premiers tokens deviennent des sinks permanents
            if self.sink_kv is None:
                self.sink_kv = [new_kv]
            else:
                self.sink_kv.append(new_kv)
        else:
            # Fenetre glissante pour les tokens recents
            self.recent_kv.append(new_kv)
            if len(self.recent_kv) > self.window_size:
                self.recent_kv.pop(0)
        return self.sink_kv + self.recent_kv  # Cache actif

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis