Aller au contenu principal

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 :

  1. **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.
  2. 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.
  3. Génération : l'invite est transmise au LLM pour générer une réponse à la demande de l'utilisateur.

Le flux d'une application RAG, de la requête utilisateur à la récupération des données et à la réponse.

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 :

  1. 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.

  2. 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.
  3. **É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.

  4. 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.

Diagramme des composants de l’application RAG.

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.

  • PDF
  • 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 :

Étapes suivantes