Bannière de fond article blog

Dans les précédents articles de cette série, nous décrivions des méthodes d’utilisation de modèles de langage pour aller au-delà de simples chatbots. Mais tout ce qui a été présenté jusqu’à présent s’appuie sur une seule famille de LLM : les modèles GPT de l’entreprise OpenAI. Or, ces modèles sont loin d’être les seuls sur le marché : modèles spécialisés, open-source, installables localement, etc. Pléthores de modèles aux caractéristiques distinctes existent. Cet article réalise un tour d’horizon synthétique de ces modèles.

Afin de bien comprendre les caractéristiques des différents LLM, il est utile de comprendre globalement comment ils sont créés.

Comment un LLM est-il entrainé ?

Au centre d’un LLM se trouve un réseau neuronal, c’est-à-dire un ensemble de neurones artificiels connectés entre eux. Chaque neurone effectue un calcul sur les signaux qu’il reçoit sur ses connexions entrantes, pour déterminer le signal qu’il envoie sur ses connexions sortantes. Ces calculs dépendent d’un ensemble de paramètres (par exemple : le poids de chaque signal d’entrée dans le calcul de celui de sortie).

schéma neurone artificiel

“Schéma d’un neurone artificiel (source https://commons.wikimedia.org/wiki/File:ArtificialNeuronModel_francais.png, licence Creative Commons BY-SA 3.0 Deed) “

Entrainer un LLM consiste à ajuster les paramètres de son réseau neuronal afin que ce réseau produise des résultats les plus proches possibles de ce que les utilisateurs en attendent. Le point de départ est un réseau neuronal avec des paramètres initialisés aléatoirement, dont les résultats sont également aléatoires. Par ajustements successifs des paramètres, l’entrainement va progressivement faire approcher le résultat le plus possible de ce qui est désiré.
Pour un LLM, cet entrainement est généralement séparé en deux étapes principales : le pré-entrainement et le fine-tuning.

Pré-entrainement : un apprentissage initial long et coûteux

Plus un réseau neuronal est grand, plus il a de paramètres, et plus il est théoriquement capable d’intégrer une quantité d’informations importante. Etant donné la complexité du langage et de tous les concepts que celui-ci peut servir à décrire, les LLMs ont besoin de plusieurs milliards, voire dizaines ou centaines de milliards de paramètres pour capturer, au moins en partie, cette complexité. Pour ajuster tous ces paramètres, le volume de données d’entrainement doit être proportionnellement élevé : typiquement plusieurs centaines voire milliers de milliards de mots, tirés de livres numérisés et de sources en ligne variées.

Travailler sur de tels volumes de données demande évidemment des ressources de calcul très importantes, de l’ordre de plusieurs semaines de calcul sur des clusters de centaines voire milliers de GPU spécialisés. Selon la taille du modèle, le coût de ces ressources se chiffre en millions ou dizaines de millions d’euros, et parfois plus encore.

Cette première phase d’entrainement produit un modèle de fondation, ou modèle pré-entrainé. Il s’agit d’un modèle capable d’écrire du texte de manière cohérente, mais qui n’a pas été entrainé à répondre à des questions ou suivre des instructions. Dans l’exemple ci-dessous, le modèle produit du texte cohérent, en rapport avec le prompt de l’utilisateur, mais qui ne répond pas à sa question.

Fine-tuning : un ensemble de techniques d’alignement

Si le pré-entrainement permet au LLM d’acquérir la capacité de générer du texte cohérent, le fine-tuning va l’entrainer à utiliser ces capacités pour produire des réponses alignées avec les intentions de l’utilisateur. Le fine-tuning est beaucoup moins coûteux que le pré-entrainement car il ne fait qu’ajuster les capacités existantes du modèle.

Différentes techniques de fine-tuning existent, mais elles ont en commun de fournir au modèle un ensemble d’exemples de couples prompt / réponse. Deux exemples tirés d’un dataset open-source de fine-tuning

 

Exemple 1 :

  • Prompt: “Can you explain contrastive learning in machine learning in simple terms for someone new to the field of ML?“
  • Response: “Sure! Let’s say you want to build a model which can distinguish between images of cats and dogs. You gather your dataset, consisting of many cat and dog pictures. Then […]”

Exemple 2 :

  • Prompt: “Can you write a short introduction about the relevance of the term “monopsony” in economics?“
  • Response: “”Monopsony” refers to a market structure where there is only one buyer for a particular good or service. In economics, […]”

 

Selon la complexité et la variété des tâches pour lesquelles le LLM doit être fine-tuné, le dataset devra comporter entre quelques centaines et plusieurs dizaines de milliers d’exemples. Il s’agit d’un volume de données beaucoup moins important que celui utilisé pour le pré-entrainement, et le fine-tuning ne va, de fait, affecter qu’un faible pourcentage des paramètres du modèle. Le coût des ressources de calcul nécessaires est alors plutôt de l’ordre de quelques centaines à milliers d’euros.
Cette première explication du processus d’entrainement des IA nous permet de mieux comprendre les différents types de modèles actuellement disponibles. A partir de là, nous pouvons distinguer d’une part les modèles propriétaires et les modèles ouverts.

Modèles propriétaires

Les modèles propriétaires sont des modèles fine-tunés, généralement accessibles sous forme de webservice : un prompt est envoyé à l’API du modèle et le résultat est retourné en réponse. L’utilisation de ces modèles est le plus souvent facturée selon le nombre de tokens traités (donc selon la taille des requêtes et des réponses générées).

Lorsque le fine-tuning de ces modèles a été fait pour qu’ils soient capables de répondre à une large variété de requêtes, il s’agit de modèles généralistes.

Quelques exemples :

  • Les modèles GPT (GPT-3.5 et GPT-4) d’OpenAI : à l’heure où ces lignes sont écrites, GPT-4 est considéré comme le modèle de référence pour ses capacités de raisonnement. GPT-3.5 (modèle utilisé par la version gratuite de ChatGPT) a des capacités moindres, mais est plus rapide et environ 10 fois moins cher à utiliser.
  • Les modèles Claude de la société Anthropic : la version la plus récente, Claude v3, se décline en 3 modèles, à la taille (et donc aux capacités, mais aussi au coût d’utilisation) croissante : Haiku, Sonnet et Opus. Ces LLM se démarquent par un accent mis sur l’innocuité des réponses du modèle (absence de biais, de comportement offensant, réduction des hallucinations…) et une taille maximum de contexte élevée (200k tokens)
  • Les modèles Gemini de Google : annoncés début décembre 2023, cette famille de modèles a également des capacités proches de celles des modèles d’OpenAI, avec un focus sur la multi-modalité : c’est-à-dire la capacité du modèle à comprendre et produire non seulement du texte, mais également de l’audio et des images.
  • Le modèle Mistral Large, de la startup française Mistral. Après s’être fait connaître en créant l’un des modèles ouverts les plus performants (voir plus bas), Mistral a publié fin février 2024 un modèle propriétaire aux capacités se situant entre GPT-3.5 et GPT-4.

D’autres modèles ont été fine-tunés pour réaliser des tâches particulières : ce sont des modèles spécialisés. On peut notamment citer :

  • Les modèles d’assistance à la génération de code, tels que Github Copilot, Tabnine (qui présente la particularité de pouvoir être déployé localement, au sein d’un réseau d’entreprise) ou Amazon CodeWhisperer : ces modèles s’imposent rapidement comme des outils indispensables pour optimiser la productivité des développeurs.
  • Des éditeurs variés développent des copilotes, pour permettre d’interagir avec leurs produits en langage naturel. On peut ainsi citer Microsoft 365 Copilot (pour Word, Excel, PowerPoint, Teams, Power BI, etc.), Einstein AI de Salesforce, Atlassian Intelligence, Snowflake Copilot, etc.

Modèles ouverts

Etant donné les coûts très élevés du pré-entrainement d’un LLM, il paraissait peu probable de voir apparaitre des modèles libres performants. C’est pourtant le cas !

Il existe deux sources principales pour ces modèles.

D’une part, Meta/Facebook qui a choisi une stratégie d’ouverture, à l’inverse des grandes entreprises de la tech et de l’IA qui tentent de garder secrètes leurs techniques exactes (y compris OpenAI, malgré son nom !). Avec Llama (février 2023, utilisation non-commerciale seulement) puis Llama2 (juillet 2023, utilisation commerciale autorisée), Facebook a mis à disposition de la communauté des modèles pré-entrainés puissants. Llama3 est déjà annoncé pour juillet prochain.

D’autre part, quelques startups et instituts de recherche ont réussi à obtenir des financements pour produire des modèles pré-entrainés ouverts. On peut citer StableLM de Stability AI, Falcon du Technology Innovation Institute (institut financé par Abu Dhabi), ou Mixtral de Mistral. Ce dernier, publié fin 2023, est notable pour être le premier modèle ouvert à rivaliser avec GPT-3.5.

À la suite de l’impulsion initiale donnée par Llama, une communauté conséquente s’est formée autour de ces modèles ouverts. Le fine-tuning étant relativement peu couteux, de nombreux fine-tunes de ces modèles ont été créés, exploitant diverses stratégies (la plupart d’entre eux est mise à disposition sur le site Hugging Face).

Certains cherchent à rivaliser avec les modèles propriétaires sur des utilisations généralistes, par du fine-tuning des plus grosses versions des modèles ouverts. Ces modèles sont en effet généralement fournis en plusieurs versions, avec un nombre de paramètres variable : Llama2 existe par exemple en versions 7b, 13b et 70b (soit respectivement 7, 13 et 70 milliards de paramètres). Les résultats des meilleurs fine-tunes de Lama2 70b sont ainsi considérés comme légèrement inférieurs mais proches de GPT-3.5.

Capture d’écran du classement HuggingFace

“Capture d’écran du classement HuggingFace, qui classe les modèles ouverts selon différents benchmarks “

Mais ces modèles ouverts brillent surtout par la possibilité de créer des fine-tunes spécialisés. Prenons ainsi l’exemple d’une société qui souhaite utiliser un LLM pour extraire automatiquement des informations d’appels à un service client. A partir d’une transcription d’appels, le modèle doit extraire dans une structure JSON le nom du produit concerné et l’objet principal de l’appel parmi une liste de choix (panne, besoin d’aide sur le fonctionnement, renseignement commercial, etc.).

Un LLM généraliste propriétaire peut répondre à ce besoin, mais il est tout à fait possible qu’un modèle bien plus petit (par exemple Llama2 7b ou 13b) mais fine-tuné spécifiquement pour cette tâche obtienne des performances similaires, voire même supérieures.

Avantages :

  • Le modèle ouvert est déployable sur le réseau de l’entreprise, retirant la nécessité d’envoyer des données à une société tierce
  • Le coût de run peut être plus faible que l’utilisation d’une API propriétaire, un « petit » modèle ayant des besoins de ressources de calcul relativement limitées

Inconvénients :

  • Besoin d’un investissement initial pour constituer le dataset et réaliser le fine-tuning
  • Même si les cloud providers et les plateformes data proposent de plus en plus des services simplifiant le fine-tuning de modèle, cela reste une pratique demandant des compétences spécifiques de data science pour obtenir les meilleurs résultats

Conclusion

Depuis le Big Bang déclenché fin 2022 / début 2023 par les sorties de ChatGPT et Llama, l’univers des LLM est en expansion rapide et en constante évolution. La liste de modèles présentée ici n’est pas exhaustive, et susceptible de changer au fur et à mesure des nouvelles sorties. L’important est de retenir qu’il existe une variété de modèles aux caractéristiques distinctes, qui pourront être plus ou moins adaptés selon les cas d’usage et les contraintes de confidentialité. Il est d’ailleurs recommandé de créer des intégrations qui permettent de changer de modèle sans difficulté. Ce sujet sera évoqué dans un prochain article sur les architectures d’applications augmentées par LLM.

Photo de profil Yann Fontana

Yann Fontana

Architecte data

SUR LE MÊME THÈME

Prompt engineering : libérez le génie de l’IA (1/2)

Prompt engineering : libérez le génie de l’IA (1/2)

Prompt engineering : libérez le génie de l’IA (1/2)

Prompt engineering : Retrieval Augmented Generation (Partie 2)

Prompt engineering : Retrieval Augmented Generation (Partie 2)

Prompt engineering : Retrieval Augmented Generation (Partie 2)

Interface IA smartphone

Utiliser ChatGPT sur ses données d’entreprise, c’est possible ?

Utiliser ChatGPT sur ses données d’entreprise, c’est possible ?