Aller au contenu

Feuille de route de réimplémentation

Un plan de travail en six semaines, calibré pour quelqu'un qui part des Fondations et veut arriver à une implémentation fonctionnelle de l'architecture.

Hypothèses

Environ 10 h par semaine, une machine avec un GPU 16 Go, Python et PyTorch. Aucun prérequis en apprentissage automatique au départ.

Semaine 1 — Les fondations

Objectif : lire, comprendre, ne rien coder d'ambitieux.

Jour Contenu
1–2 Chapitres 01 à 04 des Fondations
3–4 Chapitre 05 : le Transformer
5 Chapitre 06 : attention linéaire — le plus important
6–7 Chapitre 07 : MoE

Livrable : un Transformer minimal (attention softmax + FFN, 4 couches) qui surapprend un lot unique.

✅ Test : perte initiale \(\approx \ln(V)\), puis descente vers 0 sur un seul lot.

Semaine 2 — KDA

Objectif : le module central.

Jour Contenu
1 Relire Kimi Delta Attention
2–3 Implémenter la forme récurrente
4 Les tests limites (\(\beta=0\), \(\alpha=1,\beta=1\))
5 L'identité de composition KCP
6–7 La décroissance bornée, la porte de rang plein, ShortConv

Livrable : une couche KDA testée.

✅ Test décisif : l'identité de composition KCP à \(10^{-9}\) près. Le script fourni obtient \(6{,}94\times10^{-18}\).

Ne passez pas à la suite sans ce test

C'est le seul qui valide que votre récurrence est affine en \(\mathbf{S}\). Une erreur ici se propagerait dans tout le reste, invisible.

Semaine 3 — Le bloc complet

Jour Contenu
1–2 Gated MLA et NoPE — compression latente, porte
3 SiTU-GLU + test de borne
4–5 Stable LatentMoE : routeur, top-\(k\), latent, RMSNorm
6–7 Quantile Balancing

Livrable : un bloc « 3 KDA + 1 MLA + LatentMoE » complet.

✅ Tests : borne SiTU à 100 ; \(k\) experts exactement par jeton ; le biais n'entre pas dans les poids de mélange ; le déséquilibre décroît sans hyperparamètre.

Semaine 4 — AttnRes et l'assemblage

Jour Contenu
1–2 Attention Residuals
3 Implémenter Block AttnRes
4–5 Assembler nano-K3 : 13 couches
6–7 Débogage jusqu'à convergence sur un lot unique

Livrable : nano-K3 (191 M) qui tourne.

✅ Tests : perte initiale \(\approx 9{,}01\) ; surapprentissage d'un lot ; avec \(N=1\) bloc et poids uniformes, AttnRes redonne un résidu additif.

Semaine 5 — Entraîner

Jour Contenu
1–2 Pipeline de données : tokeniseur BPE, chargement, empaquetage
3 Optimiseur : AdamW d'abord, Muon ensuite
4–5 Premier entraînement réel sur un petit corpus (TinyStories, WikiText…)
6–7 Instrumentation : charge par expert, normes de gradient, poids AttnRes

Livrable : nano-K3 entraîné, avec des courbes.

✅ Test : la perte de validation descend et le modèle génère du texte localement cohérent.

Ce qu'il faut instrumenter dès le premier entraînement

• perte train / validation
• min, max, nombre d'experts morts  (par couche)
• norme de gradient globale et par module
• distribution des poids AttnRes α_{i→l}  (uniformes ? concentrés ?)
• distribution des alpha de KDA           (le modèle oublie-t-il ?)
Ces cinq courbes racontent l'essentiel de ce qui se passe. Sans elles, un entraînement qui échoue est indéboguable.

Semaine 6 — Approfondir

Trois directions au choix.

A. Post-entraînement

  • Implémenter le format XTML.
  • SFT sur un petit jeu de conversations, avec masquage correct de la perte.
  • Un RL simple sur des tâches vérifiables (arithmétique, format).

B. Performance

  • Forme par blocs de KDA (lire d'abord Kimi Linear pour la transformation UT).
  • Comparer contre votre forme récurrente : écart \(< 10^{-5}\) exigé.
  • Quantification MXFP4 simulée sur les experts.

C. Systèmes

  • KCP sur 2 GPU.
  • Parallélisme d'experts naïf, puis mesurer le déséquilibre.
  • Cache de préfixe hybride simplifié.

Le tableau des difficultés

Estimation du temps et du risque, module par module.

Module Difficulté Piège principal
Tokeniseur ★☆☆ Réutilisez tiktoken, n'écrivez pas le vôtre
Gated MLA + NoPE ★★☆ Le masque causal, les dimensions de rang faible
SiTU-GLU ★☆☆ Aucun — 4 lignes
LatentMoE ★★☆ Le biais dans les poids de mélange (erreur classique)
Quantile Balancing ★★★ La convention d'indice du quantile
KDA récurrent ★★★ L'ordre décroissance/effacement, la normalisation L2
KDA par blocs ★★★★★ La transformation UT — lire Kimi Linear
Block AttnRes ★★☆ La RMSNorm sur les clés, pas sur les valeurs
Per-Head Muon ★★★ Newton–Schulz, le partitionnement par tête
KCP ★★★★ La composition associative, l'ordre des fragments
Cache de préfixe hybride ★★★★★ La cohérence sous concurrence

Ce que vous n'obtiendrez pas

L'honnêteté sur le résultat

Au bout de six semaines, vous aurez une implémentation correcte de l'architecture de Kimi K3 et une compréhension complète du rapport.

Vous n'aurez pas un modèle de qualité comparable. Il manque :

Manquant Pourquoi c'est bloquant
Le corpus Non publié, ni décrit quantitativement
Les hyperparamètres Non publiés
Le post-entraînement L'algorithme de RL n'est pas formulé
Les environnements RL 51 M de sandboxes, non publiés
Le calcul Des dizaines de milliers de GPU-mois

C'est la nature des rapports de modèles en 2026 : ils décrivent suffisamment pour comprendre et enseigner, pas assez pour reproduire.

Ce que cela vaut quand même

Comprendre en profondeur une architecture de frontière et savoir l'implémenter est le prérequis pour :

  • affiner Kimi K3 — les poids sont publics et la licence l'autorise ;
  • contribuer aux moteurs d'inférence (vLLM, SGLang) ;
  • concevoir votre propre architecture ;
  • lire les prochains rapports en une soirée plutôt qu'en un mois.

C'est l'objectif réaliste, et il est atteignable.


Chapitre précédent : Un modèle jouet : nano-K3

Fin de la partie Reproduire. Suite : Analyse critique.