Comment LangChain transforme GenAI en un assistant véritablement utile
L’ère des agents IA peut commencer par l’enchaînement de modules simples permettant un flux de travail pour des tâches réelles. Le diagnostic du cancer n’est qu’un exemple.
Grâce à LangChain, les programmeurs ont pu combiner l'imagerie échographique pour des choses telles que le diagnostic du cancer du sein avec une invite en langage naturel de style ChatGPT.
Le mouvement d'IA générative de ChatGPT d'OpenAI et de ses dérivés est peut-être mieux connu pour ses paroles de mauvais rap et son aide à la programmation automatisée. Mais un nouveau framework open source s’appuyant sur de grands modèles de langage apporte une orientation plus pratique à GenAI.
LangChain, vieux d'un peu plus d'un an, est ce que vous pourriez considérer comme une introduction douce à la programmation d'agents d'IA à travers un ensemble très simple de bibliothèques reposant sur des modèles GenAI. La technologie est soutenue par une startup du même nom, financée par du capital-risque, qui propose une plate-forme serveur pour le déploiement commercial d'applications construites avec LangChain.
L’essentiel de LangChain est qu’il combine une grande invite de modèle de langage avec diverses ressources externes. De cette façon, il peut récupérer des données d'une base de données, par exemple, et transmettre la sortie du modèle de langage à une application, obtenir la sortie de cette application et la renvoyer au modèle de langage, et ainsi de suite.
Le cadre permet ainsi d'enchaîner des ressources, où chaque ressource devient une sorte d'agent, gérant une partie du problème dans le contexte du modèle de langage et de l'invite.
Il existe déjà des exemples fascinants d’utilisations pratiques dans différentes disciplines.
Par exemple, en utilisant LangChain, les programmeurs ont pu combiner l'imagerie échographique pour des choses telles que le diagnostic du cancer du sein avec une invite en langage naturel de style ChatGPT. Un radiologue peut faire appel à l'ordinateur comme assistant analytique avec une phrase telle que « Veuillez me donner un résumé des observations données en fonction de la position de la sonde » dans une image échographique du sein.
Un aspect intéressant du programme, construit par Jaeyoung Huh et ses collègues de l'Institut supérieur coréen des sciences et technologies, est qu'il rassemble trois réseaux neuronaux différents d'une variété largement utilisée - ResNet-50 - qui est le réseau neuronal classique de vision. réseau qui excelle dans la classification d’images.
Chacun des trois réseaux neuronaux est entraîné séparément pour effectuer une tâche, telle que l'identification d'une forme suspecte dans une image échographique, la classification de cette forme et la localisation de la forme dans le corps.
Le but de LangChain est d'envelopper ces trois réseaux dans des commandes en langage naturel, telles que « donnez-moi des informations de sonde pour l'image donnée », puis « donnez-moi un résumé des observations données ».
Au niveau le plus simple, LangChain peut donc être un moyen de créer une interface conviviale pour l'IA, du genre dont rêvent depuis longtemps les spécialistes de domaines tels que l'IA médicale qui cherchaient à créer un assistant médical capable de répondre aux commandes vocales. .
L'un des objectifs de certains efforts de LangChain est d'essayer d'éliminer les fameuses hallucinations de GenAI - la propension des programmes à affirmer avec confiance de fausses informations - en ancrant la technologie sur des sources externes faisant autorité. Un groupe du cabinet de conseil Accenture, dirigé par Sohini Roychowdhury, décrit un système permettant de faire des prévisions financières via un « chatbot financier ».
Le système prend les cellules d'une feuille de calcul et les convertit en déclarations en langage naturel sur les données, qui peuvent ensuite être recherchées pour trouver une phrase correspondant à une question.
Voici comment cela fonctionne : un utilisateur invite le modèle de langage avec une question en langage naturel telle que « Comment se portent mes ventes ? » L'invite est introduite dans un modèle qui génère une invite plus précise pour le modèle de langage. Cette invite peut inclure plus de mots de question détaillés que ce à quoi une personne pourrait penser, pour produire une meilleure invite.
L'invite améliorée déclenche une recherche par mot clé, et cette recherche sélectionne laquelle des phrases - construites à partir de données tabulaires - pointent vers les données les plus pertinentes du tableau (par exemple, ventes, bénéfices).
Une fois les données pertinentes récupérées, un deuxième ensemble de modèles aide le chatbot à formuler une réponse à la requête en utilisant les phrases des données tabulaires dans une réponse de chat.
Roychowdhury et son équipe ne parviennent pas à éliminer les hallucinations. Au lieu de cela, ils ont conçu un mécanisme de notation de « confiance » par lequel le chatbot vérifie ses réponses par rapport à la question, voit dans quelle mesure elles correspondent, puis attribue un score de confiance élevé, moyen ou faible à sa réponse.
"Le score de confiance indique à l'utilisateur de faire preuve de prudence lorsqu'il prend des décisions clés en utilisant des réponses de confiance moyennes à faibles", explique Roychowdhury. "Le score de confiance permet en outre de déterminer quelles requêtes des utilisateurs doivent être affinées davantage pour plus de fiabilité."
Les programmeurs découvrent qu'une LangChain peut être un moyen d'automatiser certaines tâches extrêmement banales. Un exemple consiste à vérifier l'utilisation du Web par les employés pour s'assurer qu'ils ne naviguent pas sur des sites Web illicites. Un document décrivant une « politique d'utilisation acceptable » pour une entreprise est téléchargé dans ce qu'on appelle une base de données vectorielle, un type spécial de base de données qui peut comparer des chaînes de texte provenant, par exemple, d'une URL à une collection de chaînes de texte dans un document pour voir s'il y a un match.
Lorsqu'une personne saisit une URL dans un navigateur, l'URL du site et le résumé du contenu du site peuvent être automatiquement comparés au document de politique dans la base de données vectorielle pour voir si le contenu du site correspond à des sujets interdits. Le programmeur peut automatiser la comparaison avec une simple invite de texte demandant : « Est-ce que quelque chose dans ce site correspond à des éléments interdits ?
Un tel exemple montre clairement que les grands modèles de langage et LangChain vont au-delà des requêtes individuelles. Ils deviennent un moyen pour les programmeurs d'utiliser des commandes en langage naturel pour intégrer les différents outils à leur disposition pour les fonctions qui se trouvent en coulisses.
LangChain n'est pas le seul framework permettant de compiler des flux de travail dotés d'une qualité d'agent, et d'autres frameworks de ce type sont en cours de création, notamment le noyau sémantique de Microsoft et le LlamaIndex open source, qui s'appuie sur LangChain.
Un groupe de chercheurs de Stanford, UC Berkeley et Carnegie Mellon, ainsi que des collaborateurs du secteur privé, ont présenté en octobre ce qu'ils appellent DSPy, une approche de programmation qui remplace les invites en langage naturel codées à la main par des descriptions fonctionnelles et peut à son tour générer automatiquement invite. Les descriptions fonctionnelles peuvent être très larges, par exemple « consommer des questions et renvoyer des réponses ». DSPy dispose d'un compilateur pour optimiser le flux des modèles de langage et des outils de support.
Les efforts de DSPy sont analogues, notent les auteurs, aux cadres d'apprentissage profond qui disposent de réseaux de neurones avancés via des couches d'abstraction, notamment Torch et Theano.
Les auteurs affirment des améliorations spectaculaires de la qualité par rapport au fait qu'une personne rédige manuellement une invite dans chaque cas. "Sans invites élaborées à la main et en quelques minutes à dizaines de minutes de compilation, les compositions de modules DSPy peuvent augmenter la qualité de programmes simples de 33 % à 82 % ", écrivent-ils.
Le jeu de framework GenAI n’en est qu’à ses débuts, et vous pouvez vous attendre à de nombreuses autres couches d’abstraction au-dessus, en dessous et autour de LangChain au cours de l’année à venir.


