Un grand modèle de langage., grand modèle linguistique Accuracy of Information and References Using ChatGPT-3 for Retrieval of Clinical Radiological Information, journal de l'association canadienne de radiologistes., grand modèle de langue., modèle de langage de grande taille ou encore modèle massif de langage. (abrégé LLM de l'anglais ) est un modèle de langage possédant un nombre élevé de paramètres.

Ce type de modèle repose sur des réseaux de neurones profonds entraînés par apprentissage auto-supervisé à partir d'une grande quantité de textes.. Les grands modèles de langage sont apparus vers 2017 et ont été utilisés pour la mise en œuvre d'agents conversationnels. Ils constituent également le socle technique des moteurs de recherche génératifs, qui synthétisent directement une réponse en langage naturel à partir de multiples sources plutôt que d'afficher une liste de liens..

Au lieu d'être entraînés pour une tâche spécifique comme l'analyse des sentiments, la reconnaissance d'entités nommées ou le raisonnement mathématique, ils peuvent accomplir un large éventail de tâches. Ils sont d'abord « pré-entraînés » à prédire une suite probable pour une entrée donnée.. Cela leur permet d'acquérir une grande quantité de connaissances. La qualité du contenu généré semble augmenter régulièrement avec le nombre de paramètres, la taille et la qualité des données d'entraînement, ainsi que la quantité de calculs utilisée pour entraîner le modèle.. Les grands modèles de langage sont ensuite le plus souvent entraînés par réglage fin (fine-tuning) pour adopter un rôle d'assistant conversationnel et afin d'être « utiles, sincères et inoffensifs »..

Les modèles de langage possédant un grand nombre de paramètres s'avèrent capables de capturer une grande partie de la syntaxe et de la sémantique du langage humain. Avant le succès des grands modèles de langage, l'attention des chercheurs en traitement automatique des langues était principalement focalisée sur l'apprentissage supervisé de modèles spécialisés pour des tâches spécifiques.

Architecture Un modèle de langage reçoit typiquement en entrée des données séquentielles de longueur variable. Pendant longtemps, l'architecture utilisée préférentiellement pour ce genre de données était celle dite de réseaux de neurones récurrents. Cette architecture présentait comme inconvénient majeur de mal se prêter à la parallélisation des calculs nécessaires à l'entrainement.

En 2017, un article très influent. suggère qu'une architecture non récurrente, le transformeur, basée sur un mécanisme d'attention, peut avec succès traiter des données séquentielles tout en étant parallélisable lors de l'entrainement.

C'est l'avènement de cette architecture, et surtout les gains en performance qu'elle procure, qui permettent aux chercheurs d'augmenter considérablement le nombre de paramètres de leurs modèles, d'où le qualificatif « grand » les concernant. La plupart des grands modèles de langage utilisent donc cette architecture, même si la recherche se poursuit pour trouver des architectures encore plus performantes RWKV: Reinventing RNNs for the Transformer Era<ref> [https://arxiv.org/abs/2307.08621 Retentive Network: A Successor to Transformer for Large Language Models]</ref> HyperAttention: Long-context Attention in Near-Linear Time Mamba: Linear-Time Sequence Modeling with Selective State Spaces.

Analyse lexicale

Les LLM sont des fonctions mathématiques dont l'entrée et la sortie sont des listes de nombres. Pour que ceux-ci fonctionnent avec des mots, une conversion est nécessaire.

Cette conversion est ce qu'on appelle l'analyse lexicale. L'analyseur lexical est une fonction bijective qui établit une correspondance entre des textes et des listes de nombres entiers. Il est généralement d'abord adapté à l'ensemble complet des données d'entraînement, puis gelé, avant que le modèle de langage ne soit entraîné. Un choix courant est le codage par paires d'octets.

