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
FAQ
Pourquoi les Transformers ont-ils besoin de Positional Encoding alors que les RNN n'en ont pas besoin ?
Le Positional Encoding affecte-t-il la qualité des réponses sur les longs prompts ?
Quelle est la différence entre encodage positionnel absolu et relatif ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.