GN⁺ : Les problèmes de LangChain
(minimaxir.com)- LangChain : une bibliothèque Python et JavaScript qui s’interface avec l’API GPT d’OpenAI pour la génération de texte par IA
- Une implémentation de l’article ReAct, connue pour améliorer la qualité du texte produit par les LLM
- Le workflow ReAct était particulièrement efficace avec InstructGPT/text-davinci-003, mais il coûte cher et n’est pas facile à utiliser pour de petits projets
- À mesure que LangChain a gagné en popularité, le projet a levé des fonds importants sans avoir de revenus distincts ni de plan de monétisation
- Il a effectivement été envisagé de l’utiliser chez BuzzFeed pour créer un chatbot
- Parce que LangChain était un outil populaire pour le RAG (Retrieval-Augmented Generation)
- Mais même après de longues recherches, cela ne fonctionnait pas bien. Il y avait beaucoup de bugs et la qualité n’était pas bonne
- En revenant à un niveau plus bas et en développant directement, on obtenait des résultats bien meilleurs qu’avec LangChain
- En voyant l’article et les commentaires sur Hacker News, « Créer LangChain en 100 lignes de code », l’auteur a compris qu’il n’était pas le seul à critiquer LangChain
- Le problème de LangChain est qu’il ajoute une complexité et des biais inutiles à l’écosystème de l’IA
- Les débutants qui veulent apprendre à interfacer avec ChatGPT ne devraient jamais commencer par LangChain
- Les exemples et le code sont plus complexes que d’utiliser la bibliothèque Python officielle d’OpenAI
- Le prompt engineering de LangChain n’est en pratique guère plus que des
f-stringsavec des étapes supplémentaires - Les workflows d’agents et les fonctions de mémoire conversationnelle sont mal documentés, ce qui peut les rendre déroutants à utiliser
- La fonction de prompt système n’est pas correctement intégrée aux workflows d’agents
- La documentation et les exemples posent plus de problèmes qu’ils n’apportent d’avantages, ce qui complique l’usage réel
- Les agents LangChain utilisent une méthode particulière de sélection d’outils via le prompt engineering et la sortie JSON
- Des changements dans la structure normale de sortie peuvent empêcher les agents de fonctionner et nécessiter une gestion des erreurs de parsing
- Le chatbot peut extraire et formater correctement des recettes, mais la sortie reste ennuyeuse
- Il propose des fonctions d’agents et de chaînes personnalisés, mais cela complexifie le processus
- Avec des utilitaires comme le découpeur de texte et le stockage vectoriel intégré, LangChain impose des limitations qui enferment l’utilisateur dans du code basé sur LangChain
- LangChain augmente la surcharge et la complexité dans la plupart des cas d’usage populaires
- Il semble incarner la philosophie : « c’est compliqué, donc ça doit être mieux ! »
- L’auteur a développé un package Python bien plus simple,
simpleaichat, comme alternative à LangChain - Il ne s’agit pas de faire la promotion de
simpleaichat, mais d’une inquiétude à l’idée que les débutants se tournent vers LangChain
4 commentaires
Après avoir moi aussi analysé LangChain, j’ai eu très souvent l’impression que c’était de l’over-engineering.
http://swcho.github.io/blogs/2023-07-15-langchainjs-part-3
Je pense qu’il faut trouver sa signification dans le fait que LangChain a été le premier projet open source à poser la question :
comment structurer l’écosystème des LLM ?Même si l’utilisabilité de LangChain laisse à désirer, le problème qu’il cherchait à résoudre, lui, reste toujours entier.
GN+ est désormais aussi inclus dans le RSS. Merci. @xguru, je vais vous lire avec attention.
LangChain est dénué de sens
Je pense que cet article s’inscrit dans la continuité de celui-ci.
L’auteur de ce blog, Max Woolf, avait déjà vivement critiqué dans les commentaires de l’article ci-dessus le fait que LangChain soit réellement inutile, puis il a développé et publié son alternative, simpleaichat.
Cette fois, il a même publié un article qui récapitule les problèmes.
Avis sur Hacker News