Avec l'intégration rapide de l'IA générative dans le processus de développement d'applications, nous constatons un besoin croissant de pouvoir intégrer nos données privées avec les données publiques utilisées pour la formation.
Dans un récent webinaire sur
Dans cet article, nous expliquerons comment LlamaIndex peut être utilisé comme cadre pour l'intégration, l'organisation et la récupération de données pour tous vos besoins en IA générative de données privées.
Comme indiqué précédemment, LlamaIndex est un cadre d'orchestration ou « cadre de données » qui simplifie la création d'applications LLM. Il offre la possibilité d'effectuer une augmentation des données privées, ce qui permet de les intégrer dans des LLM pour la génération de connaissances et le raisonnement. Les données sont au cœur de toutes les fonctionnalités de l’IA générative. Les applications d'entreprise doivent pouvoir accéder à plus que les données publiques sur lesquelles les LLM sont formés et doivent intégrer des données structurées, non structurées et semi-structurées provenant de toutes leurs sources de données internes et externes pour créer des applications.
C'est cette intégration de données que fournit LlamaIndex. Apporter des données provenant de plusieurs sources uniques.
LlamaIndex, anciennement connu sous le nom de GPT Index, est un framework qui fournit les outils nécessaires pour gérer le cycle de vie de bout en bout pour la création d'applications basées sur LLM. Le défi de la création d'applications basées sur LLM est qu'elles ont besoin de données, généralement provenant de plusieurs sources différentes, et à moins qu'il n'y ait une forte adhésion à une représentation commune des données, les données requises sont dans de nombreux formats différents, certains hautement structurés, d'autres non structurés et d'autres encore. entre.
C'est là que LlamaIndex fournit la boîte à outils pour déverrouiller ces données avec des outils d'ingestion et d'indexation de données. Une fois ingéré et indexé,
LlamaIndex dispose de centaines de chargeurs de données qui offrent la possibilité de connecter des sources de données personnalisées aux LLM. Il connecte des solutions prédéfinies telles qu'Airtable, Jira, Salesforce et bien d'autres à des plugins génériques pour charger des données à partir de fichiers, de documents JSON, de fichiers CSV simples et de données non structurées.
Une liste complète des chargeurs de données peut être trouvée sur le
Une fois les données ingérées, elles doivent être représentées mathématiquement afin qu'elles puissent être facilement interrogées par un LLM. Avec LlamaIndex, un index offre simplement la possibilité de représenter mathématiquement des données dans plusieurs dimensions différentes. L'indexation des données n'est pas un concept nouveau. Cependant, grâce au machine learning, nous pouvons étendre la granularité de l'indexation d'une ou deux dimensions (représentation clé/valeur par exemple) à des centaines ou des milliers de dimensions.
L'approche la plus courante pour indexer les données pour l'apprentissage automatique et les LLM est appelée index vectoriel ; une fois les données indexées, la représentation mathématique des données est appelée intégration vectorielle. Il existe de nombreux types de modèles d'indexation et d'intégration, mais une fois les données intégrées, la représentation mathématique des données peut être utilisée pour fournir une recherche sémantique, car des éléments comme un texte ayant des significations similaires auront une représentation mathématique similaire. Par exemple, le roi et la reine peuvent être fortement liés si la requête porte sur la royauté, mais pas fortement liés si la requête porte sur le sexe.
C’est là qu’une partie du véritable pouvoir de LlamaIndex et des LLM entre en jeu. Étant donné que l'interrogation de données à l'aide de LlamaIndex n'est pas une série complexe de commandes pour fusionner/rejoindre et trouver les données, elle est représentée en langage naturel via un concept appelé
LlamaIndex propose plusieurs modèles d'indexation différents conçus pour fournir des optimisations sur la façon dont vous souhaitez explorer et catégoriser vos données. C'est finalement là que de nombreux gains peuvent être réalisés. Si vous connaissez le type d'opération que votre application doit effectuer sur les données, l'exploitation d'un type d'index spécifique peut apporter un avantage significatif à l'application utilisant le LLM et instanciant la requête.
Un index de liste est une approche qui décompose les données et représente les données sous la forme d'une liste séquentielle. L'avantage que cela présente est que, même si les données peuvent être explorées de manière multidimensionnelle, la principale optimisation de l'interrogation des données se fait via un modèle séquentiel. Ce type d'index fonctionne bien avec les objets structurés qui se produisent au fil du temps, comme les journaux de modifications dans lesquels vous souhaitez demander comment les choses ont changé au fil du temps.
Lors de l'utilisation d'un index arborescent, LlamaIndex prend les données d'entrée et les organise dans une structure arborescente binaire où les données sont organisées en nœuds parents et feuilles. Un index d'arborescence offre la possibilité de parcourir de grandes quantités de données et de construire des réponses là où vous devez extraire des segments spécifiques des textes en fonction de la façon dont la recherche parcourt l'arborescence. L'indexation des arbres fonctionne mieux dans les cas où vous disposez d'un modèle d'informations que vous souhaitez suivre ou valider, comme la création d'un chatbot de traitement du langage naturel au-dessus d'un moteur d'assistance/FAQ.
Lors de l’utilisation du type d’index de magasin vectoriel, LlamaIndex stocke les notes de données sous forme d’incorporations vectorielles. Il s'agit probablement du type d'indexation le plus courant car il offre la possibilité d'utiliser la représentation des données de plusieurs manières différentes, y compris la recherche vectorielle ou la recherche de similarité. Lorsque les données sont indexées avec un index de magasin vectoriel, elles peuvent être exploitées localement pour des ensembles de données plus petits et par une seule application ou pour des ensembles de données plus grands et/ou pour être utilisées dans plusieurs LLM/applications différentes, elles peuvent être stockées dans une base de données vectorielle hautes performances. comme
L'indexation de mots-clés s'apparente davantage à l'approche traditionnelle consistant à mapper une balise de métadonnées, c'est-à-dire un mot-clé à des nœuds spécifiques contenant ces mots-clés. Ce mappage crée un réseau de relations basé sur des mots-clés, car un mot-clé peut être mappé à plusieurs nœuds différents et un nœud peut être mappé à plusieurs mots-clés différents. Ce modèle d'indexation fonctionne bien si vous cherchez à baliser de gros volumes de données et à les interroger en fonction de mots-clés spécifiques qui peuvent être interrogés sur plusieurs ensembles de données différents. Par exemple, des informations juridiques, des dossiers médicaux ou toute autre donnée qui doit être alignée en fonction de types spécifiques de métadonnées.
L'une des grandes questions qui se posent est de savoir comment LlamaIndex et LangChain se comparent : offrent-ils des fonctionnalités similaires ou se complètent-ils ? La réalité est que LlamaIndex et LangChain offrent les deux faces d’une même médaille. Bien qu'ils soient tous deux conçus pour fournir une interface aux LLM et à l'apprentissage automatique dans votre application, LlamaIndex est conçu et construit spécifiquement pour fournir des capacités d'indexation et d'interrogation pour une recherche intelligente de données. De l'autre côté de la médaille se trouve la possibilité d'interagir avec les données soit via le traitement du langage naturel, c'est-à-dire en créant un chatbot pour interagir avec vos données, soit en utilisant ces données pour piloter d'autres fonctions comme l'appel de code.
LlamaIndex offre la possibilité de stocker les données dont vous disposez dans une variété de formats différents et d'extraire ces données de nombreuses sources différentes, fournissant ainsi le comment pour votre application d'IA générative.
LangChain offre la possibilité de faire quelque chose avec ces données une fois qu'elles ont été stockées, de générer du code, de fournir des réponses génératives aux questions et de prendre des décisions, fournissant ainsi le quoi pour votre application d'IA générative.
Avec LlamaIndex, vous disposez d'un cadre de données/orchestration facile à utiliser pour ingérer, indexer et interroger vos données afin de créer des applications d'IA génératives. Bien que nous fournissions un exemple simple ci-dessus pour commencer, la véritable puissance de LlamaIndex vient de la capacité à créer des applications d'IA basées sur les données. Vous n'avez pas besoin de recycler les modèles, vous pouvez utiliser LlamaIndex et une base de données vectorielles hautement évolutive pour créer des moteurs de requête personnalisés, des chatbots conversationnels ou des agents puissants capables d'interagir avec la résolution de problèmes complexes en interprétant dynamiquement les données entrantes et en les rendant contextuelles. décisions en temps réel.
Ainsi, lorsque vient le temps de créer une application d'IA générative qui nécessite la capacité d'exploiter vos données privées et de les intégrer dans la capacité d'une application à interagir et à répondre à ces données, LlamaIndex est un excellent point de départ pour l'ingestion, l'indexation et les requêtes. Mais ne répétez pas les erreurs du passé et ne cloisonnez pas les données que vous utilisez, intégrez et auxquelles vous accédez pour les applications d’IA. Créez une solution complète de bout en bout qui inclut le stockage de ces intégrations et index dans un magasin de vecteurs hautement évolutif comme Astra DB.
Pour démarrer avec LlamaIndex et voir comment DataStax et LlamaIndex sont meilleurs ensemble, consultez le récent article du blog DataStax, «
Vous pouvez trouver plus d'informations sur la façon de configurer et de déployer Astra DB sur l'un des magasins de vecteurs les plus performants au monde, construit sur Apache Cassandra, conçu pour gérer d'énormes volumes de données à grande échelle. Pour commencer gratuitement,
- Par Bill McLane, DataStax
Également publié ici.