Modèle de génération augmentée par récupération (RAG)
Vous pouvez créer un modèle de génération augmentée par la recherche (RAG) pour générer des résultats factuels fondés sur des informations provenant d'une base de connaissances.
Un modèle RAG traite le contenu d'une base de connaissances dans un format vectoriel facile à rechercher. Lorsqu'un utilisateur pose une question, le modèle RAG récupère un ensemble de passages pertinents et les fournit au LLM. Le LLM génère une réponse factuelle à la question de l'utilisateur.
Capacités et ressources du modèle RAG
Vous pouvez créer un modèle RAG avec les capacités et les ressources suivantes :
- Encastrements vectoriels
- Créez des encastrements vectoriels pour coder le sens d'une phrase ou d'un passage sous la forme d'une représentation numérique. Les vecteurs constituent un moyen efficace de trouver dans votre base de connaissances les passages de texte les plus similaires à la question posée par l'utilisateur. Les vecteurs sont stockés dans des bases de données vectorielles et récupérés à l'aide d'un index vectoriel.
- Voir Création d'un index vectoriel.
- extraction de texte
- Convertissez le contenu d'un PDF ou d'une image en texte pour la vectorisation.
- Voir Extraction de texte à partir de documents.
- Passage récupéré reranking
- Renouveler le classement de l'ensemble des premiers résultats obtenus en fonction de la pertinence plutôt que de la similarité.
- Voir les passages du document Reranking.
- Magasins de vecteurs
- Vous avez le choix entre le magasin de vecteurs Chroma en mémoire, le magasin de vecteurs watsonx.data Milvus qui est automatiquement mis en place, ou d'autres magasins de vecteurs avec lesquels vous créez des connexions.
- Voir Types de magasins vectoriels.
- Modèles d'encodeurs pour l'incorporation et le reranking
- Choisissez parmi les modèles d'encodeurs de IBM et de tiers pour créer des embeddings et des passages de reranking.
- Voir Modèles de fondations d'encodeurs pris en charge.
- Modèles de base pour l'inférence
- Choisissez parmi une gamme de modèles de base, sélectionnez un modèle de déploiement à la demande ou importez et déployez un modèle personnalisé.
- Voir les modèles de la Fondation qui correspondent à votre cas d'utilisation.
- Échantillons à adapter
- Commencez par un exemple de modèle RAG et adaptez-le à votre cas d'utilisation.
- Voir les exemples de modèles RAG.
Façons de travailler
Vous pouvez écrire du code pour votre modèle RAG à l'aide des méthodes suivantes :
Vous pouvez travailler en mode "no-code" ou "low-code" avec des outils de l'interface utilisateur :
- Prompt Lab : Vous pouvez chatter avec un document téléchargé ou avec un index vectoriel.
- AutoAI pour RAG : vous pouvez automatiser la recherche d'un modèle RAG optimisé et de qualité de production.
- Index vectoriel : Vous pouvez créer un index vectoriel basé sur un ou plusieurs documents.
L'architecture du modèle de génération augmentée par l'extraction
Vous pouvez étendre la technique d'inclusion du contexte dans vos messages-guides en utilisant des informations provenant d'une base de connaissances.
Cette vidéo fournit une méthode visuelle pour apprendre les concepts et les tâches de cette documentation.
Chapitres de la vidéo
[ 0:08 ] Description du scénario
[ 0:27 ] Aperçu du modèle
[ 1:03 ] Base de connaissances
[ 1:22 ] Composant de recherche
[ 1:41 ] Invite enrichie du contexte
[ 2:13 ] Génération de la sortie
[ 2:31 ] Solution complète
[ 2:55 ] Considérations relatives à la recherche
[ 3:58 ] Considérations relatives au texte de l'invite
[ 5:01 ] Considérations relatives à l'explicabilité
Le diagramme suivant illustre le modèle de génération augmentée par récupération au moment de l'exécution. Bien que le diagramme montre un exemple de réponse à des questions, le même flux de travaux prend en charge d'autres cas d'utilisation.
Le modèle de génération augmentée par récupération comprend les étapes suivantes :
- Votre base de connaissances est prétraitée pour convertir le contenu en texte brut et le vectoriser. Le prétraitement peut inclure l'extraction de texte pour convertir les informations contenues dans les tableaux et les images en texte que le LLM peut interpréter.
- Un utilisateur pose une question.
- La question est convertie en un texte intégré.
- Le magasin de vecteurs qui contient le contenu vectoriel de la base de connaissances est parcouru à la recherche d'un contenu similaire à la question de l'utilisateur.
- Les résultats de recherche les plus pertinents sont ajoutés à l'invite sous forme de texte, accompagnés d'une instruction, telle que "Répondez à la question suivante en utilisant uniquement les informations contenues dans les passages suivants"
- Le texte combiné de l'invite (instruction + résultats de la recherche + question) est envoyé au modèle de base.
- Le modèle de base utilise les informations contextuelles de l'invite pour générer une réponse factuelle.
Base de connaissance
Votre base de connaissances peut être n'importe quelle collection d'artefacts contenant des informations, comme par exemple :
- Informations sur les processus dans les pages wiki internes de la société
- Dossiers en GitHub
- Messages dans un outil de collaboration
- Rubriques de la documentation du produit, qui peuvent inclure des blocs de texte longs
- Passages de texte dans une base de données prenant en charge les requêtes SQL (Structured Query Language), telles que Db2
- Un magasin de documents avec une collection de fichiers, tels que des contrats juridiques stockés sous forme de fichiers PDF
- Tickets de support client dans un système de gestion de contenu
La plupart des magasins vectoriels et AutoAI prennent en charge les fichiers de type PDF, HTML, DOCX, MD ou texte brut. Voir Mise à la terre des types de fichiers de documents.
Prétraitement du contenu
Lorsque vous configurez votre modèle RAG, vous traitez au préalable les documents de votre base de connaissances. Le prétraitement convertit d'abord le contenu en texte brut. Vous pouvez configurer l'extraction de texte pour convertir les informations contenues dans les tableaux et les images en texte que le LLM peut interpréter. Ensuite, le modèle d'intégration vectorise le texte, le stocke dans la base de données vectorielle et crée un index vectoriel pour retrouver le contenu.
Lorsqu'un utilisateur pose une question, le texte est vectorisé par le modèle d'intégration.
Recherche de contenu et classement
Le récupérateur recherche dans la base de données vectorielles le contenu le plus similaire à l'intégration vectorielle du texte de la requête. Les passages extraits sont classés par ordre de similitude avec la question. Vous pouvez ajouter un modèle de reclassement à votre modèle RAG afin d'évaluer la pertinence des passages les plus recherchés pour répondre à la question.
Génération de réponses
Le passage extrait, la question de l'utilisateur et les instructions sont envoyés au modèle de fondation dans une invite. Le modèle de base génère une réponse et la renvoie à l'utilisateur.
Exemples de modèles RAG
Les exemples suivants montrent comment appliquer le modèle de génération augmentée par la recherche.
Exemple | Format | Descriptif | Lier |
---|---|---|---|
Solution complète RAG | Projet | Cet exemple de projet contient des carnets de notes et d'autres ressources qui mettent en œuvre une solution de questions-réponses en utilisant la génération augmentée par récupération. Voir les questions-réponses avec RAG Accelerator. | Questions et réponses avec un exemple de projet RAG Accelerator. |
Introduction simple | Bloc-notes | Utilise une petite base de connaissances et un composant de recherche simple pour illustrer le modèle de base. | Introduction à la génération augmentée par la recherche |
Introduction simple avec Discovery | Bloc-notes | Cet exemple de bloc-notes utilise des articles courts dans IBM Watson Discovery comme base de connaissances et l'API Discovery pour effectuer des requêtes de recherche. | Introduction simple à la génération augmentée par la recherche avec watsonx.ai et Discovery |
Exemple avec LangChain | Bloc-notes | Contient les étapes et le code pour démontrer la prise en charge de la génération augmentée par récupération avec LangChain dans watsonx.ai. Il introduit des commandes pour l'extraction de données, la création et l'interrogation de bases de connaissances et le test de modèles. | Utiliser watsonx et LangChain pour répondre aux questions en utilisant RAG |
Exemple avec LangChain et une base de données vectorielle Elasticsearch | Bloc-notes | Montre comment utiliser LangChain pour appliquer un modèle d'imbrication à des documents dans une base de données vectorielle Elasticsearch . Le bloc-notes indexe ensuite et utilise le magasin de données pour générer des réponses aux questions entrantes. | Utiliser watsonx, Elasticsearch et LangChain pour répondre aux questions (RAG) |
Exemple avec la bibliothèque Elasticsearch Python | Bloc-notes | Démontre comment utiliser la bibliothèque Elasticsearch Python pour appliquer un modèle d'intégration à des documents dans une base de données vectorielle Elasticsearch . Le bloc-notes indexe ensuite et utilise le magasin de données pour générer des réponses aux questions entrantes. | Utiliser watsonx et la bibliothèque Elasticsearch Python pour répondre aux questions (RAG) |
Exemple avec LangChain et une base de données SingleStoreDB | Bloc-notes | Montre comment appliquer la génération augmentée par récupération à de grands modèles linguistiques dans watsonx en utilisant la base de données SingleStoreDB. | RAG avec SingleStoreDB et watsonx |
En savoir plus
Essayez les tutoriels suivants:
- Créer un modèle de base en utilisant Prompt Lab
- Générer un modèle de base avec le modèle de génération amélioré par la récupération
Sujet parent : Solutions d'IA générative