Analytics Legends La plateforme de connaissance SAP Analytics
Fiche concept

Encodage Positionnel

Encodage Positionnel — illustration de section Analytics Legends pour la base de connaissances SAP Analytics (concepts, études, Academy)

À jour au 2026-07-24T14:00:00Z

Qu'est-ce que Encodage Positionnel ?

RoPE encode directement la position relative dans le produit scalaire d'attention, ce qui fait de θ_base à lui seul — 10 000 dans le Transformer original vs 500 000 chez Llama 3.3 — le paramètre unique qui sépare une cohérence à 4K d'une cohérence à 128K.

De quoi il s'agit

L'encodage positionnel est le mécanisme qui indique à un transformeur où se situe chaque token dans une séquence, et sans lui le modèle n'a aucun moyen de distinguer « le client a escaladé après la facture » de « la facture a escaladé après le client » — le calcul d'attention lui-même est une opération d'ensemble, aveugle à l'ordre à moins que cet ordre ne soit injecté d'une autre manière. Cela compte directement pour tout ce qui est construit au-dessus d'un grand modèle de langage dans un flux de travail adjacent à SAP : une chaîne de raisonnement Joule qui doit suivre le fait qu'une condition de paiement s'applique après un avenant de contrat, et non avant, dépend entièrement du bon fonctionnement du schéma d'encodage positionnel aux longueurs de contexte réellement utilisées par le déploiement.

Pourquoi c'est important

  • Sans encodage positionnel, l'attention est invariante par permutation — « le CA T2 a baissé de 15 % » et « le CA a baissé de 15 % T2 » seraient indiscernables dans une chaîne de raisonnement Joule, un risque d'entreprise concret.
  • Les encodages sinusoïdal et absolu appris échouent tous deux à généraliser au-delà de la longueur d'entraînement — les écartant de tout déploiement d'entreprise à long contexte.
  • ALiBi échange un surcoût d'inférence quasi nul et une généralisation robuste en longueur contre ~1-2 % de dégradation MMLU face à RoPE à l'échelle 7B — un arbitrage réel et chiffré à peser.

