Stockage et récupération

Découvrez tout ce que le RAG Cookbook a à offrir pour mieux comprendre les solutions RAG actuelles

Leadspace remanié en s’appuyant sur le leadspace Watson pour l’assistance client.
Présentation

Cette section aborde les outils et les enjeux relatifs au stockage et à la récupération de la base de documents RAG. Nous traitons les deux sujets conjointement puisque la technologie de stockage limite les mécanismes de récupération disponibles pour interroger et récupérer les données stockées.

Outils IBM

IBM watsonx Discovery : une solution complète de recherche d’entreprise et de RAG

IBM watsonx Discovery, alimenté par IBM Cloud Databases for Elasticsearch, est une solution d’entreprise complète conçue pour prendre en charge et améliorer les cas d’utilisation de la recherche et de la génération augmentée par récupération (RAG). Doté de fonctionnalités robustes de recherche vectorielle, de recherche sémantique, de recherche fédérée, etc., watsonx Discovery propose un ensemble complet d’outils pour créer des applications contextuelles pilotées par l’IA. Il s’intègre de façon fluide à la plateforme d’IA conversationnelle d’IBM watsonx Assistant et aux couches d’orchestration telles que watsonx Orchestrate pour fournir des solutions métier avancées.

Pourquoi utiliser watsonx Discovery avec Elasticsearch ?

watsonx Discovery s’appuie sur les bases de données d’IBM Cloud for Elasticsearch, offrant un backend puissant et flexible pour gérer vos besoins de recherche d’entreprise :

  • Surveillance et contrôles de la santé : avec Elasticsearch, les développeurs bénéficient d’outils complets de surveillance et de contrôle de la santé pour garantir l’optimisation des intégrations, des métadonnées, de la taille des blocs et des structures des documents. La page web d’Elasticsearch permet une gestion et une mise à l’échelle simplifiées, en se concentrant sur le développement d’applications plutôt que sur les tâches opérationnelles telles que les sauvegardes, la journalisation, la surveillance et la configuration.

  • Fonctionnalités de recherche avancées : watsonx Discovery prend en charge divers algorithmes de recherche avancés, tels que la recherche sémantique éparse et dense, la recherche filtrée par métadonnées, la recherche lexicale, la recherche booléenne (ET/OU/NON/SLOP), la recherche par préfixe, la recherche floue et la recherche hybride. Ces capacités sont critiques pour les cas d’utilisation RAG impliquant des requêtes et documents complexes. Mettez en œuvre les types de recherche avancés décrits dans ce notebook pour optimiser votre déploiement.

  • Intégration avec les cadres des exigences LLM : la compatibilité d’Elasticsearch avec les cadres des exigences LLM les plus répandus, tels que LangChain et LlamaIndex, le rend idéal pour une intégration avec watsonx Discovery afin de propulser des solutions RAG.

Méthodes de recherche prises en charge par watsonx Discovery

watsonx Discovery est une solution polyvalente qui prend en charge un large éventail de méthodologies de recherche :

  • Recherche par mots-clés
  • Recherche sémantique
  • Recherche vectorielle
  • Recherche hybride (fusion des rangs réciproques)

Le modèle ELSER (Elastic Search Embeddings) est un modèle préconstruit d’embeddings utilisé pour la recherche sémantique, permettant une recherche contextuelle même sans avoir besoin de bases de données vectorielles personnalisées.

Recherche fédérée

watsonx Discovery prend en charge la recherche fédérée sur les déploiements existants, réduisant ainsi le besoin de stocker et de maintenir des données dupliquées. Cela permet d’effectuer des recherches à l’échelle de l’entreprise et d’extraire des données à partir de plusieurs silos.

Capacités d’ingestion de données et d’indexation riches

watsonx Discovery simplifie l’extraction et l’indexation du contenu grâce à une suite d’outils d’ingestion de données :

  • Extraction de contenu : la prise en charge d’un grand nombre de formats de fichiers, notamment DOCX, PDF et PPTX, facilite la recherche et l’indexation des informations essentielles à l’entreprise.
  • Intégration avec des tiers : connectez un large éventail de sources de données à l’aide de connecteurs prédéfinis et profitez ainsi d’une intégration fluide dans l’écosystème de données de votre entreprise.
  • Transformation des données : mettez en œuvre de puissants pipelines pour ingérer et enrichir les données, en veillant à ce qu’elles soient prêtes pour une récupération et des informations de haute qualité.
