Des embeddings de tokens quasi nuls annulent 20% des étapes de fine-tuning des modèles gated sur le télougou

Un audit de 291 dépôts ouverts montre que 52,6% des checkpoints gated et hybrides à poids non liés (20 sur 38) contiennent des tokens dont l'embedding a une norme quasi nulle. Dans des modèles comme Mamba, un tel token amplifie les gradients de plus de 30 ordres de grandeur. Le clipping en FP32 déborde alors et met à zéro les gradients de tout le batch. Lors d'un fine-tuning sur le télougou, environ 20% des étapes sont ainsi perdues. Les deux correctifs proposés n'ajoutent ni temps d'étape ni consommation de mémoire.

Traité par IA depuis Hugging Face Daily Papers ; édité par Hamidun News
Des embeddings de tokens quasi nuls annulent 20% des étapes de fine-tuning des modèles gated sur le télougou
Source : Hugging Face Daily Papers. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHugging Face Daily Papers ↗
Rédacteur en chef
Chiffre clé #1Parmi les 101 modèles à poids liés, aucun n'a de tels tokens : 0%
Chiffre clé #2Un clipping séparé des embeddings, en trois lignes de code, guérit la ligne en une seule étape
Chiffre clé #3Un biais de gate réduit les gradients de 28+ ordres de grandeur sur des modèles allant jusqu'à 370M de paramètres

