La fenêtre de contexte est la quantité maximale de texte, mesurée en tokens, qu'un modèle de langage peut prendre en compte à la fois, couvrant l'invite fournie par un utilisateur, les instructions système, les documents récupérés et la propre sortie du modèle jusqu'à présent. Elle fonctionne comme la mémoire de travail du modèle : les informations en dehors de la fenêtre de contexte sont invisibles pour le modèle au moment de la génération, à moins qu'elles ne soient explicitement fournies à nouveau.
Base technique
La taille de la fenêtre de contexte est limitée par le mécanisme d'attention au cœur de l'architecture Transformer (architecture), qui calcule les relations entre chaque paire de tokens dans l'entrée. Comme ce calcul évolue de manière quadratique avec la longueur de la séquence dans la formulation standard, doubler la fenêtre de contexte quadruple approximativement le calcul et la mémoire nécessaires pour la traiter, ce qui a historiquement rendu les longues fenêtres de contexte coûteuses à servir. Des techniques d'ingénierie ultérieures, notamment des variantes d'attention sparse et fenêtrée, la compression du cache de clés-valeurs et une gestion spécialisée de la mémoire, ont réduit ce coût au point de rendre des fenêtres beaucoup plus grandes commercialement pratiques.
Croissance au fil du temps
Les premiers modèles de langage basés sur transformer ne supportaient que quelques centaines à quelques milliers de tokens ; GPT-3, publié par OpenAI en 2020, supportait environ 2 048 tokens. Les fenêtres de contexte se sont élargies régulièrement au cours des années suivantes : GPT-4 lancé en 2023 avec des variantes supportant jusqu'à 32 000 tokens, et d'ici 2024, plusieurs laboratoires offraient des fenêtres de contexte de centaines de milliers de tokens. Gemini, de Google DeepMind, est devenu notable pour supporter des fenêtres de contexte d'un million de tokens ou plus, suffisamment pour traiter un roman entier, une grande base de code ou des heures de transcription vidéo dans une seule invite. Les modèles Claude (AI model family) d'Anthropic ont également élargi leur fenêtre initiale de 9 000 tokens à des longueurs de contexte de centaines de milliers de tokens lors des versions ultérieures.
Compromis et limites des longs contextes
Une fenêtre de contexte plus grande ne garantit pas que le modèle l'utilise bien. La recherche sur les performances en contexte long a constamment révélé un effet de « perdu au milieu », où les modèles sont plus précis pour récupérer des informations placées près du début ou de la fin d'un long contexte que des informations enfouies au milieu, même si rien dans l'architecture ne privilégie formellement ces positions. Les tests « aiguille dans une botte de foin » en contexte long, où un fait spécifique est caché dans un grand volume de texte non pertinent, sont devenus un moyen standard de mesurer si le contexte effectif d'un modèle correspond à son maximum annoncé. Servir de très longs contextes est également coûteux en calcul, de sorte que les systèmes sont souvent confrontés à un choix pratique entre bourrer une grande quantité de texte brut dans la fenêtre de contexte et utiliser la Retrieval-augmented generation pour sélectionner uniquement les passages les plus pertinents, échangeant la complétude contre le coût et, en principe, la précision.
Relation avec le raisonnement
La fenêtre de contexte contraint également des techniques comme le raisonnement en chaîne et les modèles de raisonnement, qui génèrent un texte intermédiaire substantiel avant de produire une réponse finale ; un modèle qui raisonne longuement consomme une partie de sa propre fenêtre de contexte avec ce raisonnement, ce qui est l'une des raisons pour lesquelles des fenêtres de contexte plus longues sont devenues plus importantes à mesure que ces techniques se sont généralisées.