Filtrage des métadonnées, recherche hybride ou agent lors de la création de votre application RAG
Qu’est-ce que RAG ?
La génération augmentée par récupération (RAG) est une technique qui améliore les LLM en intégrant des sources de données supplémentaires. Une application RAG typique implique :
Indexation - un pipeline pour ingérer des données depuis une source et les indexer, ce qui consiste généralement à charger, diviser et trier les données dans Milvus.
Récupération et génération - Au moment de l’exécution, RAG traite la requête de l’utilisateur, récupère les données pertinentes depuis l’index stocké dans Milvus, et le LLM génère une réponse basée sur ce contexte enrichi.
Il existe différentes façons d’améliorer votre application RAG. Dans cet article de blog, nous verrons comment la base de données vectorielle Milvus peut améliorer les performances de vos applications RAG grâce à ses fonctionnalités de filtrage des métadonnées, de recherche hybride et d’agents.
Filtrage des métadonnées
Lorsque vous insérez vos données dans Milvus, il est utile d’inclure des métadonnées à propos de vos données. Par exemple, si vous travaillez avec des PDF, vous pouvez insérer la page à laquelle appartiennent les vecteurs, le nom du fichier PDF, l’auteur, etc.
Le stockage des métadonnées dans Milvus vous permet de filtrer les données non pertinentes, rendant votre récupération plus rapide et plus efficace. Cette approche peut être particulièrement utile avec votre application RAG, car vous pouvez vous assurer de ne renvoyer au LLM que le contenu pertinent pour la requête de votre utilisateur.
Milvus prend en charge la correspondance de métadonnées sur des chaînes complètes, ce qui permet de faire correspondre des chaînes à l’aide de recherches par préfixe, infixe, suffixe, ou même avec caractère générique.
# Prefix example, matches any string starting with “The”.
expression='title like "The%"'
# Infix example, matches any string with the word “the” anywhere in the sentence.
expression='title like "%the%"'
# Postfix example, matches any string ending with “Rye”.
expression='title like "%Rye"'
# Single character wildcard example, matches any one single character at a specific position.
expression='title like "Flip_ed"'
Il est également possible d’utiliser des valeurs de tableau, soit par correspondances exactes, soit en vérifiant si des éléments du tableau correspondent avec contains_any().
Recherche hybride
Milvus autorise jusqu’à 10 champs vectoriels dans une seule collection de jeu de données. Cette prise en charge permet la recherche hybride, permettant aux utilisateurs d’effectuer des recherches simultanément dans plusieurs colonnes vectorielles. Cette capacité facilite la recherche multimodale, la recherche hybride clairsemée et dense, ainsi que la recherche hybride dense et en texte intégral, offrant une fonctionnalité de recherche polyvalente et flexible.
Les vecteurs dans différentes colonnes représentent divers aspects des données générées par différents modèles d’embeddings avec des méthodes de traitement distinctes. Les résultats de recherche hybride sont ensuite combinés et rerankés à l’aide de diverses stratégies de reranking.
Fonctionnement de la recherche hybride dans Milvus
Représenter plusieurs perspectives de l’information. Par exemple, dans l’e-commerce, les images de produits incluent des vues de face, de côté et du dessus. Différentes vues peuvent être représentées avec différents types ou dimensions de vecteurs.
Utiliser différents types d’embeddings vectoriels. Cela inclut les embeddings denses issus de modèles comme BERT et Transformers, ainsi que les embeddings clairsemés issus d’algorithmes comme BM25, BGE-M3 et SPLADE.
Prendre en charge la fusion de vecteurs multimodaux issus de divers types de données non structurées tels que les images, les vidéos, l’audio et les fichiers texte. Par exemple, dans les enquêtes criminelles, les suspects peuvent être représentés au moyen de modalités biométriques telles que les empreintes digitales, les empreintes vocales et la reconnaissance faciale, ce qui aide à identifier les individus à travers différentes modalités.
Prendre en charge la fusion de la recherche vectorielle et de la recherche en texte intégral.
Agents dans les applications RAG
Les grands modèles de langage ne peuvent pas effectuer d’actions eux-mêmes : ils produisent simplement du texte. Les agents sont des systèmes qui utilisent les LLM comme moteurs de raisonnement pour déterminer quelles actions entreprendre et quelles entrées leur transmettre. Après l’exécution des actions, les résultats peuvent être renvoyés au LLM pour déterminer si d’autres actions sont nécessaires ou s’il est possible de terminer.
Ils peuvent être utilisés pour effectuer des actions telles que rechercher sur le web, parcourir vos e-mails, corriger le RAG afin d’ajouter de l’auto-réflexion ou de l’auto-évaluation sur les documents récupérés, et bien plus encore.
Une fois configurés, les agents peuvent ajouter de nouvelles données dans Milvus si les données ne sont pas déjà stockées, ou ils peuvent également les récupérer et les renvoyer à votre LLM. Cela permet à votre système RAG de rester à jour. Milvus facilite également la mise à jour de vos données si nécessaire avec la fonction ``` upsert()` ``.
C’est pourquoi il est important d’avoir des métadonnées dans votre collection, car cela vous permet de n’upsert que les informations nécessaires.
N’hésitez pas à consulter notre blog où nous montrons comment créer un système RAG agentique local avec LangGraph, Llama 3 et Milvus
Conclusion
Pour conclure, l’utilisation du filtrage par métadonnées, de la recherche hybride et des agents, tous intégrés dans Milvus, peut améliorer votre application RAG.
Le filtrage par métadonnées vous permet d’enrichir vos données avec des attributs supplémentaires, permettant des recherches précises et efficaces. La recherche hybride étend les capacités de recherche en permettant des requêtes sur plusieurs colonnes vectorielles. Les agents poussent la fonctionnalité un cran plus loin en automatisant les actions en fonction de la sortie du LLM.
Vous pouvez créer une application RAG plus robuste et plus efficace en utilisant ces stratégies.
Si vous avez apprécié cet article de blog, pensez à nous donner une étoile sur Github et à rejoindre notre Discord pour partager vos expériences avec la communauté.
Continuer à lire

Introducing Functions and Model Inference on Zilliz Cloud: Automatic Embedding and Reranking with Hosted Models
Zilliz Cloud Functions auto-generate embeddings via OpenAI, Voyage AI, Cohere, or Zilliz Hosted Models. Built-in reranking — just insert text and search.

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Build for the Boom: Why AI Agent Startups Should Build Scalable Infrastructure Early
Explore strategies for developing AI agents that can handle rapid growth. Don't let inadequate systems undermine your success during critical breakthrough moments.



