Nous avons tous chatté avec chatGPT. Cet usage interactif des modèles de langage (les Large Language Models : LLMs) s’est déjà installé dans notre quotidien. Mais dans le contexte de l’entreprise, le potentiel des LLMs est décuplé lorsqu’ils interagissent avec le vaste écosystème des outils digitaux existants (ERP, outils d’activation marketing, bases de connaissance produits, etc.). De nouveaux outils de développement apparaissent pour permettre cette intégration, avec des librairies telles que LangChain.
Si ces nouveaux outils de développement offrent une certaine indépendance par rapport au choix du LLM, de nombreuses questions surgissent dès que l’on rentre dans le concret. Cet article tente d’apporter des éléments de réponse en évoquant les critères importants pour faire ce choix crucial : quel LLM choisir pour développer votre prochaine application ?
L’explosion cambrienne des LLMs
À moins d’avoir passé les derniers mois dans une grotte, vous n’avez pas pu passer à côté de ChatGPT. Depuis son lancement en novembre 2022 de nombreux autres modèles de langages sont apparus. Avant de détailler comment naviguer dans cet océan de possibilités, revenons un peu en arrière.
À la base de ChatGPT, il y a d’abord GPT (tout est dans le nom). GPT, qui signifie Generative Pre-trained Transformers, est une série de modèles (le dernier en date étant GPT-4) que l’on qualifie de Large Language Model (LLM). En 2017, Google sort le papier “Attention Is All You Need” qui pose les bases des LLMs en introduisant une nouvelle architecture de réseaux de neurones basée sur “l’attention” : l’architecture Transformer. L’année suivante, deux modèles basés sur cette architecture sortent : BERT (Google) et GPT-1 (Open AI). Depuis, la puissance de ces modèles n’a cessé de croître, cette puissance étant (partiellement) caractérisée par le nombre de paramètres du modèle. Selon certaines sources, GPT-4 cumule 1760 milliards de paramètres !
La sortie de ChatGPT en novembre 2022, confirmant une fois pour toutes le potentiel de ces modèles, a lancé une véritable course aux LLMs : la célèbre plateforme de machine learning Hugging Face recense plus de 20,000 modèles de génération de texte ! (attention toutefois : tous ces modèles sont de très nombreuses variantes de moins d’une centaine de modèles « originaux »). On comprend que la question du choix du modèle s’avère délicate.
Un LLM, combien ça coûte ?
Comme dans tout choix technologique, la question du coût à l’usage ne peut être ignorée. Tout d’abord, le coût est très lié à la performance du modèle. En effet, en première approximation, la performance d’un modèle est liée au nombre de paramètres dont il dispose, et donc au nombre de calculs nécessaire pour le faire tourner. Cet arbitrage performance/coût est très significatif : le modèle le plus puissant d’OpenAI (GPT4–32k) coûte 150 fois plus que son modèle le plus simple (babbage-002).
Si vous décidez d’héberger un modèle Open Source sur votre propre infrastructure, vous serez bien sûr confrontés également à cette problématique. Sachez également que pour héberger des modèles très puissants (plus de 100 milliards de paramètres), vous aurez besoin d’accéder à serveurs GPU avec énormément de mémoire, et que ces serveurs sont actuellement très difficiles à trouver sur le marché !
Si votre cas d’usage est simple, l’alternative de faire tourner le modèle sur des CPUs est envisageable, avec un impact très bénéfique sur le coût.
Pour finir, sachez que, pour les services commerciaux de LLM, l’évaluation du coût est assez complexe, mais a l’avantage d’être extrêmement granulaire (on peut estimer le coût de rajouter 3 syllabes dans le prompt !)
Conditions Générales d’Utilisation
Avant de lancer votre startup d’IA générative, il serait judicieux de lire les Conditions Générales d’Utilisation de votre LLM !
Par exemple, la première version de Llama, de Meta, a une licence qui interdit les usages commerciaux du modèle. (Heureusement, la licence de Llama2 est moins restrictive).
Autre point d’attention lorsque vous utilisez un service de LLM : bien comprendre la politique de gestion des données. Certains services nécessitent de proactivement spécifier que l’on ne désire pas que nos prompts soient utilisés pour améliorer la qualité du modèle ! Le développement de l’usage en enteprise des LLMs pousse le marché à définir des SLA plus stricts concernant la confidentialité des données, mais ce sujet reste encore très critique.
Pour quel usage ?
La nature de ce que vous voulez faire va également conditionner le choix du LLM. Les types de tâches sont nombreux : analyse de sentiment, classification de texte, extraction d’information, chat, traduction, résumé, question/réponse, génération de code, génération de contenu, etc.
Pour des tâches simples, comme de la classification, de l’analyse de sentiment, vous pouvez utiliser des modèles «fondationnels » (on parle aussi de modèles « pre-trained »). Ces modèles ne cherchent qu’une chose : prédire le prochain mot du prompt. Il s’agit de la 1ere génération de LLM. Ils nécessitent des prompts très spécifiques, mais peuvent être efficaces en termes de coût. En outre, étant plus simples à entrainer, le panorama de ces modèles est plus grand.
Au-delà des modèles fondationnels (pre-trained), certains LLMs ont été entrainés (en se basant sur les modèles fondationnels) pour répondre d’une certaine manière. C’est le cas de chatGPT, qui a appris à échanger avec l’utilisateur d’une manière conversationnelle (il s’agit donc d’un modèle de type « chat »). Par ailleurs, d’autres modèles ont été entrainés pour répondre spécifiquement à des instructions (on parle de modèles de type « instruct »).
Les corpus d’entrainement sont également très importants :
Certains LLMs ont été développés pour des thématiques spécifiques. C’est le cas par exemple de BloombergGPT, qui a été entrainé sur une base de données de documents financiers, ou de code Llama-Python, entrainé pour générer du code Python.
Comment adapter le LLM à ma base de connaissance ?
Parfois la tâche ou le domaine d’application est plus spécifique et demande une adaptation plus fine du modèle. Par exemple, développer une application de question/réponse utilisée en interne dans une entreprise ou une application de Chat dans une langue rare. Pour permettre à un modèle d’accéder à de nouvelles données, plusieurs méthodes existent : principalement le fine-tuning et le Retrieval Augmented Generation (RAG).
Le fine-tuning est la méthode la plus puissante, mais aussi la plus complexe à mettre en œuvre. Il consiste à ré-entrainer un modèle de base sur des jeux de données spécifiques qui vont permettre son adaptation au domaine ou à la tâche voulue. Si l’on reprend l’exemple d’un Chat dans une langue rare, cela va nécessiter un ré-entrainement du modèle sur des données dans cette langue spécifique. Cette méthode est efficace mais comme il s’agit d’un ré-entrainement, elle peut parfois s’avérer longue et coûteuse pour des modèles larges. La plupart des modèles Open Source peuvent être fine-tunés, mais ce n’est pas de cas des modèles commerciaux (par exemple Anthropic AI ne le permet pas, et Open AI limite le fine-tuning à certains de ses modèles : gpt-3.5-turbo, davinci-002 et babbage-002).
La Génération Augmentée par Récupération (RAG en anglais) ne modifie pas le modèle. Elle combine deux étapes: la récupération d’informations et la génération de texte.
- Récupération d’informations : Cette étape consiste à chercher dans votre base de données spécifique les informations pertinentes à une requête donnée.
- Génération de texte : Une fois les informations pertinentes récupérées, elles sont utilisées pour générer une réponse ou une explication en langage naturel.
Cette méthode ne nécessitant pas de ré-entrainement du modèle, elle est plus rapide et moins couteuse. Elle est néanmoins limitée par le nombre de mots que vous pouvez injecter dans un prompt (ce qu’on appelle la taille du contexte, « context length » en anglais). La majorité des modèles ont une context length relativement modeste (2048 tokens, soit environ 1500 mots), ce qui limite les informations supplémentaires qu’il est possible de fournir au modèle. Ce critère s’avère donc important si vous envisagez d’utiliser le RAG. Il existe des modèles avec des context length plus élevées : le modèle commercial Claude 2 d’Anthropic a une context length impressionnante de 100k tokens (environ 70k mots) ou encore le modèle open source MPT-7B-8K de MosaicML qui a une context length de 8k.
Et la performance dans tout ça ?
Nous avons déjà évoqué le sujet de la puissance du modèle (souvent approximée par le nombre de paramètres de celui-ci), mais comment concrètement évaluer les performances de votre LLM ? Si la taille du modèle joue énormément sur la performance, beaucoup d’autres paramètres entrent en ligne de compte : les jeux de données d’entraînement, l’architecture du modèle, les méthodes d’entraînement, etc. Pour les modèles commerciaux, ces paramètres sont parfois inconnus. Il faut donc pourvoir évaluer la performance des modèles sur des métriques de performance communes et comparables.
Il existe de nombreux benchmarks (ensemble de tâches et métriques) sur lesquels sont évalués les LLMs : GLUE (General Language Understanding Evaluation), HellaSwag, MMLU (Massive Multitask Language Understanding), TruthfulQA, HumanEval, LAMBADA (Language Modeling Broadened to Account for Discourse Aspects), TriviaQA, WinoGrande, etc. Les résultats de ces différentes évaluations sont souvent explicités dans les papiers décrivant les modèles et sont regroupés dans des leaderboards qui permettent de les classer, par exemple : Open LLM Leaderboard sur Hugging Face, llm-leaderboard, weightwatcher.ai
Ces leaderboards sont intéressants, mais très génériques. La question de la mesure de performance du modèle par rapport à votre cas d’usage est critique. Elle passe par un mélange d’évaluation humaine et automatique (où l’on fait appel à un LLM pour évaluer la pertinence des réponses), et surtout par une définition préalable de l’acceptabilité de la solution. Autrement dit, vous devez créer un benchmark spécifique pour votre projet LLM. Chez MFG Labs, nous avons développé notre propre évaluateur pour définir et lancer ces benchmarks, afin de faciliter l’opérationnalisation des modèles.
Conclusion
On le voit, la question du choix du LLM n’est pas anodine, dès lors que votre ambition est de développer des applications utilisant cette technologie. Pour choisir le bon LLM, il faut s’interroger sur de nombreux critères : coût, licence, usage, adaptabilité, performance. Appliquez d’abord vos filtres d’exclusion, portant sur la nature du modèle, la limite de coûts, le niveau de protection des données, le type de tâche à réaliser, l’hébergement… Une fois la liste des candidats définie, la mise en place d’un système d’évaluation rigoureux intégrant votre propre définition de la qualité d’une réponse viendra finaliser ce choix … en attendant GPT-5 J . Bonne chance dans cette aventure !
À propos de MFG Labs
MFG Labs est une société de conseil et réalisation experte en data, qui aide les entreprises à améliorer leurs prises de décision, à automatiser leurs processus et à créer de nouveaux services grâce à la data science, au design et à l’utilisation des dernières technologies.
Pour en savoir plus, rendez-vous sur notre site — mfglabs.fr