Vue d'ensemble¶
La carte des 40 couches¶
DeepSeek-V4.1-Flash est un Transformer causal de 40 couches, de dimension cachée 5 120, coupé en deux moitiés égales.
┌─────────────────────────────────────────┐
image ──► ViT ──► projecteur MLP ──┐ │
├──► plongements ───────────┤
texte ─────────────────────────────┘ │
└─────────────────────────────────────────┘
│
┌───────────────────────────────────────▼─────────────────────────────────┐
│ ENCODEUR CAUSAL — couches 0 à 19 │
│ │
│ couches 0-1 SWA pure (aucun cache global) │
│ couche 2 CSA2(2, Full) ◄── écrit cache + indices │
│ couches 3-7 CSA2(2, Reuse) │
│ couche 8 CSA2(2, Full) ◄── écrit cache + indices │
│ couches 9-13 CSA2(2, Reuse) │
│ couche 14 CSA2(2, Full) ◄── écrit cache + indices │
│ couches 15-19 CSA2(2, Reuse) │
└───────────────────────────────────────┬─────────────────────────────────┘
│ H₂₀ : l'état caché de sortie
┌───────────────────────────────────────▼─────────────────────────────────┐
│ DÉCODEUR — couches 20 à 39 (tout le cache global vient de H₂₀) │
│ │
│ couche 20 CSA2(1, Full) ◄── écrit cache + construit le vivier │
│ couches 21-23 CSA2(1, Reuse) │
│ couche 24 CSA2(1, Reindex) ◄── réindexe dans le vivier │
│ couches 25-27 CSA2(1, Reuse) │
│ couche 28 CSA2(1, Reindex) │
│ couches 29-31 CSA2(1, Reuse) │
│ couche 32 CSA2(1, Reindex) │
│ couches 33-35 CSA2(1, Reuse) │
│ couche 36 CSA2(1, Reindex) │
│ couches 37-39 CSA2(1, Reuse) │
└─────────────────────────────────────────────────────────────────────────┘
Transverse : Single-Pass mHC (4 flux résiduels) · Engram (couches 1 et 14)
DSpark (3 blocs de brouillon, après la couche 39)
Toutes les couches, sans exception, contiennent une couche MoE à 385 experts et leur propre attention à fenêtre glissante de 128 jetons.
Lire la notation CSA2(ratio, mode)¶
CSA2(2, Reuse) signifie : compression séquentielle de ratio 2 — une entrée de
cache pour deux jetons — en mode Reuse, c'est-à-dire que la couche ne calcule ni
cache ni indices et se contente de lire ceux de sa source.
Les ratios se lisent directement dans config.json :
"compress_ratios": [0, 0, 2, 2, ..., 2, 1, 1, ..., 1, 0, 0, 0]
Un ratio de 0 signifie « pas de voie globale du tout » : c'est le cas des deux premières couches, en fenêtre glissante pure. Les trois derniers zéros ne sont pas des couches du squelette : ce sont les trois blocs de DSpark.
Les régularités¶
Quatre observations structurent la lecture :
-
L'encodeur compresse, le décodeur non. Ratio 2 dans l'encodeur, 1 dans le décodeur. L'encodeur peut se permettre d'être approximatif parce qu'il alimente une voie globale déjà creuse ; le décodeur, plus proche de la sortie, garde une résolution par jeton.
-
Les groupes sont réguliers. L'encodeur est fait de 3 groupes de 6 couches (1 Full + 5 Reuse), le décodeur de 5 groupes de 4 (1 Full ou Reindex + 3 Reuse). Cette régularité facilite le placement sur les étages de pipeline.
-
Quatre couches seulement écrivent un cache : 2, 8, 14, 20. C'est la clé du chiffre de 890 octets.
-
Le décodeur ne réindexe qu'à partir d'un vivier. Les couches 24, 28, 32, 36 recalculent leurs indices, mais dans le sous-ensemble construit par la couche 20 — voir l'indexeur hiérarchique.
D'où viennent les 552 G de paramètres¶
Le recalcul complet, détaillé en analyse critique, donne :
| Composant | Paramètres | Part |
|---|---|---|
| Experts MoE (40 couches × 385 experts) | 545,00 G | 98,7 % |
| Attention (40 couches, requêtes + sorties + compresseurs + indexeurs) | 5,13 G | 0,9 % |
| Plongements d'entrée et tête de sortie | 1,32 G | 0,2 % |
| Encodeur visuel et projecteur | 0,49 G | 0,1 % |
| Total | 551,93 G |
Écart avec l'annonce : 0,01 %.
À cela s'ajoutent 196,61 G de paramètres Engram, comptés séparément par DeepSeek parce qu'ils ne sont pas dans le chemin de calcul : ce sont des tables de correspondance consultées par recherche, pas des matrices multipliées.
Le profil de coût¶
| Phase | Couches exécutées | Paramètres activés / jeton |
|---|---|---|
| Préremplissage | 20 (encodeur) | 7,61 G — annoncé 8 G |
| Décodage | 40 | 15,70 G — annoncé 16 G |
Le rapport de 2,06 entre les deux n'est pas un réglage : c'est la conséquence mécanique du CED, qui permet de ne pas exécuter le décodeur pendant le préremplissage.
À retenir
Trois nombres suffisent à résumer l'architecture : 40 couches, 4 couches sources de cache, 2 moitiés. Tout le reste en découle.
Chapitre suivant : L'encodeur-décodeur causal