1. Connexion résiduelle
Le problème : Empiler 48 transformations brutes (x → F(x)) multiplie 48 jacobiennes : le gradient s’évanouit ou explose, et une couche ratée détruit tout ce qui précède. Les réseaux profonds « purs » n’apprennent tout simplement pas.
L’idée : L’addition change tout : x_{l+1} = x_l + F_l(x_l). Chaque couche AJOUTE sa transformation au flux au lieu de le remplacer ; si F ≡ 0, x traverse inchangé — le chemin identité garantit un gradient direct vers chaque couche.
x_{l+1}=x_l+F_l(x_l)
Pourquoi / à quel prix : Le chemin identité rend l’entraînement profond possible — c’est l’invention qui a débloqué les réseaux à cent couches et plus. Le prix : rien n’est jamais retiré du flux ; tout ce qui a été ajouté y reste, et s’accumule.
Vérification de compréhension
Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.
2. Dilution
Le problème : 48 couches ajoutent chacune leur contribution. Que devient l’information posée par x₀ ? Intuition commune : « écrasée ». Si c’était vrai, toute récupération serait impossible — il faut chiffrer avant de conclure.
L’idée : Sous l’hypothèse de contributions à peu près orthogonales (‖F_l‖ = 0,5), l’énergie suit ‖x_l‖² ≈ 1 + 0,25·l : la part de x₀ passe de 100 % à 25 % (l = 12), 14,3 % (l = 24), 7,7 % (l = 48). Diluée, jamais effacée — l’addition est conservatrice.
Pourquoi / à quel prix : Le diagnostic précis — noyé, pas détruit — est ce qui rend la suite possible. Le prix : l’hypothèse d’orthogonalité fait tout le travail du calcul ; le 7,7 % est un ordre de grandeur de maquette, pas une mesure du modèle réel.
Vérification de compréhension
Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.
3. États de profondeur
Le problème : Si la couche 40 a besoin de la représentation d’avant transformation, elle n’a que x₃₉ — la somme de tout. Revenir en arrière est impossible : le flux ne garde aucune photo d’étape.
L’idée : La solution : photographier en route. Conserver quelques x_j choisis — {x₀, x₁₂, x₂₄} — comme points de récupération le long de la profondeur, analogues informationnels des checkpoints d’entraînement.
Pourquoi / à quel prix : Des points de retour explicites, adressables plus tard. Le prix : chaque photo coûte cher — 32 Mio par checkpoint ici (4 096 tokens × d_model 4096 × BF16) — et le choix des indices est un pari fait à la conception.
Vérification de compréhension
Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.
4. Scores sur la profondeur
Le problème : Trois photos disponibles : laquelle utiliser, et quand ? Un choix figé — toujours x₁₂ ? — serait aveugle au contenu : la bonne photo dépend du token et de la question que la couche se pose.
L’idée : Le mécanisme de la session 12, tourné de 90° : une requête de la couche courante score les états conservés — scores [2 ; 1 ; 0] sur {x₂₄ ; x₁₂ ; x₀} → softmax [0,665 ; 0,245 ; 0,090] — puis mélange les valeurs. La récupération se choisit, elle ne se subit plus.
Pourquoi / à quel prix : Une attention sur J = 3 états coûte peu (scores [3], poids [3]). Le prix : le module peut dégénérer — des scores plats [1;1;1] donnent une moyenne [0,333…] qui refait, en plus cher, ce que le résiduel offrait gratuitement. Un mécanisme de choix ne vaut que s’il choisit.
Vérification de compréhension
Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.
5. Blocage
Le problème : Stocker les 48 états = 1,5 Gio pour une seule séquence de 4 096 tokens — inacceptable. Mais chaque photo supprimée est une question que les couches suivantes ne pourront plus poser. Où couper ?
L’idée : Regrouper : un checkpoint par bloc de 12 couches → 4 états, 128 Mio (÷12). La granularité devient un curseur — 48, 12, 4 ou 1 états : de « quasi redondant » à « plus aucun choix ».
Pourquoi / à quel prix : Le blocage rend le mécanisme abordable. Le prix : la récupération devient grossière — entre x₁₂ et x₂₄, plus rien n’est adressable — et le placement des checkpoints n’a pas de réponse canonique, seulement un compromis par tâche.
Vérification de compréhension
Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.
6. Ce que cela ne prouve pas
Le problème : Le module affiche 0,665 sur x₂₄ — tentation immédiate : « la couche 24 porte le raisonnement ». Les poids sont lisibles, le récit est séduisant… et la conclusion ne suit pas.
L’idée : Lecture bornée : 0,665 mesure l’influence de x₂₄ dans CE module, à CETTE couche, pour CE token. Le chemin résiduel transporte x₂₄ de toute façon, et des poids parfaitement lisibles peuvent accompagner un module qui n’explique rien — le cas [0,333…] le prouve.
Pourquoi / à quel prix : La discipline d’interprétation évite de vendre un mécanisme comme une explication. Le prix : renoncer aux récits séduisants — toute lecture doit venir avec une expérience qui pourrait la réfuter, sinon c’est de l’interprétabilité décorative.
Vérification de compréhension
Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.
Développement depuis la source de cours
Chapitre 15 — Dilution résiduelle et Attention Residuals
15.1 Flux résiduels
But : comprendre comment les Transformers profonds conservent et mettent à jour l’information. Une connexion résiduelle ajoute la modification d’une couche à la représentation actuelle : x_next = x + F(x).
Chaque éditeur conserve le brouillon actuel et ajoute une révision au lieu de repartir d’une page blanche.
Étape par étape
-
Commencer avec x₀=[1,2].
-
Modification de couche F(x₀)=[0,5; −0,2].
-
Résultat résiduel x₁=[1,5; 1,8].
-
Une couche ultérieure reçoit à la fois l’ancien chemin et la nouvelle modification.
Exemple détaillé : Dans un réseau très profond, mélanger continuellement toutes les informations dans un seul flux peut rendre certains signaux anciens difficiles à retrouver. Le récit fourni appelle cela dilution résiduelle.
Pourquoi c’est important : Les connexions résiduelles facilitent l’optimisation, mais ne garantissent pas que chaque caractéristique ancienne reste également accessible.
Vérification rapide : si x=[3,1] et F(x)=[−1,2], que vaut x+F(x) ? Réponse : [2,3].
15.2 Attention sur la profondeur
But : permettre à une couche de choisir parmi des représentations antérieures, au lieu d’accepter seulement le dernier flux accumulé. Attention Residuals, abrégé AttnRes, utilise une pondération de type attention sur la profondeur.
Un chercheur compare plusieurs brouillons enregistrés et choisit les passages les plus pertinents pour la prochaine révision.
Étape par étape
-
Conserver certaines sorties de couches antérieures ou des résumés de blocs.
-
Calculer des scores de pertinence pour la couche actuelle.
-
Normaliser les scores en poids.
-
Former un mélange pondéré et l’utiliser dans le nouveau calcul.
Exemple détaillé : trois états de profondeur sont h₁=[1,0], h₂=[0,2], h₃=[3,1]. Les poids [0,2; 0,3; 0,5] donnent 0,2h₁+0,3h₂+0,5h₃ = [1,7; 1,1].
Pourquoi c’est important : L’attention sur la profondeur coûte du stockage et du calcul. Blockwise AttnRes réduit ce coût en conservant ou consultant des points de contrôle plus grossiers plutôt que la sortie de chaque couche.
Vérification rapide : à combien s’additionnent les poids AttnRes après softmax ? Réponse : 1.
15.3 Limite des preuves
But : éviter de traiter un schéma architectural comme une spécification publiée. L’espacement exact des points de contrôle, les équations et l’emplacement des couches doivent être vérifiés dans la source officielle Kimi K3.
Un dessin conceptuel d’un bâtiment explique l’idée, mais ne constitue pas le plan d’ingénierie final.
Étape par étape
-
Leçon mécanistique : un accès appris aux états de profondeur antérieurs peut lutter contre la dilution.
-
Détails produit : les tailles exactes des blocs et les gains annoncés exigent des preuves primaires.
Exemple détaillé : Cette distinction garde le cours utile même si de futures publications modifient les noms ou les chiffres.
Pourquoi c’est important : Lire scientifiquement signifie distinguer ce qui est dérivé, mesuré ou seulement rapporté.
Vérification rapide : quelle source doit trancher un désaccord sur l’implémentation exacte ? Réponse : le code officiel ou un rapport technique faisant autorité pour la version précise du modèle.
Cas guidé complet
Scores de profondeur [2;1;0] sur {x₂₄;x₁₂;x₀} donnent softmax ≈ [0,67;0,24;0,09]. Le mélange privilégie x₂₄, le checkpoint le plus récent, tandis que les deux autres conservent ensemble 33 %.
Méthode de lecture: écrire les données, annoncer la forme de chaque objet, effectuer une seule transformation, puis interpréter le résultat avant de continuer.