10 points par GN⁺ 2024-06-21 | 2 commentaires | Partager sur WhatsApp
  • Octomind utilise des agents IA pour générer et corriger automatiquement des tests de bout en bout dans Playwright.
  • Au départ, l’entreprise utilisait le framework LangChain, mais avec le temps, le niveau élevé d’abstraction de LangChain a commencé à poser problème.

Les problèmes de LangChain

  • Les abstractions de LangChain étaient utiles au début, mais lorsque les besoins se sont complexifiés, elles ont rendu le code plus difficile à comprendre et à maintenir.
  • Comprendre la structure interne de LangChain et la déboguer demandait beaucoup de temps.
  • Par exemple, même pour un code qui se contente de traduire un simple mot anglais en italien, utiliser LangChain augmente la complexité.

Le problème des abstractions de LangChain

  • LangChain superpose plusieurs couches d’abstraction, ce qui accroît la complexité du code.
  • Ces abstractions rendent le code plus difficile à comprendre et à déboguer.
  • Par exemple, même pour une tâche simple consistant à récupérer des données JSON depuis une API, utiliser LangChain augmente la complexité.

L’impact sur l’équipe de développement

  • Lorsqu’il s’est agi de mettre en œuvre une architecture d’agents complexe, LangChain est devenu un facteur limitant.
  • Après avoir retiré LangChain, l’équipe a pu coder librement en fonction de ses besoins.

Faut-il un framework pour développer des applications IA ?

  • LangChain a été utile au départ, mais sur le long terme, il aurait sans doute été préférable de développer sans framework.
  • La plupart des applications IA peuvent être mises en œuvre avec du code simple et quelques packages externes.
  • Tant que les schémas d’usage des agents ne sont pas stabilisés, une approche simple est recommandée.

Développement rapide et concis avec des briques modulaires

  • Un framework impose une structure, mais les applications IA n’ont pas encore de schémas d’usage bien établis.
  • L’approche par briques modulaires privilégie un code simple de bas niveau et accélère le développement.
  • En utilisant des composants modulaires comme les bases de données vectorielles, il est possible de garder une base de code concise et adaptable.

L’avis de GN⁺

  • Les limites de LangChain : le niveau élevé d’abstraction de LangChain est utile au début, mais peut devenir un obstacle lorsque les besoins se complexifient.
  • Les avantages de l’approche modulaire : une approche par briques modulaires facilite la compréhension et la maintenance du code, tout en accélérant le développement.
  • Repenser la nécessité d’un framework : toutes les applications IA n’ont pas besoin d’un framework, et un code simple accompagné de packages externes peut suffire.
  • L’importance de la vitesse de développement : dans l’IA, l’expérimentation rapide et le prototypage sont essentiels, et un framework peut les freiner.
  • Les futurs schémas d’usage des agents : tant que les schémas d’usage des agents ne sont pas stabilisés, il vaut mieux conserver une approche simple.

2 commentaires

 
yangeok 2024-06-24

On entendait déjà dire que c’était une architecture vouée à l’échec, et voilà que je le vois aussi sur GeekNews.

 
GN⁺ 2024-06-21
Avis Hacker News
  • J’ai construit mon premier agent LLM commercial en octobre/novembre dernier : le fait de construire l’agent moi-même depuis zéro, sans utiliser LangChain, m’a permis d’obtenir de meilleurs résultats.

  • La complexité des frameworks LLM : les frameworks LLM comme LangChain ont tendance à introduire une complexité comparable à celle de Java ou de Python.

  • Comparaison entre LangChain et ChatGPT : LangChain a été créé avant l’arrivée de ChatGPT, mais avec un meilleur modèle conversationnel proposé par ChatGPT, la nécessité de LangChain a diminué.

  • Débat sur la valeur de LangChain : LangChain a essayé de se placer entre les développeurs et les LLM, sans réellement ajouter de valeur concrète, tout en introduisant des abstractions inutiles.

  • Bonnes et mauvaises abstractions : une bonne abstraction traite la logique applicative, tandis qu’une mauvaise abstraction masque le travail nécessaire et fait perdre en compréhension.

  • Les problèmes liés à l’usage des agents : pour la génération de contenu, utiliser des prompts séquentiels est plus simple et plus efficace que d’utiliser des agents.

  • Présentation du framework Ragged : présentation de Ragged, un connecteur léger permettant de se brancher facilement aux LLM. Il fournit une interface d’intégration unifiée, semblable à un ORM.

  • Le manque d’utilité de LangChain : l’approche de LangChain est intéressante, mais en pratique il est plus efficace d’utiliser directement les bibliothèques runtime LLM.

  • Des frameworks d’agents qui évoluent vite : les frameworks d’agents utilisés évoluent rapidement, et même de petits changements de version peuvent casser la configuration actuelle.

  • Le problème de complexité de LangChain : LangChain est trop complexe pour les cas d’usage simples, et difficile à adapter pour les cas complexes. Dans bien des cas, écrire le code directement est préférable.