Getty Images

« Petit » lexique de l’IA générative : les grands modèles de langage

L’IA générative est une technologie simple à comprendre, mais complexe à maîtriser. Ce lexique a pour objectif de lister et définir rapidement les concepts importants qui régissent le fonctionnement des grands modèles de langage.

Cet article est extrait d'un de nos magazines. Téléchargez gratuitement ce numéro de : Applications & Données: Applications et données 22 – Premières pierres d’une infra souveraine pour l’IA européenne

L’IA générative envahit les annonces des éditeurs et provoque l’intérêt en bien ou en mal des organisations. Cependant, elle n’a rien de magique, constate Chris Howard, responsable de recherche chez Gartner.

Et c’est justement parce qu’elle est intrinsèquement technique qu’elle possède son propre vocabulaire.

Ce « petit » lexique répertorie plus particulièrement les termes associés aux grands modèles de langage, capables de générer du texte et du code. Ce récital n’a rien d’exhaustif, mais vise à lister et à définir rapidement les concepts et les techniques les plus utilisés dans ce domaine.

IA générative

L’intelligence artificielle générative correspond au développement de réseau de neurones profonds capables de générer du texte, du code, des images, du son, des vidéos ou encore des séquences de molécules. Si les premières expérimentations commencent au milieu des années 1950, l’émergence des réseaux de neurones antagonistes génératifs et des autoencodeurs variationnels (respectivement en 2014 et en 2013) donne naissance aux systèmes d’IA modernes capables de générer des contenus à partir de données de référence. Ce n’est qu’avec la popularité de l’application ChatGPT propulsée par un grand modèle de langage que l’expression IA générative s’est diffusée auprès du grand public et de l’industrie technologique.

Transformer

Le terme Transformer renvoie à une architecture de réseau de neurones mis au point en 2017 par des chercheurs de Google pour traiter et comprendre du langage naturel. Celle-ci se distingue de celles des réseaux de neurones récurrents ou convolutifs par le fait qu’elle s’appuie uniquement sur un mécanisme d’autoattention (self-attention). Cette couche d’attention traite simultanément toutes les parties d’un texte en entrée, lui permettant de gérer efficacement les dépendances entre les mots à longue distance dans le texte. C’est le socle commun de la majorité des grands modèles de langage.

Large Language Model (LLM)

Les grands modèles de langage ou Large Language Model (LLM) sont des réseaux de neurones entraînés sur de larges volumes de données extraits du Web. Ils sont formés à l’aide de techniques d’apprentissage non supervisé ou semi-supervisé et sont dotés de milliards de paramètres.

Leur architecture repose généralement sur un Transformer modifié ou amélioré, à l’aide de techniques comme l’approche Mixture of Experts ou, plus récemment, RoPE (Rotary Position Embeddings).

Les grands modèles les plus connus sont BERT, GPT-3, GPT-4, PaLM, BLOOM, Claude, Llama ou encore MegaTron-Turing.

L’expression Large Language Model est employée rétroactivement pour désigner les modèles NLP, tels BERT, T5, dont l’architecture s’appuie sur un Transformer. Avant 2019, la communauté scientifique utilisait les termes « Large Transformer Model » ou « Large Neural Networks ». L’expression « Large Language Model » a été popularisée après la publication de l’article consacré à GPT-2 par les chercheurs d’OpenAI, en février 2019.

Préentraînement

Le terme préentraînement correspond à la phase initiale de l’entraînement d’un modèle de deep learning. Dans le cas d’un grand modèle de langage, il s’agit de l’entraîner sur un corpus de textes, subdivisés en tokens, non labellisés. Ces données brutes sont généralement extraites à l’aide de techniques de crawling. Par exemple, OpenAI, Meta AI et même le Français LightOn exploitent les jeux de données fournies par le projet CommonCrawl. Lors de cette phase, les chercheurs adaptent l’architecture Transformer à leurs besoins, et appliquent des hyperparamètres pour définir une fonction de pertes et configurer les tâches à accomplir.

