Grands modèles de langage
Grand modèle de langage (large language model, LLM) — est un type de modèle d'apprentissage automatique, implémenté à l'aide d'un réseau de neurones profond possédant un grand nombre de paramètres (généralement des milliards ou plus) et entraîné sur de vastes volumes de données textuelles. Dans ce contexte, « grand » se réfère à la fois à l'échelle des paramètres et au volume du corpus d'entraînement, qui dans les systèmes modernes atteint plusieurs pétaoctets et des billions de tokens. Les modèles LLM sont principalement entraînés par une méthode auto-supervisée ou semi-auto-supervisée (self-/semi-supervised), en prédisant le token suivant dans une séquence et en assimilant ainsi les régularités statistiques du langage. L'augmentation du nombre de paramètres, des données et des étapes de calcul conduit à une amélioration prévisible de la qualité, comme le confirment les scaling laws.
Depuis l'apparition de BERT (2017) et surtout de GPT-3 (2020), l'approche LLM est devenue dominante dans le traitement du langage naturel. Les modèles modernes (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3, etc.) peuvent, sans configuration spécifique, écrire des textes et du code de programmation, traduire, résumer, répondre à des questions et construire des chaînes de raisonnement ; les versions multimodales analysent les images, le son et la vidéo. L'adaptation à une tâche appliquée se fait par un ajustement fin ou par l'ingénierie des prompts (prompt engineering, in-context learning). Parallèlement à leurs avancées, les LLM héritent des biais et des imprécisions des données sources, sont sujets aux « hallucinations » et nécessitent des ressources de calcul considérables. C'est pourquoi la recherche se concentre aujourd'hui sur l'alignement du comportement, le filtrage des corpus et les architectures écoénergétiques.
Architecture
Les LLM modernes utilisent presque toujours l'architecture Transformer, un réseau doté d'un mécanisme d'auto-attention (self-attention). Le modèle Transformer a été proposé pour la première fois dans l'article « Attention is All You Need » par des développeurs de Google en 2017.
L'architecture Transformer est un schéma de réseau neuronal de base pour le traitement des séquences, comprenant deux modules logiques : un encodeur (qui code l'entrée) et un décodeur (qui génère la sortie). Une séquence est reçue en entrée, sa représentation vectorielle (en anglais, embedding) est créée, un vecteur d'encodage positionnel y est ajouté, après quoi l'ensemble des éléments, sans tenir compte de leur ordre dans la séquence, est transmis au composant d'encodage (traitement parallèle). Ensuite, le composant de décodage reçoit une partie de cette séquence et la sortie du composant d'encodage. Le résultat est une nouvelle séquence de sortie.
Le composant d'encodage du Transformer est constitué de plusieurs couches d'encodeurs identiques ; le composant de décodage est structuré de manière similaire. Le Transformer lui-même est une séquence de modèles d'attention qui transforment la séquence de vecteurs initiale en une nouvelle séquence où chaque élément tient compte du contexte des autres. L'encodeur forme des représentations latentes des données d'entrée, en préservant les informations sur les relations entre les éléments. Le décodeur, à partir de ces représentations latentes, crée une nouvelle séquence d'embeddings pour les tokens de sortie. Ensuite, à partir de ces embeddings, les éléments de sortie finaux sont générés à l'aide du modèle de langage.
Comme les Transformers ont été initialement développés pour des tâches telles que la traduction automatique, leur architecture comprend un encodeur (qui traite le texte d'entrée, par exemple la phrase source) et un décodeur (qui génère la sortie, par exemple la traduction). Cependant, de nombreux modèles de langage n'utilisent que la partie décodeur, fonctionnant en mode autorégressif.
Les Transformers sont utilisés dans trois configurations principales, chacune utilisant l'encodeur et le décodeur de manière différente et étant orientée vers un ensemble spécifique de tâches :
- Transformateurs de type encodeur (bidirectionnels) apprennent à restaurer des fragments de texte intentionnellement masqués, ce qui les rend bien adaptés aux tâches de « compréhension » — classification, extraction de faits, recherche sémantique.
- Transformateurs de type décodeur (autorégressifs) sont optimisés pour prédire le token suivant et sont utilisés là où une sortie en flux est nécessaire : agents conversationnels, autocomplétion de code, génération créative.
- Schémas complets « encodeur + décodeur » combinent les deux approches : l'encodeur construit une représentation de l'ensemble du texte d'entrée, et le décodeur, en s'appuyant sur celle-ci, génère le résultat de manière séquentielle. Cette configuration est la plus efficace pour la traduction automatique, la synthèse de texte et les systèmes de question-réponse.
Tokenisation
La tokenisation est une étape initiale cruciale du traitement de texte dans les grands modèles de langage. À ce stade, une chaîne de caractères continue est divisée en unités distinctes, les tokens. La tokenisation a pour but de transformer une séquence de caractères en une séquence d'éléments structurés, assurant le fonctionnement efficace du réseau neuronal.
D'un point de vue linguistique, la tokenisation pourrait, dans une certaine mesure, correspondre au processus d'identification des unités minimales du langage ayant un sens ou une fonction autonome, comme les mots, les morphèmes ou leurs fragments. Cependant, un token est souvent simplement une séquence de caractères statistiquement fréquente, il est donc important de ne pas surestimer la pertinence linguistique de tous les tokens. Selon le schéma choisi, un token peut être : un mot entier, un sous-mot, un caractère individuel, ou une balise de service (par exemple, les marqueurs de début et de fin de séquence).
La tokenisation permet de :
- limiter la taille du vocabulaire à des proportions gérables ;
- traiter correctement les mots rares et nouveaux ;
- assurer une correspondance univoque entre le texte et une séquence d'identifiants numériques.
Pour segmenter le texte, des algorithmes de sous-mots sont utilisés, les plus courants étant le Byte Pair Encoding (BPE), WordPiece et UnigramLM. Chacun de ces algorithmes construit un vocabulaire à partir des fragments les plus fréquents du corpus et l'utilise pour segmenter séquentiellement tout texte d'entrée.
Après l'étape de tokenisation, chaque unité de texte — le token — est transformée en une représentation numérique compréhensible par le réseau neuronal. Ce processus comprend plusieurs étapes successives :
- Conversion des tokens en identifiants : Chaque token est associé à un index numérique unique basé sur un vocabulaire de tokens préconstruit. Les tokens textuels sont remplacés par leurs identifiants numériques uniques (ID). Chaque ID est le numéro du token dans le vocabulaire, permettant au réseau de travailler avec des nombres plutôt qu'avec des mots.
- Conversion des identifiants en embeddings : Pour chaque identifiant de token, un vecteur de dimension fixe correspondant est extrait ou calculé — l' embedding. Cette représentation numérique multidimensionnelle remplace l'ID et contient déjà des informations sur la signification et les propriétés contextuelles du token. Tous les embeddings ont la même longueur pour faciliter le traitement.
- Ajout des encodages positionnels : Comme l'architecture Transformer ne tient pas compte de l' ordre des éléments par elle-même, des encodages positionnels (positional encodings) sont ajoutés aux embeddings pour fournir des informations sur la position du token dans la séquence. En d'autres termes, grâce à cela, le modèle « sait » quel token est le premier, le deuxième, le troisième, etc., dans la phrase.
- Formation des matrices d'entrée : Le résultat est une matrice de dimensions
[longueur de la séquence × dimension de l'embedding], qui sert de représentation initiale du texte et est transmise à l'entrée du réseau neuronal, en particulier aux blocs d'auto-attention (self-attention) du Transformer. Chaque ligne de cette matrice correspond à un token, et le vecteur qu'elle contient porte à la fois sa signification sémantique (embedding) et des informations sur sa position dans le texte (encodage positionnel).
Texte → Tokens → Identifiants → Embeddings + Encodages positionnels → Entrée du modèle
Mécanisme d'attention
Le mécanisme d'attention (attention mechanism) est un composant clé de l'architecture Transformer qui permet de prendre en compte les dépendances entre les tokens, indépendamment de leur distance dans la séquence. Une fois que le texte d'entrée est transformé en une séquence de vecteurs, cette séquence est transmise à l'élément central du Transformer : le bloc d'attention (attention block).
Le mécanisme d'attention est un moyen pour le réseau neuronal de déterminer sur quelles parties des données d'entrée il doit porter plus d'attention lors du traitement de chaque élément de la séquence. Grâce à lui, les vecteurs des différents fragments de texte peuvent interagir les uns avec les autres, s'enrichissant d'informations et mettant à jour leurs valeurs en tenant compte du contexte environnant. Cela permet au modèle de capturer efficacement les dépendances locales et à longue distance entre les tokens, ce qui améliore considérablement sa capacité à interpréter des structures textuelles complexes.
Dans le langage naturel, la signification d'un mot ou d'une expression n'est pas déterminée de manière isolée ; elle dépend du contexte, c'est-à-dire des autres mots et structures environnants. Dans les réseaux neuronaux, le texte est codé par des représentations vectorielles — les embeddings — qui reflètent numériquement les propriétés lexicales et syntaxiques des tokens. Sans un mécanisme d'attention directe (comme dans le Transformer), les informations contextuelles se perdraient sur de longues distances (comme dans les modèles plus simples) ou seraient transmises séquentiellement, ce qui est moins efficace pour capturer les liens à longue distance. Cependant, dans le langage naturel, la signification d'un mot ou d'une construction syntaxique est dynamique, et son interprétation doit s'adapter en fonction du contexte. Le mécanisme d'attention effectue la contextualisation des représentations vectorielles, ce qui signifie (ou simplement :) :
- Chaque token « évalue » son importance par rapport aux autres tokens de la phrase.
- Au cours de la mise à jour, les représentations vectorielles s'enrichissent mutuellement d'informations, reflétant les dépendances syntaxiques, les rôles sémantiques et le contexte pragmatique.
À la suite de cet échange d'informations, les vecteurs mis à jour commencent à coder non seulement la signification du token lui-même, mais aussi ses relations grammaticales (syntaxe), son rôle dans la situation décrite (sémantique) et son sens général dans le contexte (pragmatique).
Vecteurs d'entrée des tokens (avec positions) → Mécanisme d'attention (Interaction des vecteurs) → Vecteurs de tokens contextualisés (Vecteurs enrichis d'informations sur les liens avec d'autres tokens)
Implémentation technique du mécanisme d'attention
Le fonctionnement interne du mécanisme d'attention comprend plusieurs étapes de calcul et composants clés. Pour chaque vecteur d'entrée, trois vecteurs sont générés : Requête (Query), Clé (Key) et Valeur (Value). Sur la base de leur interaction, des poids d'attention sont calculés, qui sont ensuite utilisés pour obtenir des représentations vectorielles mises à jour et contextualisées. Une approche courante consiste à utiliser une architecture multi-têtes (Multi-Head Attention) pour un traitement parallèle de l'information.
Requête (Query), Clé (Key), Valeur (Value)
Le calcul du mécanisme d'attention repose sur la transformation de chaque vecteur d'entrée (qui est la somme de l'embedding du token et de son encodage positionnel) en trois représentations vectorielles distinctes : Requête (Query, Q), Clé (Key, K) et Valeur (Value, V).
Conceptuellement, ces trois vecteurs jouent les rôles suivants dans le mécanisme d'attention :
- Requête (Query) : Représente le vecteur du token actuel, qui initie le processus de recherche d'informations pertinentes dans la séquence. On peut le considérer comme une « question » ou une « sonde » utilisée pour évaluer l'importance des autres tokens par rapport au token actuel.
- Clé (Key) : Sert d'identifiant ou d'« étiquette » décrivant un aspect du contenu de chaque token. Le vecteur Requête (Q) du token actuel est comparé à tous les vecteurs Clés (K) de la séquence (y compris le sien) pour déterminer leur degré de correspondance ou de pertinence.
- Valeur (Value) : Contient l'information ou la représentation réelle associée à chaque token, qui sera transmise plus loin. Après le calcul des poids d'attention basés sur l'interaction des Requêtes et des Clés, ces poids sont appliqués aux vecteurs Valeurs pour former la représentation pondérée finale, qui constitue la sortie du mécanisme d'attention pour ce token.
Entraînement des grands modèles de langage
L'entraînement des LLM se déroule principalement en deux étapes :
- Pré-entraînement (Pretraining) : À ce stade, le modèle est entraîné sur de grands corpus de texte non étiquetés en utilisant l'apprentissage auto-supervisé (self-supervised learning). La tâche consiste à prédire le token suivant dans une séquence (autorégression) ou à restaurer des fragments masqués (apprentissage masqué). Le pré-entraînement permet au modèle d'assimiler de vastes régularités statistiques du langage, la grammaire, des faits sur le monde et des formes de raisonnement de base.
- Ajustement fin (Fine-tuning) : Après le pré-entraînement, le modèle est ré-entraîné sur des données spécialisées pour accomplir des tâches spécifiques, telles que la génération de réponses, la classification de textes ou l'exécution d'instructions. Les approches modernes incluent :
- L'ajustement fin sur des jeux de données étiquetés (supervised fine-tuning).
- L'apprentissage par renforcement à partir de retours humains (RLHF, reinforcement learning from human feedback) pour corriger le comportement du modèle en fonction de métriques cibles de qualité, de sécurité et d'utilité.
Problèmes et limitations
Malgré des progrès impressionnants, les grands modèles de langage (LLM) modernes présentent un certain nombre de problèmes et de limitations :
I. Limitations computationnelles et architecturales
- Coûts de calcul élevés : L'entraînement et l'exploitation des LLM nécessitent une puissance de calcul, du temps et de l'énergie considérables, ce qui entraîne des coûts économiques et écologiques élevés. De plus, la nature autorégressive de la génération (création séquentielle de tokens) limite la parallélisation et ralentit la vitesse d'inférence par rapport aux approches non autorégressives.
- Limitation de la longueur du contexte : L'architecture Transformer a une dépendance quadratique des coûts de calcul et des besoins en mémoire par rapport à la longueur de la séquence. Cela oblige à fixer une limite (fenêtre de contexte) sur la quantité de texte que le modèle peut traiter en une seule fois, entraînant la troncature de longs documents et la perte d'informations en dehors de la fenêtre.
II. Problèmes de fiabilité et de précision de la génération
- Hallucinations : La génération d'informations factuellement incorrectes mais qui semblent plausibles. Cela est dû à l'absence de compréhension réelle du monde par le modèle, à sa dépendance aux régularités statistiques dans les données et à son incapacité à vérifier les affirmations qu'il génère.
- Propagation des erreurs (Error Propagation) : Processus par lequel les erreurs commises aux premières étapes de la génération sont amplifiées et conduisent à une accumulation d'inexactitudes aux étapes suivantes, réduisant la qualité globale et la cohérence du texte.
- Compositionnalité limitée : Difficultés avec les tâches nécessitant un raisonnement logique en plusieurs étapes ou des calculs précis (par exemple, la multiplication de grands nombres, la résolution d'énigmes). La précision des modèles dans de telles tâches chute considérablement avec l'augmentation de la complexité en raison de la nature autorégressive de la génération.
- Répétitions : Tendance à répéter de manière excessive des mots ou des phrases, ce qui diminue l'informativité et la lisibilité du texte. Ceci est lié aux particularités de l'entraînement et des algorithmes de décodage (choix du token suivant).
- Malédiction de l'inversion (Reversal Curse) : Incapacité du modèle à généraliser automatiquement les connaissances dans le sens inverse : après avoir appris l'affirmation « A est B », le modèle est souvent incapable de déduire que « B est A ».
- Compromis créativité-précision : Nécessité de trouver un équilibre entre la génération de réponses variées et originales et le maintien de l'exactitude factuelle. L'amélioration d'un aspect a souvent un impact négatif sur l'autre ; par exemple, une créativité élevée peut être corrélée à une augmentation des hallucinations.
III. Problèmes d'interaction et de contrôle :
- Faible contrôlabilité : Difficulté à contrôler précisément le style, le ton, le contenu du texte généré ou à suivre des instructions complexes. La contrôlabilité dépend fortement de la qualité des instructions d'entrée (« prompts ») et des méthodes d'ajustement fin (fine-tuning).
- Sensibilité à la formulation : De légères modifications dans la requête d'entrée (prompt) peuvent entraîner des réponses très différentes, même si la sémantique de la requête est préservée. Cela rend difficile l'obtention de résultats stables et prévisibles.
IV. Aspects éthiques et sociaux :
- Problèmes de biais et d'équité : Les modèles peuvent reproduire et amplifier les stéréotypes sociaux, les préjugés ou la toxicité présents dans les données d'entraînement. Assurer l'équité et la sécurité des modèles est une tâche complexe.
- Problème de l'alignement (LLM Alignment) : Un problème plus général qui inclut le point précédent. Il s'agit de la tâche de s'assurer que le comportement du modèle est conforme aux valeurs, intentions et normes éthiques humaines. Cela inclut la lutte contre les biais, les hallucinations, la génération de contenu malveillant et l'amélioration de la contrôlabilité.
- Risques d'utilisation malveillante : Possibilité d'utiliser les LLM pour créer et diffuser massivement de la désinformation, du phishing, du spam, du code malveillant ou pour générer des textes de contrefaçon convaincants, ce qui menace la sécurité de l'information et personnelle, et sape la confiance au sein de la société.
Liens :
- « Большая языковая модель » // Wikipédia (Version russe)
- Large Language Model // Wikipedia (Version anglaise)
- Grand Modèle de Langage // Wikipédia (Version française)
- Sprachmodell // Wikipedia (Version allemande)
- Naveed H. et al. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023
Bibliographie
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
- Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
- OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
- Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.