Une autre fonction des analyseurs lexicaux est la compression de texte, qui épargne du temps de calcul. Des mots ou expressions courants tels que « où est » peuvent être encodés dans une seule unité lexicale (ou jeton, en anglais), au lieu d'être encodés par six caractères. La série de modèles GPT d'OpenAI utilise un analyseur lexical où une unité lexicale correspond à environ quatre caractères, soit environ dans un texte anglais courant.. Un texte anglais peu courant est moins prévisible, donc moins compressible, nécessitant ainsi plus de jetons pour être encodé.

Un analyseur lexical convertit une suite de caractères en un nombre entier dans un ensemble fini de valeurs, ensemble dont la taille est appelée la taille de vocabulaire.

Certains sont capables de gérer des textes arbitraires en opérant généralement directement sur Unicode, mais d'autres non. Lorsqu'il rencontre du texte non encodable, un analyseur lexical génère une unité lexicale spéciale (par exemple 0) qui représente un « texte inconnu ». Ceci est souvent écrit comme [UNK], comme dans l'article du modèle BERT.

Une autre unité lexicale spéciale couramment utilisée est [PAD] (souvent 1), pour « padding ». Ceci est utilisé car les LLM sont généralement utilisés sur différents lots de texte à la fois, et ces textes ne sont pas codés à la même longueur. Étant donné que les LLM exigent généralement que l'entrée soit un tableau de taille fixe, les textes les plus courts doivent être complétés.

Sortie La sortie d'un LLM est un vecteur où est la taille du lexique produit lors de l'analyse lexicale. Le vecteur est ensuite passé par une fonction softmax pour obtenir ; le vecteur est généralement appelé le vecteur logit non normalisé ; le vecteur est appelé le vecteur de probabilité.

Puisque le vecteur a entrées, toutes non négatives, et dont la somme est égale à 1, on peut l'interpréter comme une distribution de probabilité sur le vocabulaire du LLM (indexé par ).

Pré-entraînement La plupart des LLM commencent leur apprentissage par un pré-entraînement génératif, c'est-à-dire qu'à partir d'un ensemble de données d'entraînement de jetons de texte, le modèle prédit les jetons dans l'ensemble de données. Il existe deux styles généraux de pré-entrainement pour la génération. :

autorégressif (comme le fait GPT, la prédiction des mots suivants) : en partant d'un segment de texte comme « J'aime manger », le modèle prédit les jetons suivants, comme « de la mousse au chocolat » ou « des fruits » ; masqué (de type BERT » ou « texte à trous ») : en partant d'un segment de texte comme « J'aime [__] [__] fruits », le modèle prédit les jetons masqués, comme « manger des ».

Les LLM peuvent être entraînés sur des tâches auxiliaires qui testent leur compréhension de la distribution des données, telles que la prédiction de la phrase suivante (NSP), dans laquelle des paires de phrases sont présentées et le modèle doit prédire si elles apparaissent consécutivement dans le corpus d'entraînement.

Habituellement, les LLM sont entraînés pour minimiser une fonction de perte spécifique : la log-vraisemblance négative moyenne par jeton (également appelée perte d'entropie croisée).

Par exemple, si étant donné « j'aime manger », un modèle autorégressif prédit une distribution de probabilité alors la perte de vraisemblance logarithmique négative sur ce jeton est .

Pendant l'entraînement, la perte de régularisation est également utilisée pour stabiliser l'entraînement. Cependant, celle-ci n'est que peu utilisée pendant les tests et l'évaluation. Il y existe beaucoup d'autres critères d'évaluation que la simple vraisemblance logarithmique négative, comme le décrit la section ci-dessous.

Taille de l'ensemble de données Les premiers LLM ont été entraînés sur des corpus contenant des milliards de mots.

GPT-1, le premier modèle de la série de transformeurs génératifs pré-entraînés d'OpenAI, est entraîné en 2018 sur BookCorpus, composé de 985 millions de mots.. La même année, le modèle BERT de Google est entraîné sur une combinaison de BookCorpus et de Wikipedia anglais, totalisant 3,3 milliards de mots. Depuis, les corpus d'entraînement pour les LLM ont augmenté de plusieurs ordres de grandeur ; le modèle de META, sorti en avril 2024, utilise de jetons..

Coût alt=Évolution du coût estimé d'entraînement des grands modèles de langage entre 2017 et 2023.|vignette|Évolution du coût estimé d'entraînement des grands modèles de langage entre 2017 et 2023. L'entraînement des LLM est coûteux en calculs. Une étude de 2020 estime le coût de l'entraînement d'un modèle de de paramètres (deux ordres de grandeur inférieurs au dernier cri à l'époque) à de dollars. Depuis, les progrès logiciels et matériels ont considérablement réduit ces coûts, comme relaté dans un article de 2023 qui fait état d'un coût de A100-GPU pour entraîner un modèle de de paramètres. La taille des modèles a cependant aussi augmenté.