GPT (Generative Pre-trained Transformer)

Les Generative Pre-trained Transformer (GPT) renvoient à un type de grand modèle de langage. Eux aussi s’appuient sur une architecture Transformer, mais ont été préentraînés sur un large corpus de texte en vue de générer des séquences de texte cohérentes en fonction d’instructions fournies en entrée. Plus précisément, le rôle d’un modèle GPT est de prédire le prochain mot d’une phrase en fonction d’un contexte régi par les instructions et par les données utilisées lors de son préentraînement.

En juin 2018, les chercheurs d’OpenAI définissent officiellement leur technique de préentraînement en vue d’apprendre à un transformer à générer du texte comme du « generative pre-training ». Ce n’est que l’année suivante, en février 2019, au moment de la présentation du modèle GPT-2, que la startup entérine l’expression Generative Pre-trained Transformer, ou GPT. GPT-1 est désigné comme tel rétroactivement.

L’acronyme est rapidement repris par Eleuther AI, Salesforce, Cerebras, et bien d’autres après le gain en popularité induit par GPT-3 (2020) et ChatGPT (2022).

Token

Un token correspond à une série de caractères définit comme une unité élémentaire de texte ou de code, par exemple un mot, une syllabe (ou « sous-mot »), une ponctuation, exploitée par le modèle pour apprendre une tâche. Les tokens sont obtenus à l’aide d’un algorithme dont le rôle est de découper un texte en entités distinctes. Le résultat du processus, nommé la tokenisation, est fonction de l'algorithme consacré à cette tâche. La taille des jeux de données utilisées par les concepteurs de LLM est exprimée en tokens et non en volume de stockage ou en nombre de mots.

Prompt

Un prompt est un texte en entrée, une instruction, une requête ou une question envoyée au modèle pour obtenir une sortie pertinente. Ce prompt est exprimé en langage naturel dans la langue de l’utilisateur, si cette dernière est prise en charge par le réseau de neurones. Comme les LLM sont principalement entraînés à l’aide de documents rédigés en anglais, les textes générés dans d’autres langues peuvent comporter des défauts qu’un usager pourrait comparer à des erreurs de traduction. Un prompt en langage naturel peut être enrichi avec des embeddings.

Embedding

Un embedding est une représentation vectorielle d’un texte, d’un fichier audio ou d’une image dans un espace à n dimensions. Cette représentation vectorielle, une suite de nombres à virgule flottante généralement comprise entre -1 et 1 ou 0 et 1, est interprétée par une ou plusieurs couches d’un réseau de neurones profond.

Dans le domaine du NLP, la conversion d’un texte en vecteurs de nombres réels implique l’usage de la technique dite de Word Embedding ou plongement lexical en français. Plusieurs algorithmes dont GloVe, Word2vec ou encore embedding-ada d’OpenAI permettent d’effectuer cette conversion. Elle nécessite d'associer un vecteur à un ou des tokens correspondants. Il s’agit d’encoder la sémantique et la syntaxe de mots, de phrases ou d’expressions. Cette technique vise à comparer des mots, des expressions ou des séquences de texte. L’on utilise de préférence un algorithme de création d’embeddings suivant la tâche à effectuer : classification, clustering, recherche, recommandation, détection d’anomalies, mesure de diversité.

Ces tâches génériques d’analyse de texte s’avèrent essentielles pour différents cas d’usage : la traduction, l’analyse de sentiments ou encore la recherche sémantique.

Les embeddings sont utilisés lors de l’entraînement ou le fine-tuning des grands modèles de langage. Ils permettent également d’enrichir le contexte d’un prompt.

Fenêtre de contexte (Context Length)

La fenêtre de contexte – ou context length en anglais – correspond à la fois à la longueur maximale d’un texte soumis en entrée à un LLM et à sa capacité de mémoire d’une conversation. Cette mesure est exprimée en nombre de tokens. Par exemple, GPT-4 dispose d’une fenêtre de contexte de 32 000 tokens, environ 80 pages écrites en anglais.

