Qu’est-ce qu’une fenêtre de contexte ?

Carver Apartments à Los Angeles

Auteurs

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Qu’est-ce qu’une fenêtre de contexte ?

La fenêtre de contexte (ou « longueur du contexte ») d’un grand modèle de langage (LLM) est la quantité de texte, exprimée en jetons, que le modèle peut examiner ou dont il peut « se souvenir » à la fois. Une fenêtre contextuelle plus grande permet à un modèle d’IA de traiter des entrées plus longues et d’intégrer une plus grande quantité d’informations dans chaque production.

La fenêtre de contexte d’un LLM peut être considérée comme l’équivalent de sa mémoire de travail. Elle détermine combien de temps une conversation peut durer avant que le LLM n’oublie les détails du début de l’échange. Elle détermine également la taille maximale des documents ou des échantillons de code que le LLM peut traiter en même temps. Lorsqu’un prompt, une conversation, un document ou une base de code dépasse la fenêtre de contexte d’un modèle d’intelligence artificielle, ces éléments doivent être tronqués ou résumés pour que le modèle puisse continuer sa tâche. 

D’une manière générale, l’augmentation de la taille de la fenêtre de contexte d’un LLM se traduit par une plus grande précision, un nombre réduit d’hallucinations, des réponses de modèles plus cohérentes, des conversations prolongées et une meilleure capacité d’analyse des séquences de données plus longues. Cependant, l’augmentation de la longueur d’une fenêtre de contexte ne se fait pas sans compromis : elle entraîne souvent des besoins accrus en puissance de calcul, et donc une augmentation des coûts, ainsi qu’une plus grande vulnérabilité potentielle face aux attaques par exemples contradictoires.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Fenêtres de contexte et tokenisation

 morun(e)l En termes concrets, la longueur du contexte d’un modèle de langage est mesurée non pas en mots, mais en jetons. Pour comprendre le fonctionnement des fenêtres de contexte en pratique, il est important de comprendre comment ces jetons fonctionnent.

Les LLM et les humains traitent le langage d’une manière fondamentalement différente. Alors que la plus petite unité d’information que nous utilisons pour représenter la langue est un caractère unique, comme une lettre, un chiffre ou un signe de ponctuation, la plus petite unité de langage utilisée par les modèles d’IA est un jeton. Pour entraîner un modèle à comprendre un langage, un numéro d’identification est attribué à chaque jeton. Ce sont ces numéros d’identification, plutôt que les mots ou les jetons eux-mêmes, qui sont utilisés pour entraîner le modèle. Cette tokenisation du langage réduit de manière significative la puissance de calcul nécessaire au traitement du texte à l’apprentissage qui en résulte.

La quantité de texte qu’un jeton peut représenter varie considérablement : un jeton peut représenter un seul caractère, une partie de mot (comme un suffixe ou un préfixe), un mot entier ou même une courte phrase de plusieurs mots. Considérez les différents rôles joués par la lettre « a » dans les exemples suivants :

« Jeff a conduit une voiture. » 

Ici, « un(e) » est un mot entier. Dans cette situation, il serait représenté par un jeton distinct.

« Jeff est un homme amoral. »

Ici, « un(e) » n’est pas un mot, mais son ajout à morun(e)l modifie considérablement le sens du mot. Amorun(e)l serait donc représenté par deux jetons distincts : un jeton pour un(e) et un autre pour morun(e)l.

« Jeff aime son chat. »

Ici, un(e) est simplement une lettre du mot « cun(e)T ». Il n’a aucune signification sémantique et n’aurait donc pas besoin d’être représenté par un jeton distinct.


Il n’existe pas de « taux d’échange » fixe entre mots et jetons. De même, différents modèles ou tokenizers (sous-ensembles modulaires d’un modèle plus vaste responsables de la tokenisation) pourraient tokeniser différemment un même passage écrit. Une tokenisation efficace peut augmenter la quantité de texte effective entrant dans les limites d’une fenêtre de contexte. Mais d’une manière générale, une estimation convenable serait d’environ 1,5 jeton par mot. L’espace Tokenizer Playground sur Hugging Face est un moyen facile de voir et d’examiner comment différents modèles tokenisent les entrées textuelles.

Les variations en termes de structure linguistique et de représentation dans les données d’entraînement peuvent engendrer une tokenisation plus efficace de certaines langues par rapport à d’autres. Par exemple, une étude réalisée en octobre 2024 s’est penchée sur un exemple de tokenisation de la même phrase en anglais et en télougou. Même si la traduction télougou comportait beaucoup moins de caractères que son équivalent anglais, elle a généré plus de 7 fois le nombre de jetons dans le contexte.

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Pourquoi les modèles ont-ils une longueur de contexte maximale ?