Points clés

  • RoPE encode la position relative dans le produit scalaire Q·Kᵀ — le modèle voit la position i porter attention à la position j via leur différence angulaire, et non via des indices absolus. C'est pourquoi les modèles RoPE généralisent à des séquences plus longues : ils n'apprennent jamais de tables de correspondance de position absolue.
  • θ_base contrôle la longueur de contexte effective : θ=10,000 (Llama 1/2, original) → effectif ~4K ; θ=500,000 (Llama 3.3) → effectif 128K. Toujours confirmer le θ_base avant d'accepter la longueur de contexte annoncée par un éditeur — c'est la vérité terrain, pas le chiffre marketing.
  • ALiBi ajoute un biais linéaire négatif fixe par tête d'attention, mis à l'échelle par une suite géométrique de pentes — aucun paramètre, aucune surcharge mémoire, généralise à des longueurs arbitraires. La pénalité MMLU de ~1–2% à l'échelle 7B en fait le bon choix quand la mémoire est la contrainte déterminante ou quand la longueur des documents est réellement non bornée.
  • YaRN réalise l'extension de contexte sans réentraînement complet via une interpolation NTK-aware : il réajuste les composantes de fréquence de RoPE pour que le modèle perçoive la séquence étendue comme une version compressée de la distribution d'entraînement. Llama 3.1 étendu de 128K→1M tokens avec une hausse de perplexité <5%.
  • Les encodages absolus sinusoïdaux et appris échouent tous deux à généraliser au-delà de la longueur d'entraînement — ils constituent la référence de « Attention Is All You Need » (Vaswani 2017) et ne devraient être choisis pour aucun déploiement d'entreprise SAP ciblant des documents plus longs que le maximum d'entraînement.
  • Le standard de production en 2025–2026 est RoPE avec un θ_base élevé — tous les grands foundation models open source l'utilisent : Llama 3 (θ=500,000), Mistral (θ=1,000,000), Gemma 2 (θ=10,000 avec fenêtre glissante), Falcon 3 (RoPE). ALiBi est utilisé par MPT et les premiers dérivés de BLOOM.
  • Pour le fine-tuning d'agents personnalisés SAP BDC : si le modèle de base utilise RoPE et que le dataset de fine-tuning contient des séquences plus longues que le contexte d'entraînement du modèle de base, appliquer YaRN avant le fine-tuning — un fine-tuning sur des séquences hors plage sans YaRN dégrade la cohérence positionnelle sur toute la longueur.
  • La conséquence pratique de « lost in the middle » (C155) interagit avec l'encodage positionnel : même avec un modèle RoPE correctement configuré à 128K, les éléments situés au milieu reçoivent moins d'attention. La structuration du prompt consciente de la position (contenu critique aux bords) est une mitigation complémentaire qui ne nécessite pas de changer le schéma d'encodage positionnel.
  • L'attention multi-tête avec RoPE applique une fréquence de rotation différente à chaque paire de dimensions de chaque tête — les paires de dimension inférieure tournent plus vite (fréquence plus élevée, capture les dépendances à courte portée) ; les paires de dimension supérieure tournent lentement (fréquence plus basse, capture les dépendances à longue portée). C'est pourquoi RoPE gère naturellement le contexte à la fois local et global au sein d'une même couche d'attention.
  • L'extension de contexte au moment de l'inférence via interpolation de position (l'approche plus simple avant YaRN) fait correspondre linéairement les positions au-delà de la longueur d'entraînement vers la plage d'entraînement — cela fonctionne pour des extensions modestes (2×) mais se dégrade pour des extensions plus importantes (8×) car les positions interpolées entrent en collision avec la sémantique de la plage d'entraînement, ce que l'approche NTK de YaRN évite.

Termes employés sur cette page

RoPE (Rotary Position Embedding)
Su et al. 2021 : applique une matrice de rotation dépendant de la position aux vecteurs Q et K de chaque tête d'attention, encodant la position relative directement dans le produit scalaire. Le standard de facto actuel pour les modèles transformer à contexte long.
θ_base
Paramètre de fréquence de base dans RoPE contrôlant la vitesse de rotation ; un θ_base plus élevé (500 000 dans Llama 3.3) permet un contexte effectif plus long avant que l'information de position ne s'enroule ou ne devienne ambiguë. La métrique de référence pour évaluer la longueur de contexte effective d'un modèle.
ALiBi (Attention with Linear Biases)
Press et al. 2022 : ajoute à chaque logit d'attention une pénalité linéaire négative fixe proportionnelle à la distance entre les tokens requête et clé, mise à l'échelle par tête selon une suite géométrique. Zéro paramètre, zéro surcoût mémoire, se généralise à des longueurs arbitraires — idéal pour les charges de streaming à longueur non bornée.
YaRN (Yet another RoPE extensioN)
Peng et al. 2023 : technique de fine-tuning NTK-aware qui remet à l'échelle les composantes de fréquence de RoPE pour étendre la fenêtre de contexte effective d'un modèle entraîné au-delà de sa longueur d'entraînement, avec moins de 5 % d'augmentation de la perplexité.
NTK-aware interpolation
La stratégie d'interpolation de YaRN qui remet à l'échelle les fréquences RoPE à l'aide de la théorie du Neural Tangent Kernel pour éviter l'artefact de collision de positions de l'interpolation linéaire naïve, permettant une extension de contexte fiable de 8 à 16×.
Length generalisation
La capacité d'un schéma d'encodage positionnel à maintenir une attention cohérente sur des séquences plus longues que celles vues à l'entraînement. RoPE à θ_base élevé et ALiBi se généralisent bien tous deux ; les encodages absolus sinusoïdaux et apprenables, non.
Sinusoidal encoding
Vaswani et al. 2017 : ajoute aux embeddings de tokens des ondes sinusoïdales fixes de différentes fréquences avant la première couche transformer. L'encodage de référence d'origine — mathématiquement élégant mais empiriquement incapable de se généraliser au-delà de la longueur d'entraînement. À ne pas utiliser pour les charges d'entreprise à contexte long.
Learnable absolute embedding
Une table de correspondance indexée par position, entraînée conjointement avec le modèle — chaque indice de position associe un vecteur d'embedding appris. Incapable de se généraliser aux positions au-delà du maximum d'entraînement, ces indices n'ayant jamais figuré dans la distribution d'entraînement.

Sources

  1. Su et al. 2021 — RoFormer: Enhanced Transformer with Rotary Position Embedding
  2. Press et al. 2022 — Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation (ALiBi)
  3. Peng et al. 2023 — YaRN: Efficient Context Window Extension of Large Language Models
  4. Vaswani et al. 2017 — Attention Is All You Need (sinusoidal encoding baseline)
  5. Meta AI — Llama 3 Model Card (rope_theta=500000, max 128K context)
  6. Liu et al. 2023 — Lost in the Middle: How Language Models Use Long Contexts
  7. Chen et al. 2023 — Extending Context Window of LLMs via Positional Interpolation
  8. SAP News Center — SAP Unveils the Autonomous Enterprise
  9. SAP News Center — Accelerate the Autonomous Enterprise with SAP Business Data Cloud
  10. SAP Datasphere — Help Portal
  11. SAP Datasphere — official product page
  12. SAP Analytics Cloud — Help Portal
  13. SAP Analytics Cloud — official product page
  14. SAP BW/4HANA — Help Portal
  15. SAP S/4HANA — Help Portal
  16. SAP News Center
  17. SAP Community
  18. SAP — industries overview
  19. SAP Business AI — official product page
  20. SAP Joule (work companion) — official product page
  21. SAP Generative AI — official product page
  22. Stanford HAI — AI Index Report
  23. Meta AI — Llama model research
  24. arXiv — preprint archive (cs.CL/cs.AI)
  25. HuggingFace — model hub
  26. Gartner — research & analyst site
  27. BARC — BI & Analytics research
  28. TDWI — data & analytics research
  29. DSAG — German-speaking SAP user group
  30. ASUG — Americas' SAP User Group
  31. Databricks — official site

Fiche complète réservée aux abonnés. Ce que la fiche complète ajoute : le cadre de décision complet · la comparaison SAP · Snowflake · Databricks · Fabric · les pièges courants et leur correctif · l'aide-mémoire · les schémas d'architecture · les blocs de code · les chiffres à citer.

Ouvrir dans l'application →