Reinforcement Learning with Human Feedback (RLHF)

L’apprentissage par renforcement est une méthode automatique consistant à récompenser ou sanctionner un comportement d’un agent – un système autonome – placé dans un environnement où il expérimente la manière de réaliser une tâche. L’agent a pour mission de maximiser la récompense en fonction d’objectifs.

L’apprentissage par renforcement avec retour d’information humain (Reinforcement Learning with Human Feedback ou RLHF) consiste à remplacer les objectifs par des commentaires écrits par des annotateurs.

Dans le cas de l’IA générative, une fois que le LLM a été préentrainé, il s’agit de tester ses capacités à l’aide d’une série de prompts collectés pour l’occasion.

Cette série de questions est soumise au grand modèle de langage à entraîner. Les questions et les réponses sont rassemblées dans un jeu de données. Des annotateurs humains jugent de la pertinence des réponses et rangent les paires en conséquence. Les critères de tri peuvent être binaires (une paire peut être acceptée ou refusée), mais ils sont souvent multiples. L’on peut introduire un système de notes qui permet aux annotateurs de classer les réponses.

Les paires de questions-réponses et les annotations sont ensuite utilisées pour entraîner le modèle de récompense.

Le modèle de récompense, également appelé modèle de préférence, doit renvoyer une fonction scalaire qui représente numériquement la préférence humaine. Il est le plus souvent dérivé d’un Transformer préentraîné. Dans ce cas-là, il est configuré pour trier les réponses d’un LLM à des questions selon des indications et des résultats attendus par les annotateurs humains.

Ce procédé itératif consiste à aligner le comportement du LLM sur les préférences humaines. Il convient de répéter la génération de texte et la phase d’annotation pour affiner les résultats du modèle de récompense.

Le modèle de récompense est souvent associé à un autre algorithme nommé Proximal Policy Optimization (PPO), dont le rôle est d’optimiser les politiques du LLM, c’est-à-dire de contrôler la manière dont il génère des séquences de texte en fonction des récompenses. Celui-ci s’appuie sur les sorties produites par le LLM et les notes attribuées par le modèle de récompense pour ajuster les paramètres qui permettront de maximiser les récompenses, et donc la propension du modèle final à générer des réponses pertinentes et similaires.

Les sorties de ce système de récompense sont ensuite soumises au LLM pour affiner son entraînement.

De manière optionnelle, il est possible d’induire le comportement d’un LLM après son préentraînement et avant la phase de RLHF en lui fournissant des données annotées ou modifiées par des humains.

Supervised Fine-tuning (SFT ou réglage fin supervisé)

Le réglage fin vise à entraîner un modèle de langage préentraîné afin qu’il accomplisse une tâche spécifique. Si le préentraînement réclame d’exploiter des données brutes, le fine-tuning implique la production d’un jeu de données labellisé, c’est-à-dire validé par des humains.

Le réglage fin supervisé est une technique de deep learning, souvent exploitée lors de la formation des LLM. Dans le cas de l’entraînement d’un grand modèle de langage, les données correspondent à des paires de questions-réponses créées de toute pièce. Certains jeux de données sont disponibles sur le Web en open source. Par exemple, Databricks a demandé à ses employés de composer un ensemble de 15 000 paires questions-réponses. La plupart du temps, les chercheurs et les entreprises exploitent les services d’entreprises ou de plateformes spécialisées dans l’annotation.

Ces mêmes questions sont soumises au grand modèle de langage. Un algorithme de classification évalue la différence entre les prédictions du LLM et les réponses fournies par les humains. La fonction de perte qui en découle est utilisée pour ajuster les paramètres du LLM.

Comme décrit ci-dessus, cette technique peut être exploitée après la phase de préentrainement ou après le cycle RLHF. Toutefois, modifier l’ensemble des paramètres d’un modèle est gourmand en ressources informatiques et donc coûteux.

Parameter Efficient Fine-Tuning (PEFT)

Là encore, il s’agit d’affiner les résultats d’un LLM préentraîné pour qu’il accomplisse une ou des tâches spécifiques. Cela permet de « forcer » un modèle comme GPT-3.5 à répondre en prenant un certain ton ou à structurer ces réponses d’une certaine manière. Pour ne pas avoir à modifier l’ensemble des paramètres du LLM – et donc lancer une charge de travail qui mettrait plusieurs semaines à s’exécuter –, les chercheurs et les entreprises exploitent des techniques dites « Parameter Efficient Fine-Tuning » ou PEFT.

Dans ce cas-là, il s’agit de modifier un petit nombre de paramètres « supplémentaires », tandis que ceux du LLM sont « figés ». En clair, l’on ne modifie pas le grand modèle de langage, mais l’on crée une variante qui inclut de nouveaux paramètres ou des paramètres réajustés.

Il existe plusieurs techniques pour ce faire :

  • Prompt tuning
  • MultiTask Prompt Tuning
  • LoRa
  • AdaLoRa
  • Prefix Tuning
  • P-Tuning
  • IA3

Selon la documentation fournie par HugginFace, chacune de ces techniques permet une ou plusieurs tâches spécifiques. Par exemple, le prefix tuning est idéal pour conditionner la génération de texte, le prompt tuning est consacré à la modélisation causale (le fait de prédire une séquence de texte en fonction des tokens précédents), LoRa peut servir à la segmentation sémantique ou à la classification de tokens, tandis que P-Tuning permet de classer des séquences de texte.

Prompt Engineering

Le prompt engineering ou l’ingénierie de commande en français correspond à l’art de trouver la requête idéale pour qu’un modèle d’IA générative produise le contenu souhaité.

Il s’agit généralement d’une pratique manuelle consistant à gérer la séquence de texte qui induira le comportement souhaité de la part du modèle. Il est possible d’ajouter du contexte dans les prompts, soit sous forme d’instructions textuelles, soit sous forme d’embeddings.

Un prompt engineer est un ingénieur en machine learning capable de comprendre le fonctionnement sémantique et l’architecture technique d’un modèle de génération de textes ou d’images. Cette approche, plus approximative, est majoritairement exploitée à des fins de recherches avant d’automatiser une procédure à l’aide d’une technique PEFT.

Retrieval Augmented Generation (RAG)

Là où les techniques PEFT permettent de guider un LLM afin qu’il respecte une nomenclature, l’approche Retrieval Augmented Generation est exploitée pour retrouver une information dans un corpus de textes a priori inconnu du grand modèle de langage. Il s’agit de découper ce corpus en tokens, puis d’associer chaque token à un vecteur. Ces vecteurs sont stockés dans une « base de données vectorielle ». Toute base de données capable d’indexer des données semi-structurées pouvant être couplée au moteur Apache Lucene peut faire l’affaire. Il s’agit d’effectuer une recherche de similarité entre la requête de l’utilisateur et les documents représentés par les vecteurs, puis d’envoyer le prompt, la requête et les vecteurs obtenus au LLM pour qu’il génère une réponse pertinente. Cela permet de produire des données en sortie contenant des informations sourcées. C’est typiquement la manière dont Microsoft a implémenté le modèle d’OpenAI dans Bing.

Hallucinations

Un grand modèle de langage « hallucine » quand il produit une réponse incorrecte ou hors sujet par rapport à la demande de l’usager, mais qu’il la présente avec certitude. L’expression a d’abord été utilisée pour définir les erreurs des modèles de classification et de génération d’images. L’ensemble des techniques listées ci-dessus – SFT, RLHF, Prompt Engineering, RAG – vise également à réduire le taux d’hallucination d’un LLM. Pour autant, les éditeurs et les chercheurs n’ont pas réussi à empêcher ces problèmes qui posent un défi pour les entreprises.

Pour approfondir sur Intelligence Artificielle et Data Science