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 :
| 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).
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