Illustration des caractéristiques et des capacités de watsonx Discovery par rapport aux bases de données vectorielles

Pour plus d’informations, consultez les ressources ElasticSearch suivantes pour accélérer le développement de watsonx Discovery :

Visualisation améliorée et Enterprise Search

watsonx Discovery s’intègre à Kibana et à Enterprise Search pour offrir une récupération et une visualisation d’informations évolutives et pilotées par l’IA, adaptées aux grands environnements d’entreprise :

  • Kibana pour la visualisation des données : créez des tableaux de bord et des visualisations personnalisés à partir des données ingérées par watsonx Discovery. Vous bénéficiez d’analyses en temps réel sur des indicateurs clés tels que l’extraction d’entités, l’analyse des sentiments et la classification des documents. Cela permet de suivre les tendances, les schémas et les anomalies dans les données non structurées, simplifiant le processus d’analyse et améliorant la prise de décision.

  • Enterprise Search pour une récupération évolutive : tirez parti du NLP et de la recherche sémantique pour permettre une récupération rapide et précise à travers des sources de données structurées et des données non structurées. Personnalisez la fonctionnalité de recherche pour indexer et extraire des données à partir de sources multiples, y compris des documents, des e-mails et des bases de données, afin de créer des applications de recherche spécifiques à un domaine qui s’intègrent directement dans le workflows de l’entreprise.

Confidentialité et sécurité

watsonx Discovery prend en charge de manière native le contrôle d’accès basé sur les rôles et les attributs afin de sécuriser l’accès au contenu et de protéger la confidentialité des données. Ainsi, les informations sensibles ne sont accessibles qu’aux utilisateurs autorisés, ce qui protège les données de l’entreprise.

Cas d’utilisation : watsonx Discovery et Orchestrate

watsonx Discovery peut être associé à watsonx Orchestrate pour améliorer les workflows d’automatisation grâce à la récupération de données contextuelle. Lorsqu’Orchestrate automatise un processus métier qui nécessite des informations sur des données non structurées, il s’appuie sur Discovery pour récupérer et analyser le contenu pertinent, ce qui lui permet d’effectuer des tâches intelligentes telles que :

  • Répondre aux requêtes par des réponses précises et étayées par des données.
  • Exécuter des workflows qui dépendent de la récupération de données et d’informations en temps réel.

IBM watsonx.data : un magasin de données moderne avec des capacités intégrées de base de données vectorielles

IBM watsonx.data est une puissante plateforme de données construite sur une architecture lakehouse ouverte, combinant les atouts des entrepôts de données et des lacs de données. Elle offre un point d’entrée unique pour accéder à toutes vos données via une couche de métadonnées partagée et ouverte, ce qui en fait une solution idéale pour les entreprises qui cherchent à rationaliser leur gestion des données. Avec la prise en charge des formats de données ouvertes, des capacités intégrées d’intégration vectorielle et une interface conversationnelle alimentée par l’IA générative pour l’analyse des données, watsonx.data améliore l’analyse en temps réel et les cas d’utilisation de l’IA. La plateforme s’intègre de façon fluide avec les bases de données et les outils existants tout en offrant des options de déploiement flexibles, incluant des configurations cloud et sur site.

Un composant clé d’IBM watsonx.data est watsonx.data Milvus, une base de données vectorielle open source spécifiquement conçue pour stocker, gérer et transférer des données vectorielles de haute dimension telles que les embeddings vectoriels. Cette base de données vectorielle hautement configurable est optimisée pour indexer et récupérer efficacement les vecteurs, ce qui la rend idéale pour les cas d’utilisation nécessitant des recherches de similarité vectorielle dans les applications d’IA. watsonx.data Milvus est particulièrement avantageux pour les clients utilisant watsonx.ai qui ont besoin d’une intégration fluide avec des bases de données vectorielles, ainsi que pour ceux qui souhaitent implémenter des frameworks open source comme LangChain, souvent utilisés dans les modèles de génération augmentée par la récupération (RAG).

Options de déploiement

IBM watsonx.data est disponible en trois options de déploiement pour répondre à différents besoins :

  • Solution SaaS entièrement gérée : disponible sur IBM Cloud et AWS, elle repose sur une approche sans intervention pour la configuration et la mise à l’échelle.
  • Logiciel conteneurisé autogéré : idéal pour les environnements sur site, tirant parti d’IBM Cloud Pak for Data et de Red Hat OpenShift.
  • Version développeur à encombrement réduit : convient aux environnements de développement utilisant des machines virtuelles uniques ou des ordinateurs portables, offrant la flexibilité nécessaire pour tester et créer des prototypes localement.

Pour les entreprises qui cherchent à tirer parti des bases de données vectorielles, watsonx.data prend en charge l’intégration avec l’open source Milvus, ce qui permet des capacités avancées telles que la recherche de similarité vectorielle, essentielle pour les applications d’IA en temps réel.

Premiers pas

Pour commencer à utiliser IBM watsonx.data, choisissez l’option de déploiement qui correspond le mieux à vos besoins :

  • Pour un déploiement IBM Cloud :
  • Consultez la page du catalogue consacrée à IBM Cloud pour watsonx.data.
  • Sélectionnez un forfait adapté à vos besoins.
  • Fournissez une instance.

  • Pour un déploiement sur site :

  • Obtenez les clés d’activation pour IBM watsonx.data dans IBM Cloud Pak for Data.
  • Obtenez les droits Red Hat OpenShift.
  • Suivez le guide de déploiement pour configurer le logiciel.

Documentation et support

IBM fournit une documentation complète pour vous aider à démarrer avec la plateforme principale watsonx.data et la base de données vectorielles Milvus :

En tirant parti de l’architecture ouverte de watsonx.data, de ses capacités intégrées de base de données vectorielle et de ses fonctionnalités avancées d’IA, les entreprises peuvent optimiser les processus d’ingénierie des données, améliorer l’analytique en temps réel et dégager de nouvelles connaissances grâce à des capacités alimentées par l’IA. Cette plateforme unifiée permet aux équipes de travailler avec des données structurées et des données non structurées de manière innovante, en réunissant l’analytique traditionnelle et la recherche de similarité vectorielle de pointe en une seule solution.

Watson Discovery

IBM Watson Discovery est un outil conçu pour récupérer et analyser des données non structurées. Sa principale fonctionnalité est la recherche par mot-clé, qui permet aux utilisateurs d’effectuer des recherches dans de vastes jeux de données en utilisant des termes ou des phrases spécifiques. Contrairement aux moteurs de recherche traditionnels qui ont tendance à utiliser la correspondance textuelle, Watson Discovery utilise le contexte derrière les mots-clés pour fournir un résultat plus pertinent.

Une autre capacité importante de Watson Discovery est l’extraction d’entités, ce qui signifie que Watson Discovery peut automatiquement extraire des éléments d’information clés tels que des personnes, des lieux, des entreprises et des dates à partir d’un texte non structuré. Ce processus structure les données de manière à ce qu’elles soient digestes et puissent être directement intégrées dans les réponses de RAG.

Outils open source

LangChain

De nombreuses applications LLM nécessitent des données spécifiques à l’utilisateur qui ne font pas partie de l’ensemble de données ayant servi à l’entraînement du modèle. Le principal moyen d’y parvenir est la génération augmentée de récupération (RAG). Dans ce processus, les données externes sont récupérées et transmises au LLM lors de l’étape de génération.

Illustration montrant le processus langchain de haut niveau pour l’ingestion et l’embedding de documents dans une solution RAG

LangChain prend en charge de nombreux algorithmes de récupération différents. LangChain prend en charge des méthodes basiques telles que la recherche sémantique. Cependant, nous avons également ajouté une série d’algorithmes pour améliorer les performances. En voici quelques exemples :

 

  • Récupérateur de document parent : cela vous permet de créer plusieurs intégrations par document parent et de rechercher de plus petits morceaux tout en obtenant un contexte plus large.
  • Récupérateur d’interrogations : les questions des utilisateurs contiennent souvent une référence qui n’est pas simplement sémantique, mais qui exprime plutôt une logique qui peut être représentée au mieux par un filtre de métadonnées. L’auto-requête vous permet d’analyser la partie sémantique d’une requête à partir d’autres filtres de métadonnées présents dans la requête.
  • Récupérateur d’ensemble : il peut arriver que vous souhaitiez récupérer des documents à partir de plusieurs sources différentes ou à l’aide de plusieurs algorithmes différents. Le récupérateur d’ensemble vous permet de le faire facilement.

Milvus

Milvus est une plateforme d’IA pour l’automatisation et l’extraction de données structurées à partir de documents non structurés. Elle est souvent utilisée avec watsonx Discovery pour certains scénarios de recherche. Milvus peut s’adapter à différents formats, ce qui la rend idéale pour les workflows de traitement à grande échelle. Pour un ingénieur en IA, il s’agit d’une solution évolutive qui réduit les efforts manuels liés à l’extraction des données tout en garantissant précision et efficacité.

watsonx Discovery contre Milvus

Milvus est avant tout une base de données vectorielle conçue pour la recherche de similarités dans de grands ensembles de données, en particulier pour les vecteurs de grande dimension. watsonx Discovery, en revanche, est spécialisé dans la recherche sémantique conversationnelle et la compréhension/le traitement des documents, avec un accent particulier sur les capacités de recherche conversationnelle et sémantique.w

watsonx.data

Milvus offre des fonctionnalités avancées telles que les vecteurs épars, les vecteurs en vrac, la recherche filtrée et les capacités de recherche hybrides. Elle présente également une architecture distribuée qui permet à la fois une mise à l’échelle horizontale et verticale, ce qui la rend très évolutive pour les jeux de données de grande taille.

Principaux avantages

Mise à l’échelle

Milvus peut gérer des données vectorielles à grande échelle et prend en charge des recherches de similarité vectorielle haute performance, essentielles pour les solutions RAG qui récupèrent des informations à partir de grands ensembles de données.

Intégration de données

Milvus s’intègre de façon fluide avec watsonx.data, simplifiant la gestion des données pour les modèles IA et l’application. Cela permet des cas d’utilisation évolutifs de RAG à grande échelle sur de vastes ensembles de données gouvernées.

Fonctionnalités avancées

Milvus propose des fonctionnalités avancées telles que le filtrage des métadonnées, l’amélioration de la pertinence des résultats de recherche et l’efficacité du système RAG.

Ressources

Tutoriels Milvus RAG

Utiliser les récupérateurs LangChain

Récupérateur open source avec LlamaIndex

Conseils, techniques et recommandations

Gestion de la duplication, de la priorité et de la distribution

Une base de données vectorielle de base fonctionne bien pour les solutions RAG simples, mais elle montre rapidement ses limites lorsqu’il y a plusieurs éléments d’information similaires dans le document (similaire n’est pas synonyme de pertinent), que les informations nécessaires pour répondre à une requête sont réparties dans plusieurs documents, ou qu’elles sont distribuées dans plusieurs sections d’un document. Pour mieux comprendre, voici quelques exemples :

Exemple 1

Une entreprise américaine possède des bureaux dans plusieurs États, chacun avec ses propres politiques en matière de ressources humaines. L’entreprise utilise un format de document commun pour les informations relatives aux ressources humaines dans tous ses bureaux. Si l’entreprise intégrait ses politiques de ressources humaines dans une base de données vectorielle, il y aurait plusieurs segments pour, par exemple, la procédure de demande de congés, chacun accompagné de textes différents, ce qui augmenterait fortement le risque d’hallucinations.

Exemple 2

Un contrat de services contient un glossaire de termes définis qui sont mis en majuscule pour indiquer la référence à la définition, par exemple le bailleur, la période d’évaluation, etc. Une analyse et un découpage naïfs du contrat, du début à la fin, aboutiraient à des interactions telles que celles décrites ci-dessous :

Question : Combien de temps Acme dispose-t-elle avant d’être facturée une fois les services terminés ?

Réponse : L’acheteur dispose d’un délai de grâce de 10 jours après la période d’évaluation avant que les services ne lui soient facturés.