Si vous affinez un modèle ouvert à gates (Mamba, Gated DeltaNet ou xLSTM, c'est-à-dire une architecture récurrente où des « portes » régulent l'accès à l'état accumulé), une part notable des étapes d'optimisation peut ne modifier aucun poids. La cause n'est pas une erreur dans les données, mais des tokens dont les embeddings d'entrée ont une norme quasi nulle. Dans ces modèles gated, un seul de ces tokens amplifie les gradients de plusieurs dizaines d'ordres de grandeur, et le clipping de gradient standard transforme cette explosion en annulation complète de la mise à jour. Lors d'un continual pretraining sur le télougou, environ 20% des étapes disparaissent ainsi, sans la moindre exception ni le moindre avertissement dans les logs.

D'où viennent les lignes « nulles » des checkpoints

Les auteurs ont examiné 291 dépôts ouverts de Hugging Face (280 tables d'embeddings distinctes). Ils ont lu les poids et le tokenizer directement par requêtes HTTP byte-range. Pour écarter les entrées de service et celles qui sont inatteignables, chaque ligne suspecte a subi un contrôle : l'ID est décodé puis retokenisé, isolément et dans huit gabarits de phrases. Un token n'était jugé atteignable que s'il redonnait le même ID.

Sur les 291 dépôts, 92 contiennent des lignes à très faible norme, et 67 (23,0%) des tokens quasi nuls atteignables. Parmi les 101 modèles dont les matrices d'entrée et de sortie sont liées, aucun n'en compte. Parmi les 190 modèles à matrices séparées, 67 en ont (35,3%). La proportion est de 30,9% pour les Transformers classiques, et de 52,6% pour les modèles gated et hybrides (20 sur 38).

L'origine se trouve dans le pré-entraînement. Un token qui n'est jamais apparu dans le texte ne reçoit aucun gradient sur sa ligne d'entrée. Or AdamW standard applique le weight decay à toutes les matrices bidimensionnelles, et la ligne inutilisée se contracte vers zéro, étape après étape.

La ligne de sortie, elle, reçoit à chaque étape des gradients softmax non nuls et reste saine : pour 92% des 979 tokens vérifiés (901), les normes de sortie sont au moins égales à la médiane du vocabulaire. Quand les poids sont liés, les gradients de sortie maintiennent eux-mêmes une échelle normale. Dans un échantillon de 364 millions de tokens, les 251 lignes quasi nulles appartiennent toutes à des tokens à zéro occurrence.

Ce sont des lignes ordinaires qui sont touchées : des sous-mots télougous et basques, des mots mongols en cyrillique, des fragments de code avec CRLF. Les modèles affinés et distillés héritent de ces lignes depuis les checkpoints de base.

Pourquoi les modèles gated sont particulièrement touchés

Dans un Transformer, le problème n'existe pas pour un token qui n'est pas en première position. Dès la première couche d'attention, la moyenne des valeurs des tokens précédents, d'échelle normale, ramène le signal dans une plage exploitable. Il en va de même si la séquence commence par un BOS.

Dans les récurrences gated, la lecture de l'état historique est multipliée par une fonction du token courant : un gate ou une requête linéaire. Si l'entrée est nulle, le multiplicateur tombe lui aussi à zéro et la contribution de l'historique s'effondre. Le vecteur résiduel reste quasi nul sur plusieurs blocs consécutifs, tandis que la Pre-RMSNorm de chaque couche multiplie les gradients rétropropagés par un coefficient élevé. L'effet s'accumule avec la profondeur : les gradients des embeddings d'entrée croissent de plus de 30 ordres de grandeur (jusqu'à 35). Les hybrides atteignent un plafond, tandis que les modèles purement gated continuent de croître.

Les auteurs ont vérifié la causalité par intervention : ils ont ouvert le gate de la première couche lors de la passe avant, en conservant toutes les dérivées arrière, et le gradient a chuté brutalement. La seule désactivation de la dérivée arrière du gate n'a pas supprimé le problème.

Annulation silencieuse du batch et deux remèdes

C'est ensuite le clipping par norme globale qui se déclenche. PyTorch, HuggingFace Trainer et FSDP2 additionnent les carrés des gradients en FP32. Si une seule entrée est trop grande, son élévation au carré donne l'infini. Les gradients sont divisés par une norme infinie et deviennent des zéros. AdamW n'avance alors qu'avec l'ancien moment et le weight decay sur le reste du réseau, tandis que la nouvelle ligne quasi nulle, au moment nul, reste figée et fait échouer les batchs suivants. Ce défaut n'apparaît pas à l'inférence ni dans les rollouts RL on-policy, mais une mise à jour RL en paramètres complets sur des prompts contenant des balises de chat quasi nulles le déclenche.

Les auteurs proposent deux solutions sans surcoût en temps d'étape ni en pic de mémoire :

  • Clipping séparé des embeddings d'entrée. La norme est calculée à part des autres poids, en arithmétique 64 bits ou avec remise à l'échelle, et cela tient en trois lignes de code. Les pertes de mises à jour disparaissent et la ligne touchée « guérit » en une seule étape. Il n'est pas nécessaire de scanner le vocabulaire ni de modifier l'architecture.
  • Biais positif du gate pour un pré-entraînement from scratch. Le gate reste positif pour une entrée nulle, et la première couche laisse passer un état non nul. Les gradients quasi nuls chutent de plus de 28 ordres de grandeur sur des modèles allant jusqu'à 370M de paramètres, et la perplexité de validation reste comparable à celle du modèle de base.

Désactiver le weight decay pour les embeddings dans des checkpoints déjà publiés n'aidera pas : l'explosion se produit dès la première étape. Et pour un entraînement from scratch, cette désactivation seule ne suffit pas non plus : les blocs amplifient quand même les gradients lorsque l'initialisation des normes est faible.

La conclusion pratique est simple. Si vous affinez un checkpoint gated à poids non liés sur une langue à faibles ressources ou avec vos propres balises de chat, vérifiez les normes des lignes d'embeddings d'entrée et isolez leur clipping.

Dossier

Questions clés sur cet article

Que sait-on sur D'où viennent les lignes « nulles » des checkpoints ?

Les auteurs ont examiné 291 dépôts ouverts de Hugging Face (280 tables d'embeddings distinctes). Ils ont lu les poids et le tokenizer directement par requêtes HTTP byte-range. Pour écarter les entrées de service et celles qui sont inatteignables, chaque ligne suspecte a subi un contrôle : l'ID est décodé puis retokenisé, isolément et dans huit gabarits de phrases. Un token n'était jugé atteignable que s'il redonnait le même ID.

Pourquoi les modèles gated sont particulièrement touchés?

Dans un Transformer, le problème n'existe pas pour un token qui n'est pas en première position. Dès la première couche d'attention, la moyenne des valeurs des tokens précédents, d'échelle normale, ramène le signal dans une plage exploitable. Il en va de même si la séquence commence par un BOS. Dans les récurrences gated, la lecture de l'état historique est multipliée par une fonction du token courant : un gate ou une requête linéaire.

Que sait-on sur Annulation silencieuse du batch et deux remèdes ?

C'est ensuite le clipping par norme globale qui se déclenche. PyTorch, HuggingFace Trainer et FSDP2 additionnent les carrés des gradients en FP32. Si une seule entrée est trop grande, son élévation au carré donne l'infini. Les gradients sont divisés par une norme infinie et deviennent des zéros. AdamW n'avance alors qu'avec l'ancien moment et le weight decay sur le reste du réseau, tandis que la nouvelle ligne quasi nulle, au moment nul, reste figée et fait échouer les batchs suivants.

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…