Pour un LLM utilisant un transformeur, le coût d'entraînement du modèle est beaucoup plus élevé que son coût d'inférence. L'entraînement sur un jeton coûte 6 FLOPS par paramètre, alors que l'inférence sur un jeton coûte de 1 à 2 FLOPS par paramètre..

Réglage après entraînement Le réglage fin (), ou ajustement, est la pratique consistant à modifier un modèle de langage pré-entraîné existant en l'entraînant (souvent de manière supervisée) sur une tâche spécifique (par exemple, l'analyse des sentiments, la reconnaissance d'entités nommées ou le marquage d'une partie du discours). C'est une forme d'apprentissage par transfert qui permet de spécialiser le LLM.

Le réglage fin peut se faire de différentes façons, notamment. : en ré-entraînant tous les paramètres du modèle, mais sans trop les modifier pour ne pas écraser les connaissances acquises lors du pré-entraînement. Cette méthode est efficace mais nécessite beaucoup de temps de calcul ; en entraînant seulement une partie des paramètres (souvent une partie des couches). Les autres paramètres sont dits « gelés » ; en ajoutant une ou plusieurs couches à la fin du modèle, avec de nouveaux paramètres ; en ajoutant un « adaptateur », contenant ses propres paramètres. Ces méthodes (LoRA notamment) ajoutent souvent peu de paramètres à entraîner, nécessitant ainsi moins de ressources informatiques ; en ajoutant automatiquement une série de au début du prompt, optimisés automatiquement pour fournir le bon résultat (). Dans ce cas, le modèle lui-même est entièrement gelé et aucun de ses paramètres n'est entraîné, seul le prompt est ajusté. Lors de l'inférence, ces tokens seront également ajoutés automatiquement au début du prompt sans que l'utilisateur ne les voie. De façon similaire, cela peut aussi se faire en injectant des vecteurs plutôt que des tokens ().

Réglage par instructions Le réglage par instructions ( en anglais) est une forme d'apprentissage supervisé visant à ce que le LLM réponde d'une certaine façon, par exemple en adoptant le rôle d'assistant. Étant donné un prompt en entrée, un modèle de langage pré-entraîné générera une complétion qui correspond à la distribution du texte sur laquelle il a été entraîné. En réponse au prompt « Écrire un essai sur les principaux thèmes de Hamlet. », un modèle de langage pré-entraîné pourrait produire : « Une pénalité de retard de 10 % par jour sera appliquée aux travaux reçus après le ». Dans le réglage par instructions, le modèle de langage est entraîné sur de nombreux exemples de tâches formulées sous forme d'instructions en langage naturel, ainsi que des réponses appropriées. Les instructions et les réponses correspondantes attendues peuvent être soit écrites par des humains, soit générées automatiquement, par exemple avec la méthode self-instruct..

Apprentissage par renforcement Les grands modèles de langage suivent souvent une phase supplémentaire de réglage fin exploitant l'apprentissage par renforcement, afin de les rendre utiles et inoffensifs et de réduire les hallucinations.