Utile, mais cela entraînera très probablement des questions complémentaires et nécessitera quelques précisions supplémentaires pour fournir une réponse plus complète.

Exemple 3

Le gouvernement d’un État américain publie les modifications apportées à sa législation sous forme de « modifications » des lois existantes. Par exemple, « l’article 12.2 de la Loi sur le contrôle des stupéfiants est modifié afin d’exclure le cannabis et les produits dérivés du cannabis ». Comment une base de données vectorielle déterminera-t-elle que ce fragment de texte doit primer sur tous les autres segments traitant du cannabis ?

Hiérarchies de documents

Une hiérarchie de documents organise les morceaux de documents en catégories qui regroupent les documents connexes ; similaire à une table des matières ou à un ensemble de dossiers sur un ordinateur. L’utilisation d’une hiérarchie des documents permet à une solution RAG de « préciser » le sujet des requêtes des utilisateurs afin de ne récupérer que les documents les plus pertinents.

Structure générale d’une hiérarchie de documents pour une solution RAG

Si l’on applique ce principe à l’exemple du document RH multiétatique ci-dessus, une hiérarchie de documents utile classerait le document par État, ce qui permettrait à la solution RAG de ne récupérer que les morceaux de document relatifs à un État spécifique. Comme le montre la figure ci-dessous, une hiérarchie possible pourrait organiser les documents d’abord par pays, puis par État/province concerné, puis par domaine politique ou par sujet. Bien entendu, cela signifie que la solution devra soit déduire l’État concerné à partir de l’État de résidence indiqué par l’utilisateur, soit inviter l’utilisateur à fournir l’État qui l’intéresse.

Un exemple de hiérarchie documentaire des politiques d’entreprise pour une entreprise opérant dans plusieurs juridictions.

Mise en œuvre

Bases de données vectorielles hybrides

Les hiérarchies de documents peuvent être mises en œuvre dans les bases de données vectorielles hybrides, des bases de données vectorielles qui prennent en charge des schémas comprenant des types de données numériques et catégorielles ainsi que des vecteurs, tels que Milvus, en utilisant des champs de catégorie et de sous-catégorie dans le cadre des critères de recherche, comme indiqué dans la définition de schéma Milvus ci-dessous.

chunk_id = FieldSchema(
  name="chunk_id",
  dtype=DataType.INT64,
  auto_id=True,
)
state_id = FieldSchema(
  name="state_id",
  dtype=DataType.INT64,  
)
chunk = FieldSchema(
  name="chunk",
  dtype=DataType.FLOAT_VECTOR,
  dim=2
)
schema = CollectionSchema(
  fields=[chunk_id, state_id, chunk],
  description="HR documents by state"
)

Graphes de connaissances

Les graphes de connaissances capturent les relations entre les entités dans un document ou entre documents. Contrairement à une recherche de similarité dans une base de données vectorielle, un graphe de connaissance peut récupérer de manière cohérente et précise les relations et contenus pertinents, ce qui peut réduire considérablement la survenue des hallucinations. Associées à des recherches de similarité dans des bases de données vectorielles, les bases de graphes peuvent permettre aux solutions RAG de rassembler des contenus connexes à partir d’un document et/ou d’un ensemble de documents. L’image ci-dessous montre un graphe de connaissances potentiel pour un contrat de services.

 

Exemple de graphe de connaissances pour un contrat juridique

Bien que le meilleur graphe de connaissances pour une solution RAG soit conçu et maintenu par l’humain, l’utilisation d’un grand modèle de langage (LLM) pour analyser les entités et relations dans un document et créer un graphe de connaissances donne des résultats étonnamment bons.

Mise en œuvre

Neo4j

Neo4j est une base de données graphique open source (GPLv3) très populaire. Ce tutoriel guide le lecteur dans la configuration et le codage d’une solution RAG enrichie d’un graphe de connaissances avec neo4j et Langchain.

En savoir plus

Découvrez les derniers modèles technologiques, architectures de solutions et publications d’architecture d’IBM.

  1. Accéder au centre d’architecture d’IBM
Contributeurs

 

Rohan Singh, Fahad Bhutta, Luke Major, Chris Kirby, Sacha Mongrain

Mise à jour : 15 novembre 2024