Polydesk-logotype
Polydesk.ai — Header

Positional Encoding (Encodage Positionnel)

Definition Le positional encoding (encodage positionnel) est un mecanisme qui injecte l’information de position (l’ordre des elements dans une sequence) dans les representations utilisees par un Transformer. Sans positional encoding, le mecanisme d’attention traiterait la sequence comme un ensemble non ordonne, ignorant completement l’ordre des mots.
ProprieteDetail
CategorieComposant d’architecture Transformer
Raison d’etreLe mecanisme d’attention est invariant a la permutation
Methode originaleEncodage sinusoidal (Vaswani et al., 2017)
Methodes modernesRoPE, ALiBi, encodage appris, Relative PE
ImpactDetermine la capacite du modele a generaliser sur des longueurs de sequence

Pourquoi le positional encoding est necessaire

Le mecanisme de self-attention calcule des poids d’attention via des produits scalaires entre Queries et Keys. Ce calcul est une operation ensembliste : il ne depend pas de l’ordre des elements dans la sequence. Si vous permutez les tokens en entree, les poids d’attention sont permutes de maniere correspondante, mais le calcul lui-meme ne « sait » pas quel token vient en premier.

Cela pose un probleme fondamental pour le traitement du langage. Les phrases « Le chat mange le poisson » et « Le poisson mange le chat » contiennent exactement les memes mots, mais leur sens est radicalement different. Sans information de position, un Transformer ne pourrait pas distinguer ces deux phrases.

Contrairement aux RNNs et LSTMs, qui traitent les tokens sequentiellement (et donc encodent implicitement l’ordre par le flux de calcul), les Transformers traitent tous les tokens en parallele. L’information de position doit donc etre injectee explicitement dans les representations.

Encodage sinusoidal (original)

L’encodage sinusoidal, propose dans le papier original « Attention Is All You Need » (Vaswani et al., 2017), ajoute aux embeddings des tokens un vecteur de position calcule par des fonctions sinus et cosinus de frequences differentes. Pour chaque position pos et chaque dimension i de l’embedding, la formule est : PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) et PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model)).

Ce schema a plusieurs proprietes interessantes. Chaque position produit un vecteur unique. Les positions proches ont des encodages similaires (grace aux frequences basses), tandis que les positions eloignees sont bien distinguees (grace aux frequences hautes). Le produit scalaire entre deux encodages positionnels ne depend que de la distance relative entre les positions, ce qui offre une forme naturelle de generalisation.

L’encodage est calcule une fois et ajoute (pas concatene) aux embeddings des tokens avant la premiere couche d’attention. C’est un encodage absolu : chaque position a un vecteur fixe, independamment du contenu a cette position.

Encodage positionnel appris

Une alternative simple est d’utiliser une matrice d’embeddings positionnels appris, ou chaque position (1, 2, 3, …, max_length) a un vecteur appris pendant l’entrainement, exactement comme les word embeddings. C’est l’approche utilisee par GPT-2 et BERT.

L’avantage est la flexibilite : le modele apprend exactement les representations positionnelles optimales pour sa tache. L’inconvenient majeur est que le modele ne peut pas generaliser au-dela de la longueur maximale vue pendant l’entrainement. Si le modele est entraine avec max_length = 512, il n’a pas d’embedding pour la position 513. C’est une limitation importante qui a motive le developpement de methodes plus flexibles.

RoPE (Rotary Position Embedding)

RoPE (Su et al., 2021) est devenu le standard de l’industrie pour les LLMs modernes. Il est utilise par Llama, Mistral, Qwen, DeepSeek et la majorite des modeles recents. Au lieu d’ajouter un vecteur de position aux embeddings, RoPE applique une rotation dans l’espace vectoriel.

Le principe est d’encoder la position comme un angle de rotation. Pour chaque paire de dimensions consecutives de l’embedding, le vecteur est tourne d’un angle proportionnel a la position et a la frequence associee a cette paire. Quand deux vecteurs sont multiplies (comme dans le calcul QK^T), les rotations s’annulent partiellement, et le produit scalaire ne depend que de la difference de position entre les deux tokens.

Cette propriete (dependance a la position relative, pas absolue) est exactement ce qu’on souhaite : le modele « sait » que deux tokens sont separes de 5 positions, qu’ils soient aux positions 10 et 15 ou aux positions 100 et 105. Cela facilite la generalisation a des longueurs de sequence superieures a celles vues pendant l’entrainement.

Pour etendre la fenetre de contexte au-dela de la longueur d’entrainement, des techniques comme YaRN (Yet another RoPE Extension) et NTK-aware scaling modifient les frequences de RoPE pour compresser les positions. Par exemple, Llama 3 utilise RoPE avec un facteur d’extension pour supporter 128K tokens de contexte.

ALiBi (Attention with Linear Biases)

ALiBi (Press et al., 2022) prend une approche radicalement differente : au lieu de modifier les embeddings, il ajoute un biais lineaire aux scores d’attention. Chaque tete d’attention recoit un biais negatif proportionnel a la distance entre les positions de la Query et de la Key. Les tetes ont des pentes differentes, certaines fortement penalisees par la distance (attention locale) et d’autres faiblement (attention globale).

