RAG (Retrieval Augmented Generation) sur Databricks
La génération augmentée par récupération (RAG) est une technique puissante qui combine des grands modèles linguistiques (LLM) avec la récupération de données en temps réel pour générer des réponses plus précises, à jour et contextuellement pertinentes.
Cette approche est particulièrement précieuse pour répondre aux questions concernant des information propriétaires, fréquemment modifiées ou spécifiques à un domaine.
Qu’est-ce que la génération augmentée de récupération ?
Dans sa forme la plus simple, un agent RAG effectue les opérations suivantes :
- **Récupération** : la requête de l'utilisateur est utilisée pour interroger une base de connaissances externe, telle qu'un magasin de vecteurs, une recherche par mots-clés ou une base de données SQL. L'objectif est d'obtenir des données complémentaires pour la réponse du LLM.
- Augmentation : Les données d’appui sont combinées à la requête de l’utilisateur, souvent à l’aide d’un Template comportant un formatage et des instructions supplémentaires pour le LLM, afin de créer un prompt.
- Génération : l'invite est transmise au LLM pour générer une réponse à la demande de l'utilisateur.
Avantages du RAG
La RAG améliore les LLM des manières suivantes :
- Connaissances propriétaires : La RAG peut inclure des informations propriétaires non utilisées initialement pour entraîner le LLM, telles que des mémos, des e-mails et des documents pour répondre à des questions spécifiques au domaine.
- Informations à jour : une application RAG peut fournir au LLM des informations provenant d'une base de connaissances mise à jour.
- **Citer les sources** : RAG permet aux LLM de citer des sources spécifiques, permettant aux utilisateurs de vérifier l'exactitude factuelle des réponses.
- Sécurité des données et listes de contrôle d'accès (ACL) : L'étape de récupération peut être conçue pour récupérer sélectivement des informations personnelles ou propriétaires en fonction des informations d'identification de l'utilisateur.
Composants RAG
Une application RAG typique implique plusieurs étapes :
-
Pipeline de données : Prétraiter et indexer des documents, des tables ou d'autres données pour une récupération rapide et précise.
-
chaîne RAG (retrieval, augmentation, generation) : appelez une série (ou chaîne) d'étapes pour :
- Comprendre la question de l'utilisateur.
- Récupérer les données de support.
- Augmentez le prompt avec des données d’assistance.
- Générez une réponse d'un LLM en utilisant l'invite augmentée.
-
**Évaluation et monitoring** : évaluez l’application RAG afin de déterminer sa qualité, son coût et sa latence pour vous assurer qu’elle répond à vos exigences métier.
-
Gouvernance et LLMOps : Suivez et gérez le cycle de vie de chaque composant, y compris le data lineage et les contrôles d'accès.
Types de données RAG : structurées et non structurées
L'architecture RAG peut fonctionner avec des données de support non structurées ou structurées. Les données que vous utilisez avec la RAG dépendent de votre cas d'utilisation.
Données non structurées : Données sans structure ni organisation spécifique.
- Documents Google/Office
- Wikis
- Images
- VIDÉOS
Données structurées : Données tabulaires organisées en lignes et colonnes avec un schéma spécifique, telles que des tables dans une base de données.
- Enregistrements client dans un système BI ou Data Warehouse
- Données transactionnelles d'une base de données SQL
- Données provenant des APIs d'applications (par ex., SAP, Salesforce, etc.)
Évaluation et monitoring
L’évaluation et le monitoring aident à déterminer si votre application RAG répond à vos exigences en matière de qualité, de coût et de latence. L’évaluation a lieu pendant le développement, tandis que le monitoring se produit une fois que l’application est déployée en production.
Le RAG sur des données non structurées comporte de nombreux composants qui influent sur la qualité. Par exemple, les modifications de formatage des données peuvent influencer les blocs récupérés et la capacité du LLM à générer des réponses pertinentes. Il est donc important d'évaluer les composants individuels en plus de l'application globale.
Pour plus d'informations, consultez Agent Evaluation (MLflow 2).
RAG sur Databricks
Databricks propose une plateforme de bout en bout pour le développement RAG, y compris :
- Pipelines de données intégrés avec Delta Lake et Lakeflow Pipelines
- Recherche IA évolutive avec Databricks AI Search. (Databricks AI Search était anciennement connu sous le nom de Databricks Vector Search.)
- Service de modèles et outils d'orchestration
- Évaluation Gen AI pour améliorer les performances et la qualité
- monitoring Gen AI pour les applications RAG déployées
- Gouvernance et sécurité intégrées, consultez le Centre de sécurité et de confiance et l'AI Gateway.
Étapes suivantes
-
Découvrez les pipelines de données, un composant clé des applications RAG. Voir Créer un pipeline de données non structurées pour le RAG
-
Utilisez l'AI Playground pour prototyper votre propre agent RAG. Consultez Get start: interroger des LLM et prototyper des agents d'IA sans code.
-
Utilisez Knowledge Assistant pour créer un agent RAG en tant que chatbot sur vos documents et en tant qu'Endpoint que vous pouvez utiliser dans des applications en aval. Consultez Utiliser l’Assistant de connaissances pour créer un chatbot de haute qualité à partir de vos documents.