LlamaIndex et le nouveau monde des frameworks d’orchestration LLM

Et si vous pouviez combiner votre propre magasin de données privé avec un grand modèle de langage (LLM) comme le GPT d’OpenAI, et l’interroger par programmation ? C’est la promesse de LlamaIndex, un nouveau cadre qui aide les développeurs à éviter les réglages fins et les invites trop longues. Il fait partie d’une catégorie émergente d’outils d’application LLM que certains appellent des «cadres d’orchestration» – ou même plus simplement, des «cadres de programmation» pour les LLM.

Dans un récent article de blog, la société de capital-risque Andreessen Horowitz (a16z) affirme que LlamaIndex et LangChain sont des cadres d’orchestration. a16z positionne fermement les deux projets au centre de sa « pile d’applications LLM émergente » :

a16z_emerging_llm_stack

Cliquez sur l’image pour voir en taille réelle

Selon a16z, les frameworks d’orchestration tels que LangChain et LlamaIndex « abstreignent de nombreux détails du chaînage d’invites », ce qui signifie interroger et gérer les données entre une application et le ou les LLM. Ce processus d’orchestration comprend l’interfaçage avec des API externes, la récupération de données contextuelles à partir de bases de données vectorielles et la gestion de la mémoire sur plusieurs appels LLM.

LangChain est le leader parmi les frameworks d’orchestration, déclare a16z. Alors, que propose LlamaIndex ? Nous allons jeter un coup d’oeil.

Comment fonctionne LlamaIndex

La clé de LlamaIndex est qu’il vous permet de combiner vos propres données personnalisées avec un LLM, sans utiliser de réglage fin (former le LLM lui-même) ou ajouter les données personnalisées à votre invite (appelée « apprentissage en contexte »).

LlamaIndex se réfère à lui-même comme un cadre de données. Il s’agit d’un « cadre de données simple et flexible pour connecter des sources de données personnalisées à de grands modèles de langage ». Il semble également couvrir à peu près n’importe quel type de données, selon ce diagramme sur sa page d’accueil :

LlamaIndex

Comme avec LangChain, LlamaIndex est encore un cadre nouveau et pas entièrement fini. Juste cette semaine (le jour de l’Indépendance, en fait), le projet a publié sa version 0.7.0. Selon le créateur de LlamaIndex, Jerry Liu, 0.7.0 « continue le thème de l’amélioration de la modularité/personnalisation au niveau inférieur pour permettre le développement ascendant des applications LLM sur vos données ».

Comme LangChain, LlamaIndex est presque étonnamment nouveau sur la scène. Il a été lancé par Liu en tant que projet open source appelé GPT Index en novembre de l’année dernière. Au cours de cette année, le nom du projet a été changé en LlamaIndex. Puis, encore une fois similaire à LangChain, Jerry Liu a transformé le projet en une société financée par capital-risque (également appelée LlamaIndex). Cela s’est produit le mois dernier lorsque Liu a noté qu’il visait à « offrir une boîte à outils pour aider à configurer l’architecture de données pour les applications LLM ».

La clé pour démarrer dans LlamaIndex est LlamaHub, où les données sont ingérées. Ravi Theja a fourni ce diagramme utile dans une présentation récente :

lamahub

LlamaHub est une bibliothèque de chargeurs et de lecteurs de données. Fait intéressant, il n’est pas limité à une utilisation avec LlamaIndex – il peut également être utilisé avec LangChain. Il existe des chargeurs « pour analyser Google Docs, les bases de données SQL, les fichiers PDF, les PowerPoint, Notion, Slack, Obsidian et bien d’autres ».

Après l’étape d’ingestion des données, il existe un workflow typique que les utilisateurs de LlamaIndex suivent :

  1. Analyser les documents en nœuds
  2. Construire un index (à partir de nœuds ou de documents)
  3. [Optional, Advanced] Construire des indices au-dessus d’autres indices
  4. Interroger l’index

La partie interrogation est effectuée par un LLM. Ou, comme le dit la documentation, « une ‘requête’ est simplement une entrée dans un LLM. » C’est là que cela peut devenir complexe, mais voici comment la documentation décrit le processus de « requête »:

L’interrogation d’un index ou d’un graphique implique trois composants principaux :

  • Récupérateurs : une classe de récupération récupère un ensemble de nœuds à partir d’un index donné une requête.
  • Synthétiseur de réponse : cette classe prend un ensemble de nœuds et synthétise une réponse donnée à une requête.
  • Moteur de requête : cette classe accepte une requête et renvoie un objet Response. Il peut utiliser des modules Retrievers et Response Synthesizer sous le capot.

lamaindex_query

L’explication la plus simple que j’ai trouvée pour le processus de requête est celle d’Owen Fraser-Green, qui a déclaré que LlamaIndex vous permet essentiellement de « fournir des informations pertinentes dans l’invite d’un LLM », uniquement au lieu d’alimenter le LLM toutes vos données personnalisées, « vous essayez de sélectionner les éléments utiles à chaque requête. »

En ce qui concerne la façon de procéder, il existe plusieurs méthodes. Vous pouvez utiliser le bon vieux ChatGPT, comme le montre ce tutoriel. Mais vous pouvez également utiliser LangChain. LlamaIndex vous permet d’utiliser n’importe quel chargeur de données comme outil LangChain, ainsi que de fournir des « abstractions d’outils afin que vous puissiez utiliser un moteur de requête LlamaIndex avec un agent Langchain ».

L’un des tutoriels proposés par LlamaIndex montre comment créer un « chatbot contextuel augmenté » en utilisant à la fois LangChain et LlamaIndex. « Nous utilisons Langchain pour les abstractions Agent/Chatbot sous-jacentes, et nous utilisons LlamaIndex pour la récupération/recherche/interrogation des données », explique la documentation.

Conclusion

Il est clair que LlamaIndex est plus un cadre de gestion de données que le cadre polyvalent fourni par LangChain. Mais la beauté de LlamaIndex est qu’il peut être utilisé avec LangChain. Ils sont compatibles entre eux, pas compétitifs.

Que le terme de « cadre d’orchestration » d’a16z soit ou non, une chose est sûre : LlamaIndex et LangChain sont des outils que les développeurs devraient avoir dans leur poche arrière lorsqu’ils travaillent avec des LLM.


Créé avec Sketch.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite