Aller au contenu

Les familles de solutions connues

Pokee ne dit pas comment il a fait. Mais l'espace des solutions publiquement connues n'est pas infini : il tient en cinq familles, chacune avec un compromis identifié. Ce chapitre les présente — c'est la grille de lecture qui servira à formuler les hypothèses plausibles.


Famille 1 — Réduire le coût par token stocké

On garde une attention complète, mais on stocke moins.

Technique Principe Gain typique Coût
Attention groupée (GQA) Plusieurs têtes de requête partagent une même paire clé/valeur ×4 à ×8 perte de qualité faible
Attention latente (MLA) Compresser K et V dans un espace latent de faible dimension ×5 à ×10 complexité des noyaux
Quantification du cache Stocker le cache en 8 ou 4 bits au lieu de 16 ×2 à ×4 dégradation progressive

Le facteur 5 de Pokee vit ici

« ≈ 5× de cache KV à VRAM égale » est exactement l'ordre de grandeur d'une attention latente ou d'une quantification agressive. Mais ce gain est multiplicatif sur une quantité qui reste linéaire en \(n\). Multiplier 2,62 To par 1/5 donne 524 Go. On a gagné un facteur 5 sur un problème qui en demande plusieurs centaines.

Verdict : nécessaire, très insuffisant.


Famille 2 — Restreindre qui regarde qui

On garde une mémoire par token, mais chaque token ne regarde plus tout le monde.

  • Fenêtre glissante : un token ne voit que les \(W\) derniers (par exemple 4 096). La mémoire devient constante : \(O(W)\) au lieu de \(O(n)\), et le calcul devient linéaire en \(n\).
  • Attention creuse structurée : blocs, motifs en bandes, jetons « puits » (attention sinks) qui restent toujours visibles.
  • Attention creuse apprise : le modèle sélectionne dynamiquement les blocs pertinents (familles NSA, InfLLM, Quest). Le contexte complet reste stocké, mais seule une fraction est lue à chaque pas.

Le compromis

Une fenêtre glissante seule ne peut pas répondre à une question dont la réponse est au token 3 000 000 : l'information n'est plus atteignable. Il faut au moins une voie qui traverse toute la séquence.

Verdict : indispensable pour le calcul, mais insuffisant seul pour le rappel.


Famille 3 — Remplacer l'attention par un état de taille fixe

C'est le changement de nature.

Une attention linéaire ou un modèle d'espace d'états (SSM : Mamba, RWKV, DeltaNet, GLA…) ne conserve pas une liste de tokens, mais une matrice d'état \(S\) de taille fixe, mise à jour token par token :

\[ S_t = A_t \, S_{t-1} + k_t v_t^{\top}, \qquad o_t = S_t \, q_t \]
Symbole Signification
\(S_t\) État à l'instant \(t\), de taille \(d_h \times d_h\) — indépendante de \(n\)
\(A_t\) Facteur d'oubli, éventuellement dépendant de l'entrée
\(k_t, v_t, q_t\) Clé, valeur, requête du token \(t\)

Conséquences chiffrées. Pour \(d_h = 128\) et 8 têtes, l'état pèse \(8 \times 128 \times 128 = 131\,072\) valeurs par couche — que le contexte fasse 1 000 ou 10 000 000 tokens. Le coût par token est constant. La mémoire ne croît plus du tout.

Le compromis

Un état de taille fixe est une compression avec perte. Il excelle pour résumer et suivre un fil, il échoue sur le rappel exact et arbitraire (« quel était le numéro de facture mentionné une fois, il y a 6 millions de tokens ? »).

Verdict : c'est la seule famille qui casse le mur mémoire. Elle ne suffit pas au rappel exact.


Famille 4 — L'hybride

D'où la solution devenue standard en 2025-2026 : empiler les deux.

La très grande majorité des couches sont linéaires ou récurrentes (coût constant). Une minorité — typiquement 1 sur 4 à 1 sur 8 — est une attention réelle, souvent à fenêtre glissante, chargée du rappel précis local.

Exemples publics de cette famille : Jamba (AI21), MiniMax-01, Qwen3-Next, Kimi Linear et Kimi K3 (Moonshot), Granite 4 (IBM), Nemotron-H (NVIDIA).

\[ M_{\text{hybride}} \approx \underbrace{L_{\text{lin}} \cdot d_h^2 \cdot H}_{\text{constant}} \;+\; \underbrace{2 \cdot n \cdot L_{\text{attn}} \cdot H_{kv} \cdot d_h \cdot b}_{\text{linéaire, mais } L_{\text{attn}} \ll L} \]

Réduire \(L_{\text{attn}}\) de 64 à 8 divise la mémoire par 8 ; combiné à la quantification 8 bits et à une compression latente, on atteint les deux ordres de grandeur manquants.

Verdict : c'est ce que l'arithmétique de Pokee-Isaac impose. Voir Architecture · 04.


Famille 5 — Sortir du décodeur

Toutes les familles précédentes restent dans le cadre decoder-only : une pile unique qui traite entrée et sortie de la même façon. Pokee revendique explicitement d'en sortir (« non-decoder-only »). Les options connues :

  • Encodeur–décodeur : un encodeur lit le contexte long, éventuellement par blocs indépendants (donc parallélisable et sans coût quadratique global), et le compresse en une mémoire de taille très inférieure ; le décodeur fait de l'attention croisée sur cette mémoire. C'est l'architecture originelle du transformeur, redevenue pertinente pour le contexte long.
  • Mémoire compressive : les blocs anciens sont résumés en jetons de mémoire (familles Compressive Transformer, Memorizing Transformer, Infini-attention).
  • Mémoire externe indexée : le contexte est stocké hors du GPU et récupéré par blocs. La frontière avec la recherche documentaire devient poreuse.

Erreur fréquente

Un modèle qui récupère des blocs de contexte à la demande peut être décrit comme ayant « 10 M de tokens de contexte » alors qu'il fait, mécaniquement, de la recherche documentaire interne. La différence avec un RAG classique est réelle — l'index est appris, pas fabriqué à la main — mais elle est graduelle, pas catégorique. Rien dans les communications de Pokee ne permet de trancher.


À retenir

Famille Casse le mur mémoire ? Casse le mur calcul ? Préserve le rappel exact ?
Compression du cache Non (facteur constant) Non Oui
Attention restreinte Oui (si fenêtre) Oui Non seule
État de taille fixe Oui Oui Non
Hybride Oui Oui Partiellement
Encodeur / mémoire Oui Oui Dépend de la sélection

Aucune ligne n'a trois « oui ». Tout modèle à 10 M de tokens fait un compromis — la question est de savoir lequel, et Pokee ne le dit pas.


Chapitre suivant : Mesurer un long contexte