Prefix LM (Prefix Language Modeling)
Le Prefix Language Modeling (Prefix LM ou PLM) est un objectif d’entraînement hybride où une partie de la séquence (le « préfixe ») est traitée avec une attention bidirectionnelle, tandis que le reste (la « cible ») est généré de manière autoréessive avec un masque causal. C’est un compromis entre le Causal LM (tout causal) et le Masked LM (tout bidirectionnel).
- Catégorie
- Objectif d’entraînement / Architecture attention hybride
- Aussi appelé
- PrefixLM, Prefix Language Model, non-causal decoder
- Principe
- Attention bidirectionnelle sur le préfixe (entrée), attention causale sur la cible (sortie)
- Modèles associés
- UL2, UniLM, certaines variantes de T5, CodeGen2, Encoder-Decoder Gemma
- Relation aux autres objectifs
- Combine les avantages du CLM (génération) et du MLM (compréhension bidirectionnelle)
L’intuition : pourquoi masquer ce qui est déjà connu ?
Quand vous posez une question à un LLM, la question est entièrement connue avant que le modèle ne commence à répondre. Dans un decoder-only standard avec Causal LM, chaque token de la question ne peut voir que les tokens précédents, même si la question complète est disponible. Le token « est » dans « Quelle est la capitale de la France ? » ne peut pas voir « France », ce qui appauvrit la représentation du contexte.
Le Prefix LM part d’un constat simple : il n’y a aucune raison de cacher les tokens futurs dans la partie « entrée » (le préfixe), puisqu’elle est déjà connue en entier. Seule la partie « sortie » (la cible), qui est générée token par token, nécessite un masque causal. Le Prefix LM formalise cette intuition en créant deux zones d’attention dans une même séquence.
Le masque d’attention en L
Le Prefix LM utilise un masque d’attention caractéristique, souvent décrit comme ayant une forme en « L » :
Zone préfixe (bidirectionnelle). Tous les tokens du préfixe peuvent voir tous les autres tokens du préfixe, dans les deux directions. C’est exactement le comportement d’un encodeur de type BERT. L’information circule librement dans cette zone.
Zone cible (causale). Chaque token de la cible ne voit que les tokens précédents de la cible plus l’intégralité du préfixe. C’est le comportement d’un décodeur classique. L’attention est masquée pour les tokens futurs de la cible.
Cross-zone. Les tokens de la cible voient l’intégralité du préfixe (pas de masquage). Les tokens du préfixe ne voient pas les tokens de la cible (qui n’existent pas encore au moment du traitement du préfixe).
Implémentation technique
Implémenter un Prefix LM dans un Transformer decoder-only est conceptuellement simple : il suffit de modifier le masque d’attention. Au lieu d’un masque triangulaire inférieur uniforme (tout causal), on crée un masque composite :
import torch
def create_prefix_lm_mask(seq_len, prefix_len):
"""
Crée un masque d'attention pour le Prefix LM.
- Préfixe (0 à prefix_len) : attention bidirectionnelle
- Cible (prefix_len à seq_len) : attention causale
"""
# Initialiser : tout visible (0 = attend)
mask = torch.zeros(seq_len, seq_len)
# Zone cible : appliquer le masque causal
for i in range(prefix_len, seq_len):
for j in range(i + 1, seq_len):
mask[i, j] = float('-inf') # Cacher les tokens futurs
# Les tokens du préfixe ne voient pas la cible
for i in range(prefix_len):
for j in range(prefix_len, seq_len):
mask[i, j] = float('-inf')
return maskLe résultat est un masque avec une zone pleine (le préfixe voit le préfixe) en haut à gauche, une zone triangulaire (la cible ne voit que le passé) en bas à droite, et une zone pleine permettant à la cible de voir tout le préfixe. C’est la forme en « L » caractéristique.
L’entraînement fonctionne comme un CLM standard : le modèle prédit les tokens de la cible un par un. La perte n’est calculée que sur les tokens de la cible (pas sur le préfixe). Le « split point » entre préfixe et cible est déterminé aléatoirement pour chaque exemple d’entraînement.
Modèles utilisant le Prefix LM
UL2 : Unified Language Learner (Google, 2022)
UL2 est le modèle le plus important à avoir formalisé l’utilisation du Prefix LM. Son innovation est le « Mixture of Denoisers » (MoD), qui combine trois types d’objectifs :
R-Denoiser (Regular). Span corruption classique type T5, avec des spans courts masqués et un faible taux de corruption. Développe la compréhension fine du langage.
S-Denoiser (Sequential). C’est le Prefix LM pur : la séquence est coupée en un préfixe (avec attention bidirectionnelle) et une cible (prédiction autoréessive). Quand le préfixe est très court ou absent, ça revient au Causal LM standard. Développe les capacités de génération.
X-Denoiser (eXtreme). Corruption agressive avec de longs spans masqués et un taux élevé. Le modèle doit reconstruire de grandes portions de texte à partir d’un contexte limité. Développe la capacité de génération longue.
UL2 utilise des tokens de mode ([S2S], [NLU], [NLG]) pour indiquer au modèle quel type de tâche il doit effectuer, permettant au même modèle de basculer entre compréhension et génération. Les résultats montrent que UL2 surpasse à la fois le CLM pur et le span corruption pur sur une variété de tâches, triplant notamment les performances de T5-XXL en résumé one-shot.
UniLM (Microsoft, 2019)
UniLM est l’un des premiers modèles à avoir unifié différents modes d’attention dans un seul Transformer. En manipulant le masque d’attention, UniLM peut fonctionner comme un modèle encoder-only (attention bidirectionnelle complète), un decoder-only (attention causale complète), ou un Prefix LM (attention hybride). Cette flexibilité permet d’entraîner un seul modèle pour des tâches variées sans changer l’architecture.
CodeGen2 (Salesforce, 2023)
CodeGen2 a testé le Prefix LM pour la synthèse de code, combiné avec l’objectif UL2. L’hypothèse était que l’attention bidirectionnelle sur le préfixe améliorerait les tâches de compréhension (few-shot) sans dégrader la génération. Les résultats sont nuancés : le Prefix LM n’a pas montré d’avantage clair sur le CLM standard pour la génération de code (HumanEval), mais les hyperparamètres du dénoiser influencent fortement les résultats. Maximiser le nombre de tokens contribuant au gradient est crucial pour la performance en programmation.
Encoder-Decoder Gemma (Google, 2025)
Un travail récent de Google adapte le modèle Gemma 2 (decoder-only) en un encoder-decoder, en utilisant le Prefix LM comme l’un des objectifs de pré-entraînement. Les résultats montrent que le Prefix LM produit des LLM génératifs plus puissants (meilleurs sur les benchmarks d’instruction tuning), tandis que UL2 produit de meilleures représentations contextuelles (meilleur sur SuperGLUE). L’attention bidirectionnelle de l’encodeur est identifiée comme un facteur clé du succès, avec une dégradation significative quand on la remplace par une attention causale.
Avantages du Prefix LM
Meilleure compréhension de l’entrée. L’attention bidirectionnelle sur le préfixe produit des représentations plus riches du contexte d’entrée que l’attention causale pure. Chaque token du préfixe « voit » tous les autres tokens du préfixe, capturant des dépendances dans les deux directions. C’est particulièrement bénéfique pour les tâches conditionnées sur un contexte (Q&A, résumé, traduction).
Capacité générative préservée. Contrairement au MLM qui ne peut pas générer de texte, le Prefix LM conserve la génération autoréessive dans la zone cible. Le modèle peut produire du texte token par token, exactement comme un CLM. C’est le meilleur des deux mondes.
Un seul réseau, pas d’encodeur séparé. Contrairement à l’encoder-decoder qui nécessite deux piles de couches (encodeur + décodeur) avec cross-attention, le Prefix LM fonctionne dans un seul decoder-only. Les poids sont partagés entre le traitement du préfixe et la génération de la cible, ce qui est plus simple et plus efficient en paramètres.
Correspondance naturelle avec l’inférence. Pendant l’inférence d’un LLM, la phase de prefill (traitement du prompt) traite le contexte en entier avant la génération. Le Prefix LM formalise cette réalité : le prompt (préfixe) est traité en bidirectionnel, la réponse (cible) est générée causalement. C’est l’objectif d’entraînement qui correspond le mieux au schéma d’utilisation réel.
Limites et raisons du faible adoption
Malgré ses qualités théoriques, le Prefix LM n’a pas été largement adopté par les LLM modernes. Plusieurs raisons expliquent cette situation :
Le CLM scale mieux empiriquement. L’étude de Wang et al. (2022) montre que l’avantage du decoder-only causal augmente avec le budget de calcul. UL2 a montré des améliorations, mais d’autres chercheurs ont eu des difficultés à reproduire ces gains dans leurs propres implémentations. L’avantage du Prefix LM semble dépendre fortement des hyperparamètres et de la configuration exacte.
Complexité d’implémentation accrue. Le Prefix LM nécessite un masque d’attention non standard, un split point variable par exemple, et potentiellement des tokens de mode. Jusqu’à récemment, il n’existait pas d’implémentation optimisée (type Flash Attention) pour les masques PrefixLM, ce qui rendait l’entraînement plus lent que le CLM standard. La bibliothèque Flash Attention a ajouté le support des masques variables, mais l’écosystème reste centré sur le CLM.
Résultats mitigés en code. CodeGen2 n’a pas trouvé de bénéfice clair du Prefix LM pour la synthèse de code. Sur HumanEval, le CLM standard a surpassé le Prefix LM combiné à UL2, suggérant que pour certaines tâches génératives, la simplicité du CLM est préférable.
Le momentum du CLM. L’écosystème entier (frameworks, recettes d’entraînement, benchmarks, outils d’inférence) est optimisé pour le CLM. Adopter le Prefix LM implique de modifier toute la pipeline, pour des gains qui ne sont pas toujours reproductibles. L’inertie industrielle favorise le CLM.
Prefix LM et denoising : les cousins proches
Le Prefix LM est étroitement lié aux objectifs de denoising (span corruption). La différence clé :
Span corruption (T5). Des spans aléatoires sont masqués n’importe où dans la séquence. Les tokens de contexte peuvent apparaître après les tokens cibles. Le modèle reconstruit les spans masqués. C’est l’objectif classique de T5 et de la partie R-Denoiser d’UL2.
Prefix LM (S-Denoiser). La séquence est coupée en deux parties consécutives : un préfixe (contexte) et une cible (tokens à prédire). Les tokens de la cible sont toujours après le préfixe, respectant l’ordre séquentiel. Avec un préfixe court ou absent, cela converge vers le CLM standard.
Fill-in-the-Middle (FIM). Utilisé en code LLM (Codex, StarCoder), le FIM réarrange la séquence pour que le modèle apprenne à remplir un « trou » au milieu du code. C’est une variante du denoising spécifiquement conçue pour l’infilling de code. UL2, FIM et le Prefix LM partagent la même motivation : aller au-delà du CLM purement gauche-droite.
Ces techniques ont convergé indépendamment vers la même idée : combiner compréhension bidirectionnelle et génération autoréessive. UL2 a formalisé cette convergence dans un cadre unifié.
L’avenir du Prefix LM
Plusieurs signaux suggèrent un regain d’intérêt pour le Prefix LM :
Encoder-Decoder Gemma (2025). Google montre que les modèles encoder-decoder adaptés depuis des decoder-only (avec Prefix LM et UL2) surpassent significativement les decoder-only purs après instruction tuning (+4,9 points sur les benchmarks IT pour un modèle 9B). Cela relance la question de l’optimalité du CLM pur.
Linear Attention et Prefix LM. Un article de 2024 (Schoelkopf) montre que le Prefix LM est paradoxalement plus rapide que le CLM pour les architectures à attention linéaire (non-Transformer). L’attention linéaire bidirectionnelle est moins coûteuse que l’attention causale dans ces architectures, inversant le compromis habituel. Si les architectures alternatives au Transformer se développent, le Prefix LM pourrait bénéficier d’un avantage de vitesse.
Hybridation CLM + denoising. De nombreux LLM modernes intègrent déjà des éléments de denoising dans leur entraînement (FIM pour le code, mixtures d’objectifs). Le Prefix LM pourrait s’intégrer naturellement dans ces mixtures sans remplacer le CLM, mais en le complétant pour les tâches conditionnées sur un contexte.
Verdict
Le Prefix LM est l’objectif d’entraînement le plus élégant sur le plan théorique : il correspond exactement au schéma d’utilisation réel des LLM (comprendre le prompt, puis générer la réponse). UL2 a prouvé qu’il peut surpasser le CLM et le MLM purs quand il est bien configuré. Et pourtant, il reste marginal dans la pratique, victime du momentum massif du CLM et de la difficulté à reproduire ses gains de manière fiable.
Son héritage est néanmoins important. Le concept d’attention hybride (bidirectionnelle sur l’entrée, causale sur la sortie) a influencé la conception des pipelines d’inférence (prefill bidirectionnel + decode causal dans les systèmes de serving optimisés). Et les objectifs de denoising inspirés du Prefix LM (FIM, UL2) font désormais partie de l’arsenal d’entraînement des meilleurs LLM. Le Prefix LM n’a peut-être pas gagné la bataille de l’adoption, mais ses idées ont gagné la guerre de l’influence.
Questions fréquentes sur le Prefix Language Modeling
Le Prefix LM est-il la même chose qu’un encoder-decoder ?
Presque, mais pas exactement. Un encoder-decoder utilise deux piles de couches séparées (encodeur + décodeur) avec un mécanisme de cross-attention entre elles. Un Prefix LM utilise une seule pile de couches (un decoder-only) avec un masque d’attention modifié. L’effet est similaire (compréhension bidirectionnelle de l’entrée + génération causale de la sortie), mais le Prefix LM partage les poids et n’a pas de cross-attention dédiée. L’encoder-decoder a un « goulot d’étranglement » naturel (les sorties de l’encodeur sont compressées avant de passer au décodeur), que le Prefix LM n’a pas.
Pourquoi GPT, Claude et LLaMA n’utilisent-ils pas le Prefix LM ?
Principalement pour des raisons pratiques. Le CLM est plus simple à implémenter, mieux supporté par les frameworks d’entraînement, et ses propriétés de scaling sont bien comprises. Les gains du Prefix LM sont réels mais modestes et difficiles à reproduire de manière fiable. À l’échelle des investissements frontier (dizaines de millions de dollars d’entraînement), les labos préfèrent la certitude du CLM éprouvé à l’incertitude d’un objectif hybride.
UL2 est-il meilleur que le CLM ?
Sur certaines tâches, oui. UL2 triple les performances de T5-XXL en résumé one-shot et surpasse le CLM et le span corruption purs en fine-tuning. Mais le CLM domine sur les tâches de génération open-ended et le prompting few-shot. UL2 est « meilleur en moyenne » grâce à sa polyvalence, mais pas systématiquement meilleur sur chaque tâche. La recherche Encoder-Decoder Gemma (2025) montre que le choix optimal dépend de la métrique : UL2 pour les représentations contextuelles, Prefix LM pour la génération après instruction tuning.
Le Prefix LM est-il compatible avec le MoE ?
Oui. Le Switch Transformer de Google utilise un encoder-decoder (proche du Prefix LM en esprit) combiné avec du MoE. Il n’y a pas d’incompatibilité technique entre le masque d’attention Prefix LM et l’architecture MoE. En théorie, un modèle decoder-only MoE avec un masque Prefix LM combinerait les avantages des trois approches : compréhension bidirectionnelle, génération efficace et sparsité structurelle.
Comment le Prefix LM se compare-t-il au Fill-in-the-Middle (FIM) ?
Les deux visent à dépasser les limites du CLM gauche-droite. Le Prefix LM modifie le masque d’attention pour créer une zone bidirectionnelle (le préfixe). Le FIM réarrange l’ordre des tokens (le segment du milieu est déplacé à la fin) pour que le CLM standard apprenne à remplir des trous. Le FIM est plus simple à implémenter (pas de masque spécial) mais moins flexible (limité au schéma préfixe-trou-suffixe). En pratique, FIM est devenu le standard pour le code (StarCoder, Codex), tandis que le Prefix LM reste plus expérimental pour le texte général.