Fenêtre de contexte

Dans le domaine de l'intelligence artificielle générative, la fenêtre de contexte ou fenêtre contextuelle d'un modèle de langage, qu'il soit un grand modèle de langage (LLM ou large language model) ou un petit modèle de langage (SLM ou small language model), est la quantité de texte que ce modèle peut traiter en une fois pour réaliser des tâches de traitement automatique du langage naturel (NLP) ou de génération de langage naturel (NLG). Cette quantité est souvent mesurée en jetons ou tokens, c'est-à-dire des mots, des morceaux de mots ou des caractères. La taille de la fenêtre de contexte influe sur les performances et les capacités des modèles de langage, qui sont des réseaux neuronaux profonds basés sur l'architecture des transformeurs[1].

Définition et fonctionnement

Un modèle de langage est un modèle qui apprend à prédire le texte suivant à partir du texte précédent, en utilisant un mécanisme d'attention qui lui permet de se focaliser sur les parties les plus pertinentes du texte. Le modèle de langage est entraîné sur de grandes quantités de données textuelles, provenant de sources diverses comme le web, les livres, les articles, etc. Le modèle de langage peut ensuite être adapté à des tâches spécifiques, comme la traduction, la génération de texte, la compréhension de texte, etc., en utilisant une technique appelée réglage fin (ou fine tuning).

La fenêtre de contexte d'un modèle de langage est la longueur maximale du texte que le modèle peut prendre en entrée pour faire ses prédictions. Cette longueur est limitée par la capacité de mémoire et de calcul du modèle, qui augmente de façon quadratique avec le nombre de tokens. Par exemple, le modèle GPT-3 a une fenêtre de contexte de 2 048 tokens, ce qui correspond à environ 1 000 mots[2]. En revanche, le LLM Claude 2.1 a une fenêtre de contexte de 200 000 tokens[3], soit environ 150 000 mots ou plus de 500 pages de texte. La fenêtre de contexte détermine la capacité du modèle à capturer les relations à longue distance entre les mots, les phrases ou les paragraphes, ce qui est important pour la cohérence et la pertinence du texte généré ou analysé[4].

Enjeux et perspectives

La fenêtre de contexte des modèles de langage pose plusieurs enjeux, tant sur le plan technique que sur le plan éthique. Sur le plan technique, il existe des méthodes pour augmenter la fenêtre de contexte sans augmenter le coût de calcul, comme l'utilisation de la mémoire virtuelle, qui permet au modèle d'accéder à des informations stockées sur un disque, ou l'utilisation de la récursivité, qui permet au modèle de traiter le texte par morceaux successifs[1]. Ces méthodes visent à améliorer la capacité des modèles de langage à gérer des textes longs et complexes, comme des articles, des livres, des dialogues, etc.

Sur le plan éthique, la fenêtre de contexte des modèles de langage pose la question de la fiabilité et de la responsabilité des modèles. En effet, les LLM peuvent produire ou reproduire des informations fausses, biaisées ou toxiques, en fonction des données sur lesquelles ils sont entraînés. Il est donc nécessaire de vérifier la qualité et la provenance des sources utilisées par les modèles, ainsi que de contrôler la pertinence et la cohérence des résultats produits par les modèles. Il est également nécessaire de sensibiliser les utilisateurs des modèles de langage aux limites et aux risques de ces technologies, et de leur fournir des moyens de les utiliser de manière éthique et responsable.

Taille des fenêtres de contexte de différents modèles de langage

Le tableau ci-dessous indique pour différents modèles de langage le nombre de paramètres et la taille de la fenêtre de contextes en tokens.

Firmes détentrices, nombres de paramètres et tailles de fenêtres de contexte de différents modèles de langage
Modèles de langage Firmes détentrices Nombres de paramètres Tailles de fenêtres de contexte en tokens
Turing NLG Microsoft 17 milliards 512
Orca 2-7b Microsoft 7 milliards 1024
Orca 2-17b Microsoft 17 milliards 2048
Gopher DeepMind 1,3 milliard 2 048
GPT-3 OpenAI 175 milliards 2 048
GPT-3.5 OpenAI 175 milliards 2 048
GPT-3.5 turbo OpenAI 175 milliards 16 385
GPT-4 OpenAI 1,76 trillion (*) 32 768
GPT-4 turbo OpenAI 1,76 trillion (*) 131 072
Llama Meta 70 milliards 2 048
Llama 2 Meta 70 milliards 4 096
Mistral 7B Mistral AI 7 milliards 32 768
Mixtral 8x7B Mistral AI 45 milliards 32 768
BERT (Base) Google 110 millions 512
BERT (Large) Google 335 millions 512
LaMDA Google 540 milliards 2 048
PaLM Google 540 milliards 100 000
PaLM 2 Google 300 milliards 100 000
Claude Anthropic 13 milliards 100 000
Claude 2 Anthropic 540 milliards 100 000
Claude 2.1 Anthropic 540 milliards 200 000
BLOOM Hugging Face 176 milliards 2048
Starling-7B Starling 7 milliards 2048
Tulu Tulu 7 milliards 2048
Openchat-3.5 Openchat 7 milliards 2048
Zephyr-7b Zephyr 7 milliards 2048
Neural-chat-7b Neural-chat 7 milliards 2048

(* = estimation)

Notes et références

  1. a et b « Comprendre les LLM (Large Language Models) : tout savoir sur les Grands Modèles de Langage - GPTFrance », sur gptfrance.ai, (consulté le ).
  2. Raphael Kassel, « Large Language Models (LLM) : Tout ce qu'il faut savoir », sur Formation Data Science | DataScientest.com, (consulté le )
  3. (en) Anthropic, « Introducing Claude 2.1 », sur ANTHROPIC, (consulté le )
  4. Bastien L, « OpenAI dévoile GPT-4 Turbo : nouveau bond de puissance de l’IA, énorme upgrade pour ChatGPT », sur LEBIGDATA.FR, (consulté le ).