Bien que les fenêtres de contexte soient généralement associées aux LLM utilisés pour la synthèse, la génération de texte et d’autres tâches de traitement automatique du langage naturel, la longueur du contexte n’est pas une considération technique exclusive aux modèles de langage. La notion de fenêtre de contexte concerne tout modèle de machine learning basé sur une architecture transformatrice, autrement dit, la plupart des modèles d’IA générative modernes, et la quasi-totalité des LLM.

Les modèles de transformeurs utilisent un mécanisme d’auto-attention pour calculer les relations et les dépendances entre les différentes parties d’une entrée (comme les mots au début et à la fin d’un paragraphe). D’un point de vue mathématique, un mécanisme d’auto-attention calcule les vecteurs de poids pour chaque jeton d’une séquence de texte, où chaque poids représente la pertinence de ce jeton par rapport aux autres jetons de la séquence. Un LLM autorégressif consulte ces poids de manière itérative chaque fois qu’il génère le mot suivant dans sa sortie. La taille de la fenêtre de contexte détermine le nombre maximal de jetons auxquels le modèle peut « prêter attention » à la fois.

Il convient de noter que le texte de l’entrée réelle de l’utilisateur n’est souvent pas la seule chose qui occupe de l’espace dans la fenêtre de contexte d’un modèle. Dans de nombreux cas, comme avec les chatbots, les modèles intègrent également un « prompt système», souvent invisible pour l’utilisateur, qui conditionne leur comportement et régit d’autres aspects de la conversation. Les informations supplémentaires tirées de sources de données externes pour la génération augmentée de récupération (RAG) sont également stockées dans la fenêtre de contexte lors de l’inférence. Les caractères spéciaux, les sauts de ligne et autres caractéristiques de formatage consomment également une partie du contexte disponible.

Il convient également de noter que les modèles de langage ne sont pas les seuls réseaux neuronaux à utiliser des transformeurs. Par exemple, certains modèles de diffusion utilisés pour la génération d’images intègrent l’auto-attention dans leur architecture. Dans ce cas, le contexte pris en compte n’est pas celui des jetons représentant des mots (ou des parties de mots) dans un contenu écrit, mais celui des pixels d’une image. Dans un tel modèle, la longueur du contexte s’applique au nombre de pixels dont le modèle doit comprendre les relations. Sa fenêtre de contexte pourrait être dépassée par une image haute résolution contenant trop de pixels à traiter à la fois.
 

Fenêtres de contexte et ressources de calcul

Doter un modèle d’une grande fenêtre de contexte a un coût, au sens propre comme au figuré. Les exigences de calcul évoluent de manière quadratique en fonction de la longueur de la séquence : par exemple, si le nombre de jetons d’entrée double, le modèle aura besoin de 4 fois plus de puissance de traitement pour les gérer.

De même, l’augmentation de la longueur du contexte peut également ralentir les résultats. Chaque fois que le modèle prédit le jeton suivant d’une séquence de manière autorégressive, il calcule les relations entre ce jeton et chaque jeton précédent de la séquence. L’inférence peut être relativement rapide au début d’une séquence ou d’une conversation, mais ralentir progressivement avec l’augmentation de la longueur du contexte. Ce phénomène est problématique dans les cas d’utilisation nécessitant une inférence quasi instantanée en temps réel.

La longueur moyenne du contexte des modèles de langage a récemment progressé en partie grâce à l’utilisation de nouvelles techniques, permettant d’augmenter suffisamment la vitesse et l’efficacité de l’inférence pour compenser les compromis inhérents à une telle augmentation de manière adéquate. Grâce à ces techniques d’optimisation, même les petits LLM modernes open source peuvent offrir des fenêtres de contexte exponentiellement plus grandes que celles du modèle GPT-3.5 utilisé au lancement de ChatGPT par OpenAI fin 2022.

 

Défis liés aux longues fenêtres de contexte

Même lorsque des mesures adéquates sont prises pour compenser les compromis en termes d’exigences de calcul et de vitesse de traitement, l’extension de la limite de longueur du contexte d’un modèle introduit des défis et des complications supplémentaires.
 

Défis liés aux performances

Comme les humains, les LLM peuvent se laisser submerger par un trop-plein d’informations. Ils peuvent également se montrer paresseux et prendre des raccourcis cognitifs. Un article de 2023 a révélé que les LLM « ne faisaient pas une utilisation robuste des informations dans les contextes d’entrée longs ». Plus précisément, les auteurs ont observé que les modèles étaient plus performants lorsque les informations pertinentes se situaient vers le début ou la fin du contexte d’entrée. Ils ont également observé que les performances se dégradaient lorsque le modèle devait examiner attentivement les informations se trouvant au milieu de longs contextes1.

Des méthodes novatrices sont utilisées pour optimiser l’efficacité du mécanisme d’auto-attention du transformeur, comme les plongements positionnels rotatifs (RoPE). Ces méthodes visent à modifier l’encodage positionnel des jetons dans les vecteurs d’attention. Leur adoption généralisée a permis d’améliorer les performances et la rapidité des tâches impliquant des jetons situés à de longues distances les uns des autres.