L’avantage d’ALiBi est une generalisation exceptionnelle sur des longueurs superieures a celles d’entrainement, sans aucune modification des hyperparametres. Un modele entraine sur 2K tokens peut fonctionner sur 8K tokens sans degradation significative. Cependant, pour des extensions extremes (100K+ tokens), ALiBi seul ne suffit generalement pas.

ALiBi est utilise par certains modeles comme BLOOM et MPT. Cependant, RoPE reste dominant dans les LLMs les plus recents, en partie parce que la communaute a developpe des techniques d’extension de RoPE tres efficaces.

Encodage positionnel relatif

Les methodes d’encodage relatif ne se preoccupent pas de la position absolue de chaque token, mais de la distance relative entre paires de tokens. T5 (Google) utilise des biais d’attention appris qui dependent de la distance relative, discretisee en buckets logarithmiques. Cela generalise mieux que les positions absolues sur des longueurs variables.

Toutes les methodes modernes (RoPE, ALiBi, T5 relative PE) sont fondamentalement des encodages relatifs : leur contribution a l’attention ne depend que de la distance entre tokens, pas de leur position absolue. C’est un consensus de la recherche : la position relative est plus utile que la position absolue pour la comprehension du langage.

Impact sur la fenetre de contexte

Le choix du positional encoding determine directement la capacite du modele a traiter de longues sequences. Les modeles avec des positions apprises (BERT, GPT-2) sont rigidement limites a leur longueur d’entrainement. Les modeles avec RoPE peuvent etre etendus via des techniques de scaling. Les modeles avec ALiBi generalisent naturellement mais avec des limites.

En 2026, les fenetres de contexte atteignent 1M tokens pour Claude et Gemini. Ces extensions massives reposent sur des combinaisons de techniques : RoPE avec facteurs d’extension, entrainement progressif sur des longueurs croissantes, et optimisations d’inference comme Ring Attention pour distribuer le calcul d’attention sur plusieurs GPUs.

Astuce Polydesk Si vous faites du fine-tuning d’un LLM et que vous avez besoin de traiter des sequences plus longues que celles du modele original, cherchez une version du modele avec RoPE etendu (souvent note « RoPE scaled » ou « YaRN »). Cela evite d’avoir a re-entrainer completement le modele sur de longues sequences.

Positional encoding en vision

Les Vision Transformers (ViT) utilisent egalement des encodages positionnels pour les patches d’images. L’encodage peut etre 1D (les patches sont linearises et recoivent des positions sequentielles), 2D (les patches recoivent des coordonnees (x, y) encodees separement) ou appris. Les architectures recentes comme ViT-22B et les DiT (Diffusion Transformers) utilisent souvent des positions 2D apprises ou des embeddings sinusoidaux 2D.

Dans les modeles de generation video (Sora, Veo), l’encodage positionnel doit capturer trois dimensions : position spatiale (x, y) et position temporelle (frame). Des encodages 3D combinent des embeddings spatiaux et temporels.


Questions frequentes

Que se passe-t-il sans positional encoding ?

Sans positional encoding, un Transformer traite la sequence comme un ensemble non ordonne. « Le chat mange le poisson » et « Le poisson mange le chat » seraient indistinguables. Le modele ne saurait pas quel mot vient avant ou apres un autre, rendant impossible la comprehension du langage.

Quel est le meilleur encodage positionnel en 2026 ?

RoPE (Rotary Position Embedding) est le standard dominant pour les LLMs. Il est utilise par Llama 3, Mistral, Qwen, DeepSeek et la majorite des modeles recents. Il offre un bon compromis entre qualite, generalisation en longueur et extensibilite.

Quelle est la difference entre encodage positionnel absolu et relatif ?

L’encodage absolu assigne un vecteur fixe a chaque position (1, 2, 3…). L’encodage relatif encode la distance entre paires de tokens. Les methodes modernes (RoPE, ALiBi) sont relatives : elles capturent que deux tokens sont separes de N positions, independamment de leur position absolue. Cela generalise mieux a des longueurs variables.

Comment RoPE fonctionne-t-il ?

RoPE encode la position comme une rotation dans l’espace vectoriel. Chaque paire de dimensions est tournee d’un angle proportionnel a la position. Quand le produit scalaire QK^T est calcule, les rotations interagissent de sorte que le resultat ne depend que de la distance relative entre les deux positions, pas de leurs positions absolues.

Le positional encoding limite-t-il la fenetre de contexte ?

Oui, c’est l’un des facteurs limitants. Les positions apprises sont rigidement limitees. RoPE peut etre etendu via des techniques de scaling (YaRN, NTK-aware). ALiBi generalise naturellement mais avec des limites. L’extension des fenetres de contexte a 1M+ tokens en 2026 repose sur ces techniques d’extension combinee a des optimisations d’inference.

Polydesk.ai — Footer