Aller au contenu

Quantification et modèle brouillon

Deux optimisations « conscientes du déploiement » (deployment-aware), intégrées dans le post-entraînement plutôt qu'appliquées après coup.

1. La quantification MXFP4 par QAT

Ce qui est quantifié

Les poids des experts MoE — qui dominent la mémoire du modèle — sont quantifiés en MXFP4, avec des activations calculées en MXFP8.

Restent en précision supérieure :

  • les projections d'attention ;
  • les projections latentes du MoE (\(\mathbf{W}^{\downarrow}\), \(\mathbf{W}^{\uparrow}\)) ;
  • les experts partagés ;
  • les routeurs MoE ;
  • (d'après la configuration publiée) la tête de sortie, l'encodeur visuel et le projecteur multimodal.

Le raisonnement

Les experts routés représentent 2,72 T des 2,78 T de paramètres, soit 98 %. Les quantifier suffit à capturer l'essentiel du gain mémoire. Tout ce qui est sensible à la précision — l'attention, le routage, la sortie — est laissé intact.

Le rapport bénéfice/risque est écrasant dans un sens comme dans l'autre. C'est une quantification chirurgicale, pas globale.

Le format MXFP4

Microscaling FP4 : 4 bits par valeur, plus un facteur d'échelle partagé par bloc de 32 valeurs.

Paramètre Valeur (config publiée)
Bits 4
Taille de groupe 32
Symétrique Oui
Observateur min-max
Type d'échelle torch.uint8
Format mxfp4-pack-quantized

Pourquoi l'échelle par bloc est indispensable

Un format 4 bits offre 16 valeurs distinctes. Sans facteur d'échelle adaptatif, la même grille devrait couvrir toute la plage d'une matrice — où les amplitudes peuvent varier de plusieurs ordres de grandeur. Avec un facteur par bloc de 32, chaque petit voisinage a sa propre grille adaptée.

QAT : entraîner avec la quantification

Le choix central

La quantification n'est pas appliquée après l'entraînement. Elle est simulée pendant tout le post-entraînement, du SFT au RL inclus, pour que le modèle s'adapte à la perte de précision qu'elle induit.

Approche Principe Coût qualité
PTQ Quantifier un modèle déjà entraîné Dégradation, parfois sévère
QAT Entraîner en simulant la quantification Minimale — le modèle compense

Le bénéfice caché : la cohérence RL

Le point le plus subtil de cette section

During RL, rollout and training share the same quantization scheme — eliminating the train–inference mismatch.

En RL, les trajectoires sont produites par un moteur d'inférence et les gradients calculés par un moteur d'entraînement. Si les deux n'ont pas exactement la même arithmétique, la politique qui a généré la trajectoire diffère légèrement de celle qu'on met à jour.

Cet écart est une source classique et sournoise d'instabilité en RL. Le QAT l'annule : les deux côtés utilisent la même quantification.

2. Le modèle brouillon EAGLE-3

Le contexte

Le décodage spéculatif accélère la génération : un petit modèle propose plusieurs jetons, le grand les vérifie tous en une passe. C'est sans perte de qualité.

D'où vient le brouillon

Kimi K3 est pré-entraîné avec une couche MTP (Multi-Token Prediction) dont la structure reflète celle d'un bloc du backbone.

Or le modèle brouillon d'EAGLE-3 est constitué d'une seule couche de décodeur dont la structure coïncide avec cette couche MTP.

La conséquence

Il suffit d'affiner la couche MTP pré-entraînée en brouillon EAGLE-3 : le modèle cible est gelé, seules la couche brouillon et sa projection de fusion de caractéristiques sont mises à jour.

Pas besoin d'entraîner un modèle brouillon depuis zéro.

L'entraînement du brouillon

Suivant le protocole training-time test d'EAGLE-3, le brouillon est déroulé sur sept pas pendant l'entraînement. Au-delà du premier pas — où les caractéristiques côté cible de la position la plus récente ne sont pas disponibles — le brouillon consomme ses propres sorties des pas précédents, reproduisant la procédure de brouillon récurrent de l'inférence.

Pourquoi ce détail compte

C'est le même principe que la distillation on-policy : entraîner le modèle dans les conditions où il sera utilisé. Un brouillon entraîné uniquement sur des entrées parfaites se dégraderait dès le deuxième pas en production.

La fusion des caractéristiques

L'entrée du brouillon fusionne des caractéristiques de bas, moyen et haut niveau du modèle cible, prises respectivement aux sorties des 1er, 4e et dernier blocs AttnRes.

Ces caractéristiques sont concaténées et projetées vers la dimension cachée par une matrice sans biais \(\mathbf{W}_{\mathrm{E3}}\), initialisée à

\[ \mathbf{W}_{\mathrm{E3}} = [\,\mathbf{0}\;\;\mathbf{0}\;\;\mathbf{I}\,] \]

Une initialisation qui mérite d'être comprise

Avec cette initialisation, la représentation fusionnée coïncide à l'initialisation avec la caractéristique de haut niveau \(\mathbf{h}_{h}\) — exactement l'entrée sur laquelle la couche MTP a été pré-entraînée.

Le brouillon démarre donc exactement au comportement du MTP pré-entraîné, puis apprend progressivement à incorporer les caractéristiques de bas et moyen niveau.

C'est une initialisation qui garantit qu'on ne perd rien au départ et qu'on ne peut que gagner. Ce genre de détail distingue une implémentation soignée d'une implémentation naïve.

La perte LK : optimiser la bonne quantité

L'accélération du décodage spéculatif est gouvernée par le taux d'acceptation par jeton sous échantillonnage spéculatif sans perte :

\[ \text{taux d'acceptation} = \sum_{x \in \mathcal{V}} \min\!\left(p(x), q(x)\right) \]

où \(p\) et \(q\) sont les distributions du jeton suivant des modèles cible et brouillon.

Le problème avec la pratique standard

La pratique usuelle minimise une divergence KL entre \(p\) et \(q\). Or, pour un modèle brouillon à capacité limitée, minimiser la KL ne garantit pas de maximiser le taux d'acceptation.

Ce sont deux objectifs différents, et l'un n'est un substitut de l'autre que dans le régime où le brouillon peut représenter \(p\) exactement — ce qui n'est justement pas le cas.

Kimi K3 optimise donc directement le logarithme négatif du taux d'acceptation, la perte LK :

\[ \mathcal{L}_{\mathrm{LK}} = -\log \sum_{x \in \mathcal{V}} \min\!\left(p(x), q(x)\right) \]

avec \(p\) et \(q\) évaluées à température 1 et sans terme auxiliaire d'entropie croisée sur la vérité terrain.

La configuration du brouillon

L'affinage du brouillon suit la configuration QAT du post-entraînement : poids d'experts MoE en MXFP4, activations d'entrée en MXFP8, modules non-experts en précision supérieure.

Un point de vigilance sur le dépôt public

La couche MTP semble absente des poids publiés

Le rapport indique 1 couche MTP (identique à Kimi K2). Mais le config.json publié porte :

"num_nextn_predict_layers": 0

Cela suggère que la couche MTP — et donc le modèle brouillon EAGLE-3 — n'est pas incluse dans le dépôt de poids public.

Conséquence pratique : le décodage spéculatif tel que décrit dans le rapport n'est pas directement reproductible à partir des seuls poids publiés. Les utilisateurs auto-hébergeant K3 n'ont pas accès à cette accélération sans entraîner leur propre brouillon.

À vérifier dans les recettes vLLM/SGLang officielles, qui pourraient distribuer le brouillon séparément.

Vérification de compréhension

Pourquoi 7 pas de déroulement pour l'entraînement du brouillon ?

Le rapport ne le justifie pas ; c'est le protocole d'EAGLE-3. L'ordre de grandeur correspond à ce qu'on peut espérer accepter dans une fenêtre de brouillon en pratique — au-delà, le taux d'acceptation cumulé devient si faible que l'entraînement sur ces positions n'apporte plus rien.

Le décodage spéculatif change-t-il les réponses du modèle ?

Non. L'échantillonnage spéculatif est mathématiquement sans perte : la distribution des jetons produits est exactement celle du modèle cible seul. Seule la vitesse change.

Quelle est l'économie mémoire réelle du MXFP4 ?

En BF16, 2,78 T de paramètres pèseraient ~5,6 To. Le dépôt publié pèse 1,56 To. Le facteur est donc d'environ 3,6×, et non 4× — parce que les 2 % de paramètres non quantifiés et les facteurs d'échelle par bloc coûtent leur place.


Chapitre précédent : Environnements RL

Fin de la partie Entraînement. Suite : Infrastructure.