P

Positional Encoding : Définition et Exemples

Le Positional Encoding est une technique utilisée dans les architectures Transformer pour injecter l'information sur la position de chaque token dans une séquence, permettant au modèle de comprendre l'ordre des mots.

Définition complète

Le Positional Encoding (encodage positionnel) est un mécanisme fondamental des architectures Transformer, introduit dans l'article "Attention Is All You Need" (2017). Contrairement aux réseaux récurrents (RNN) qui traitent les tokens séquentiellement et captent naturellement l'ordre, les Transformers traitent tous les tokens en parallèle via le mécanisme d'attention. Sans information positionnelle, le modèle ne ferait aucune différence entre "Le chat mange la souris" et "La souris mange le chat".

L'encodage positionnel original utilise des fonctions sinusoïdales de fréquences différentes pour générer un vecteur unique pour chaque position dans la séquence. Ces vecteurs sont additionnés aux embeddings des tokens avant d'entrer dans le Transformer. Les fonctions sinus et cosinus permettent au modèle de généraliser à des longueurs de séquence non vues pendant l'entraînement et de capter les relations de distance relative entre les tokens.

Depuis l'article fondateur, plusieurs variantes ont émergé. Les encodages positionnels appris (learned positional embeddings) laissent le modèle apprendre directement les vecteurs de position pendant l'entraînement, comme dans BERT et GPT. Plus récemment, RoPE (Rotary Position Embedding), utilisé dans LLaMA et d'autres modèles modernes, encode la position via des rotations dans l'espace vectoriel, offrant une meilleure extrapolation aux longues séquences.

Pour les utilisateurs de modèles de langage, le Positional Encoding a un impact direct : c'est lui qui détermine la fenêtre de contexte du modèle (4K, 128K, 1M tokens, etc.) et la capacité du modèle à maintenir la cohérence sur de longs textes. Les techniques d'extension de contexte comme ALiBi ou l'interpolation de position permettent d'étendre cette fenêtre au-delà de ce qui a été vu à l'entraînement.

Étymologie

Le terme combine "positional" (relatif à la position) et "encoding" (encodage, représentation numérique d'une information). Il a été formalisé par Vaswani et al. dans l'article fondateur des Transformers en 2017, bien que l'idée d'encoder la position dans des réseaux neuronaux existait déjà sous d'autres formes.

Exemples concrets

Comprendre les limites de contexte d'un modèle

Mon document fait 200 000 tokens. Quelles stratégies utiliser pour le traiter avec un modèle limité à 128K tokens de contexte, en tenant compte du fait que l'encodage positionnel peut perdre en précision aux extrémités de la fenêtre ?

Optimiser le placement d'information dans un long prompt

J'ai un prompt très long avec des instructions, du contexte et une question. Où placer les informations les plus critiques pour maximiser la qualité de la réponse, sachant que l'encodage positionnel influence l'attention portée aux différentes positions ?

Comparer des architectures de modèles

Compare les approches d'encodage positionnel de GPT-4, Claude et LLaMA 3. Comment leurs choix techniques (encodage appris, RoPE, etc.) influencent-ils leurs capacités sur les longs contextes ?

Usage pratique

En prompt engineering, comprendre le Positional Encoding aide à structurer ses prompts efficacement. Les informations placées en début et fin de prompt reçoivent généralement plus d'attention (effet "lost in the middle"). Pour les longs documents, il est conseillé de placer les instructions critiques au début du prompt et de rappeler les consignes clés juste avant la question finale.

Concepts liés

TransformerMécanisme d'attentionFenêtre de contexteEmbedding

FAQ

Pourquoi les Transformers ont-ils besoin de Positional Encoding alors que les RNN n'en ont pas besoin ?
Les RNN traitent les tokens un par un dans l'ordre, ce qui leur donne naturellement l'information de position. Les Transformers, eux, traitent tous les tokens simultanément grâce au mécanisme d'attention parallèle. Sans encodage positionnel, un Transformer traiterait "Jean aime Marie" et "Marie aime Jean" de façon identique, car l'ensemble des tokens est le même. Le Positional Encoding résout ce problème en ajoutant un signal de position à chaque token.
Le Positional Encoding affecte-t-il la qualité des réponses sur les longs prompts ?
Oui, directement. La méthode d'encodage positionnel détermine la capacité du modèle à maintenir la cohérence sur de longues séquences. Les recherches montrent un phénomène de "lost in the middle" : les modèles tendent à mieux retenir les informations en début et en fin de contexte. Les avancées récentes comme RoPE et ALiBi améliorent ce comportement, mais il reste judicieux de structurer ses prompts en conséquence.
Quelle est la différence entre encodage positionnel absolu et relatif ?
L'encodage absolu attribue un vecteur fixe à chaque position (position 1, position 2, etc.), comme dans le Transformer original ou GPT-2. L'encodage relatif capture plutôt la distance entre les tokens ("ce mot est à 3 positions de celui-ci"), comme dans T5 ou avec RoPE. L'encodage relatif généralise mieux aux séquences plus longues que celles vues à l'entraînement et capte plus naturellement les relations syntaxiques entre mots proches.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.