Les recherches en cours ont produit un certain nombre de mesures de référence conçues pour évaluer la capacité d’un LLM à trouver et à utiliser efficacement des informations pertinentes dans de grands passages, comme les benchmarks Needle-in-a-Haystack (NIAH), RULER et LongBench.


Défis liés à la sécurité et à la cybersécurité

Une fenêtre de contexte plus longue peut également avoir l’effet involontaire d’exposer une surface d’attaque plus étendue pour les prompts adverses. Des recherches récentes menées par Anthropic ont démontré que l’augmentation de la longueur du contexte d’un modèle augmentait également sa vulnérabilité au « jailbreak » et (par conséquent) la probabilité qu’il produise des réponses nuisibles2.

 

Tailles de la fenêtre de contexte des LLM les plus connus

La fenêtre de contexte moyenne des grands modèles de langage a augmenté de façon exponentielle depuis la sortie des premiers modèles GPT (Generative Pretrained Transformers). À ce jour, toutes les générations de LLM qui se sont succédé ont progressivement intégré des contextes nettement plus longs. À l’heure actuelle, la plus grande fenêtre de contexte proposée par un modèle commercial de premier plan compte plus d’un million de jetons. Reste à savoir si les fenêtres de contexte vont continuer à s’étendre ou si nous approchons déjà de leurs limites en termes de nécessité pratique.  

À titre de référence, voici les longueurs de contexte proposées par certains modèles et certaines familles de modèles connus en octobre 2024.

Série de modèles GPT d’OpenAI

  • Le modèle GPT-3.5, à l’origine du lancement de ChatGPT, avait une longueur de contexte maximale de 4 096 jetons, étendue par la suite à 8 192 jetons avec GPT-3.5-Turbo.
  • Au lancement, la longueur du contexte de GPT-4 était toujours de 8 192 jetons. Même si la fenêtre de contexte de GPT-4 et de GPT-4-Turbo a depuis été portée à 128 000 jetons, son maximum de jetons de sortie reste plafonné à 4 096.
  • GPT-4o et GPT-4o mini ont tous deux une fenêtre de contexte de 128 000 jetons, avec des sorties plafonnées à 16 384 jetons.

La nouvelle famille de modèles o1 propose également une fenêtre de contexte de 128 000 jetons, mais elle offre une plus grande longueur de contexte en sortie.

Modèles Llama de Meta

Les modèles Llama d’origine présentaient une longueur de contexte maximale de 2 048 jetons, une longueur doublée à 4 096 jetons pour Llama 2. Lors de leur lancement en avril 2024, les modèles Llama 3 offraient une fenêtre de contexte d’environ 8 000 jetons.

La longueur du contexte de Llama a été considérablement augmentée avec le lancement des modèles Llama 3.1, offrant des fenêtres de contexte longues de 128 000 jetons. Les modèles Llama 3.2 présentent également une longueur de contexte maximale de 128 000 jetons.

Mistral Large 2

Mistral Large 2, le modèle phare proposé par Mistral AI, dispose d’une fenêtre de contexte de 128 000 jetons.

Modèles Google Gemini

La série de modèles Gemini de Google offre ce qui est actuellement la plus grande fenêtre contextuelle parmi les modèles de langage commerciaux. Gemini 1.5 Pro, le modèle phare de Google, offre une durée de contexte pouvant atteindre 2 millions de jetons. D’autres modèles Gemini 1.5, comme Gemini 1.5 Flash, disposent d’une fenêtre de contexte d’un million de jetons.

Modèles Claude d’Anthropic

Les derniers modèles Claude d’Anthropic, comme Claude 3.5 Sonnet, offrent une fenêtre de contexte standard d’environ 200 000 jetons. Début septembre 2024, Anthropic a annoncé que les modèles accessibles via son nouveau forfait « Claude Enterprise » offriraient une fenêtre de contexte étendue de 500 000 jetons.

Notes de bas de page

1. « Lost in the Middle: How Language Models Use Long Contexts », arXiv, 6 juillet 2023
2.
« Many-shot jailbreaking », Anthropic, 2 avril 2024

Solutions connexes
IBM watsonx Orchestrate

Concevez facilement des assistants et des agents IA évolutifs, automatisez les tâches répétitives et simplifiez les processus complexes avec IBM watsonx Orchestrate.

Découvrir watsonx Orchestrate
Outils et API de traitement automatique du langage naturel

Accélérez la valeur métier de l’intelligence artificielle grâce à un portefeuille puissant et flexible de bibliothèques, de services et d’applications.

Découvrir les solutions NLP
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Concevez facilement des assistants et des agents IA évolutifs, automatisez les tâches répétitives et simplifiez les processus complexes avec IBM watsonx Orchestrate.

Découvrir watsonx Orchestrate Découvrir les solutions NLP