Tour d'horizon des frameworks pour créer des applications basées sur les LLM
J’étais hyper enthousiaste par la vague d’IA générative il y a environ un an.
Je suivais tout sur Twitter, LinkedIn, YouTube.
Je faisais des tests et des projets. Puis, j’ai un peu lâché le truc.
C’était dur de suivre et c’était un peu le bordel, il faut l’avouer.
Je me suis remis à jour récemment, et je suis content de voir que le marché s’est un peu plus structuré, notamment au niveau des frameworks pour le RAG ou les agents.
Même s’il est parfois plus simple, dans certains cas, de créer son propre code, utiliser des frameworks permet de gagner du temps en bénéficiant des fonctionnalités déjà implémentées par la communauté.
Petit tour d’horizon des frameworks :
LangChain :
Le framework le plus populaire à ce jour. Critiqué pendant un moment pour sa complexité, il s’est depuis simplifié.
LangChain est un framework open-source conçu pour développer des applications basées sur des modèles de langage (LLMs). Le concept central repose sur les chaînes. Une chaîne est une suite d’opérations que votre application va accomplir, comme appeler un LLM, interroger une base de données ou envoyer un appel API.
LangChain propose des outils permettant de connecter les modèles à de nouvelles sources de données sans nécessiter de réentraînement, et inclut des fonctionnalités telles que les chaînes, la mémoire pour gérer l'état et les interactions complexes, ainsi que les agents.
LangChain a développé d’autres outils, comme LangGraph, qui permet de visualiser le workflow de vos agents sous forme de graphe visuel, Langsmith pour monitorer vos applications LLM, et LangServe pour déployer vos chaînes en tant qu'API REST.
LlamaIndex :
Concurrent de LangChain, c’est un autre framework open-source pour créer des applications avec des LLMs. À l’origine, il se concentrait sur l’intégration de sources de données (PDF, bases de données, etc.) pour les applications LLM, mais il se rapproche de plus en plus de LangChain en offrant la possibilité de créer des agents.
La force de LlamaIndex réside dans le nombre de ses intégrations (sources de données, bases de données vectorielles, etc.), consultables sur LlamaHub.
Dans quel cas choisir LlamaIndex ou LangChain ?
Optez pour LlamaIndex si vous construisez une application avec un fort accent sur l'efficacité et la simplicité de la recherche et de la récupération, où un débit élevé et le traitement de grandes bases de données sont essentiels.
Choisissez LangChain si vous visez à construire des applications LLM plus complexes et flexibles, qui pourraient inclure des pipelines de traitement de requêtes personnalisés, une intégration multimodale, et un besoin d'optimisation de performance très adaptable.
LangChain et LlamaIndex sont tout indiqués pour faire du RAG ou construire des chatbots.
Il est également possible de construire des agents avec ces frameworks, mais depuis environ un an, des frameworks spécifiques aux agents ont émergé.
AutoGen :
Framework de Microsoft, AutoGen est un framework open-source conçu pour développer des applications basées sur les modèles de langage (LLM) en utilisant des conversations multi-agents. La principale force d'AutoGen réside dans sa capacité à faciliter des conversations sophistiquées entre plusieurs agents.
CrewAI :
CrewAI est un framework open-source qui permet à plusieurs agents de collaborer en tant qu'équipe ou "crew" pour accomplir des tâches complexes. Ce framework est basé sur LangChain. Chaque agent joue un rôle spécifique et peut déléguer des tâches, poser des questions et partager des informations avec ses pairs, ce qui améliore l'efficacité et la précision. Les particularités de CrewAI incluent l'orchestration de rôles autonomes, l'utilisation de la mémoire pour une meilleure prise de décision, et la gestion des processus pour coordonner les agents de manière séquentielle ou hiérarchique.
Le choix entre eux dépend de votre cas d’usage :
Prototypage et exploration, cas d’usage simples : l'installation rapide et le design modulaire de CrewAI est plus avantageux. Vous pouvez rapidement tester des interactions complexes entre agents grâce à CrewAI.
Tâches spécialisées, cas d’usage plus complexes et intégration de code : AutoGen sera préféreable. Si vous avez besoin d'un contrôle précis sur la manière dont les agents traitent l'information, accèdent à des API externes et utilisent des scripts personnalisés, sa flexibilité vaut l'effort supplémentaire de configuration.