Aller au contenu

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 :

  1. 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.

  2. 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.

  3. Quatre couches seulement écrivent un cache : 2, 8, 14, 20. C'est la clé du chiffre de 890 octets.

  4. 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