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