Fenêtre de contexte
Une fenêtre de contexte correspond à la quantité maximale de texte (mesurée en tokens) qu’un modèle de langage peut prendre en compte simultanément. Elle englobe tout ce sur quoi le modèle travaille au sein d’une même conversation : les instructions système, l’invite de l’utilisateur, l’historique de la conversation, les documents récupérés et la réponse que le modèle est en train de générer. Dès que le texte combiné dépasse la fenêtre, le modèle ne peut plus « voir » le surplus ; le contenu le plus ancien ou le moins pertinent doit donc être supprimé, résumé ou récupéré à la demande.
En bref : la fenêtre de contexte constitue la mémoire de travail du modèle pour une seule conversation.
Comment fonctionne une fenêtre de contexte
Un modèle ne lit pas directement des caractères ou des mots ; il lit des tokens, et la fenêtre représente un budget de tokens fixe pour l’ensemble de l’échange :
- Tokenisation : le texte d’entrée est découpé en tokens (unités de sous-mots), et la fenêtre est comptée en tokens plutôt qu’en mots ou en caractères.
- Budget partagé : la fenêtre est répartie entre l’invite système, l’historique de la conversation, le contexte récupéré et la sortie générée ; ainsi, plus de place accordée à l’un laisse moins d’espace aux autres.
- Schéma d’attention : dans les transformeurs standard à attention complète, les tokens de la fenêtre active peuvent porter leur attention largement sur l’ensemble de cette fenêtre. Certaines architectures à long contexte utilisent plutôt des schémas d’attention épars, locaux ou à fenêtre glissante ; l’attention n’est donc pas toujours illimitée de tous vers tous sur l’ensemble du contexte.
- Gestion du surplus : lorsque le contenu dépasserait la limite, l’application doit tronquer, résumer ou récupérer sélectivement afin que le contenu le plus pertinent tienne dans la fenêtre.
- Effets de position : les modèles exploitent souvent de manière plus fiable les informations situées au début et à la fin d’une longue fenêtre que le contenu enfoui au milieu, un phénomène parfois appelé perte au milieu.
Le point essentiel est qu’une fenêtre de contexte plus large permet à un modèle d’intégrer davantage d’éléments à la fois, mais elle ne garantit pas que le modèle exploite chaque partie de manière aussi efficace : la pertinence et le positionnement restent déterminants.
Fenêtre de contexte, mémoire et récupération
- La mémoire à long terme persiste d’une session à l’autre et réside en dehors du modèle ; la fenêtre de contexte ne contient que ce qui est présent dans la conversation en cours.
- Les connaissances issues de l’entraînement sont intégrées aux poids du modèle et toujours disponibles ; la fenêtre de contexte est remplie à nouveau au moment de la requête et c’est là que les informations nouvelles ou privées doivent être placées.
- La récupération (RAG) sélectionne uniquement les passages les plus pertinents pour tenir dans la fenêtre de contexte ; la fenêtre de contexte est l’espace limité que ces passages se disputent.
Là où la fenêtre de contexte compte
- Longues conversations : à mesure qu’une discussion s’allonge, les éléments les plus anciens de la conversation finissent par sortir de la fenêtre de contexte, à moins d’être résumés ou stockés ; c’est pourquoi les assistants peuvent sembler « oublier » des détails antérieurs.
- RAG et questions-réponses sur documents : les fragments récupérés doivent tenir aux côtés de l’invite et de la réponse ; la taille des fragments et leur nombre sont donc tous deux limités par la fenêtre de contexte.
- Tâches sur documents longs : résumer ou analyser des fichiers volumineux dépend soit d’une fenêtre de contexte suffisamment large, soit d’une stratégie consistant à fournir le document par parties.
- Coût et latence : un plus grand nombre de tokens dans la fenêtre de contexte entraîne généralement un coût plus élevé et des réponses plus lentes ; la remplir efficacement importe donc autant que sa taille brute.
La fenêtre de contexte est un budget à gérer, et non un simple chiffre à maximiser : l’objectif est d’y placer les bonnes informations, plutôt que toutes les informations.
Termes associés
Token, tokenisation, génération augmentée par récupération (RAG), fractionnement, invite, grand modèle de langage (LLM), mémoire à long terme, perte au milieu, coût d’inférence.