On a beaucoup parlé récemment des merveilles des grands modèles linguistiques (LLM). La plupart de ces distinctions sont méritées. Demandez à ChatGPT de décrire la théorie de la relativité générale et vous obtiendrez une très bonne (et précise) réponse. Cependant, en fin de compte, ChatGPT est toujours un programme informatique (comme tous les autres LLM) qui exécute aveuglément son jeu d'instructions. Il ne comprend pas mieux la théorie de la relativité générale que votre animal de compagnie préféré. Malheureusement, nous utilisons des mots « humains » pour décrire les techniques utilisées par les ingénieurs pour les créer, par exemple « apprentissage automatique » et « formation ». C'est trompeur car un LLM n'a pas un esprit comme celui d'un humain.
Il y a ici une certaine ironie : comment un chatbot non réfléchi peut-il résumer correctement les découvertes de l’homme le plus intelligent qui ait jamais vécu ? Pour comprendre cette nature contradictoire des LLM, explorons-les plus en détail en termes de forces, faiblesses et dangers pour voir comment nous pouvons utiliser les données et une solution de stockage comme MinIO, pour exploiter les premières et atténuer les deux autres. Ce sont des techniques que chaque ingénieur devrait avoir à l’esprit lorsqu’il forme, teste et déploie des LLM pour son organisation.
La force des LLM réside dans le fait qu’ils sont formés pour comprendre la distribution de probabilité des mots dans l’ensemble de formation utilisé pour les créer. Si l'ensemble de formation est suffisamment vaste (c'est-à-dire un corpus d'articles Wikipédia ou un code public sur GitHub), alors les modèles auront un vocabulaire et une distribution de probabilité correspondante qui donneront l'impression que leurs résultats ont une compréhension réelle du texte qu'ils produisent. Examinons un autre exemple plus en détail – cette fois issu de la philosophie. Posez à ChatGPT la question : « Que signifie « cogito, ergo sum » et qui l'a écrit ? et vous obtiendrez quelque chose de similaire au texte ci-dessous.
« Cogito, ergo sum » est une proposition philosophique latine qui se traduit par « Je pense, donc je suis » en anglais. Cette déclaration est célèbre pour être associée à René Descartes, philosophe, mathématicien et scientifique français. Descartes a exprimé cette idée dans son ouvrage « Discours sur la méthode », publié en 1637. L'expression reflète la tentative de Descartes d'établir une vérité fondamentale qui ne peut être mise en doute : la certitude de sa propre existence en tant qu'être pensant.
Les LLM produisent des résultats comme celui-ci en utilisant des distributions de probabilité. Cela fonctionne à peu près comme ceci, ils commencent par regarder le texte de la question et déterminent que le mot « Cogito » a la plus grande probabilité d'être le premier mot de la réponse. À partir de là, ils examinent la question et le premier mot de la réponse pour déterminer le mot qui a la plus grande probabilité d’être le prochain. Cela continue encore et encore jusqu'à ce qu'un caractère spécial de « fin de réponse » soit déterminé comme ayant la probabilité la plus élevée.
Cette capacité à générer une réponse en langage naturel basée sur des milliards de probabilités n’est pas quelque chose à craindre – c’est plutôt quelque chose qui devrait être exploité pour une valeur commerciale. Les résultats sont encore meilleurs lorsque vous utilisez des techniques modernes. Par exemple, en utilisant des techniques telles que la génération augmentée de récupération (RAG) et le réglage fin, vous pouvez enseigner un LLM sur votre entreprise spécifique. Pour obtenir ces résultats dignes d'un humain, il faudra des données et votre infrastructure aura besoin d'une solution de stockage de données solide.
Non seulement ces capacités de prédiction du prochain jeton peuvent être utilisées pour générer un texte de qualité pour votre chatbot ou votre copie marketing, mais elles peuvent également être utilisées pour permettre une prise de décision automatisée au sein de votre application. Étant donné des invites intelligemment construites contenant un énoncé du problème et des informations sur les API (« fonctions ») qui peuvent être appelées, la compréhension du langage d'un LLM lui permettra de générer une réponse expliquant quelle « fonction » doit être appelée. Par exemple, sur une application météo conversationnelle, un utilisateur pourrait demander : « Ai-je besoin d'une veste de pluie si je vais à Fenway Park ce soir ? » Avec des invites intelligentes, un LLM pourrait extraire les données de localisation de la requête (Boston, MA) et déterminer comment une requête adressée à l'API de précipitations Weather.com pourrait être formulée.
Pendant longtemps, la partie la plus difficile de la création de logiciels était l'interface entre le langage naturel et les systèmes syntaxiques tels que les appels API. Ironiquement, cela pourrait être l’une des parties les plus simples. Semblable à la génération de texte, la qualité et la fiabilité du comportement d'appel de fonctions LLM peuvent être améliorées grâce à l'utilisation d'un apprentissage de réglage fin et par renforcement avec retour humain (RLHF).
Maintenant que nous comprenons dans quoi les LLM sont bons et pourquoi, examinons ce que les LLM ne peuvent pas faire.
Les LLM ne peuvent pas penser, comprendre ou raisonner. C’est la limite fondamentale des LLM. Les modèles de langage n'ont pas la capacité de raisonner sur la question d'un utilisateur. Ce sont des machines probabilistes qui donnent une très bonne idée de la question d'un utilisateur. Peu importe à quel point quelque chose est une supposition, cela reste une supposition et tout ce qui crée ces suppositions finira par produire quelque chose qui n'est pas vrai. Dans l’IA générative, cela s’appelle une « hallucination ».
Lorsqu’elles sont correctement entraînées, les hallucinations peuvent être réduites au minimum. Le réglage fin et le RAG réduisent également considérablement les hallucinations. L'essentiel : pour entraîner correctement un modèle, l'affiner et lui donner un contexte pertinent (RAG), il faut des données et l'infrastructure pour le stocker à grande échelle et le servir de manière performante.
Examinons un autre aspect des LLM, que je classerai comme un danger car il a un impact sur notre capacité à les tester.
L’utilisation la plus populaire des LLM est l’IA générative. L’IA générative ne produit pas de réponse spécifique comparable à un résultat connu. Cela contraste avec d’autres cas d’utilisation de l’IA, qui font une prédiction spécifique qui peut être facilement testée. Il est simple de tester des modèles pour la détection, la catégorisation et la régression d’images. Mais comment tester les LLM utilisés pour l’IA générative de manière impartiale, fidèle aux faits et évolutive ? Comment pouvez-vous être sûr que les réponses complexes générées par les LLM sont correctes si vous n'êtes pas vous-même un expert ? Même si vous êtes un expert, les évaluateurs humains ne peuvent pas participer aux tests automatisés effectués dans un pipeline CI/CD.
Il existe quelques références dans l’industrie qui peuvent vous aider. GLUE (General Language Understanding Evaluation) est utilisé pour évaluer et mesurer les performances des LLM. Il s'agit d'un ensemble de tâches qui évaluent la capacité des modèles à traiter le langage humain. SuperGLUE est une extension du benchmark GLUE qui introduit des tâches linguistiques plus difficiles. Ces tâches impliquent la résolution de coréférences, la réponse à des questions et des phénomènes linguistiques plus complexes.
Bien que les critères ci-dessus soient utiles, une grande partie de la solution devrait résider dans votre propre collecte de données. Pensez à enregistrer toutes les questions et réponses et à créer vos propres tests basés sur des résultats personnalisés. Cela nécessitera également une infrastructure de données conçue pour être évolutive et performante.
Voilà. Les forces, les faiblesses et les dangers des LLM. Si vous souhaitez exploiter le premier et atténuer les deux autres, vous aurez alors besoin de données et d’une solution de stockage capable d’en gérer une grande partie.