Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La récupération augmentée de génération (RAG) est un modèle qui combine la recherche avec des modèles de langage volumineux (LLMs) afin que les réponses soient ancrées dans vos données. Cet article explique comment RAG fonctionne dans Microsoft Foundry, quel rôle jouent les index et comment la récupération agentique modifie les modèles RAG classiques.
Les modules LLM sont formés sur les données publiques disponibles au moment de l’entraînement. Si vous avez besoin de réponses basées sur vos données privées ou sur des informations fréquemment modifiées, RAG vous aide à :
- Récupérez des informations pertinentes à partir de vos données (souvent par le biais d’un index).
- Fournissez ces informations au modèle en tant que données de base.
- Générez une réponse qui peut inclure des citations vers le contenu source.
Qu’est-ce que RAG ?
Les modèles de langage volumineux (LLMs) comme ChatGPT sont formés sur des données Internet publiques disponibles lors de l’apprentissage du modèle. Les données publiques peuvent ne pas être suffisantes pour vos besoins. Par exemple, vous pouvez souhaiter des réponses basées sur des documents privés, ou bien avoir besoin d'informations à jour.
RAG traite cela en récupérant du contenu pertinent à partir de vos données et en l’incluant dans l’entrée du modèle. Le modèle peut ensuite générer des réponses ancrées dans le contenu récupéré.
Concepts clés pour RAG :
- Données de base : contenu récupéré que vous fournissez au modèle pour réduire les estimations.
- Index : structure de données optimisée pour la récupération (mot clé, sémantique, vecteur ou recherche hybride).
- Incorporations : représentations numériques du contenu utilisés pour la recherche de similarité vectorielle. Consultez Comprendre les incorporations.
- Message système et invites : instructions qui guident la façon dont le modèle utilise le contenu récupéré. Consultez l'ingénierie des invites et les messages du système de sécurité.
Comment fonctionne RAG ?
RAG suit un flux en trois étapes :
- Récupérer : lorsqu’un utilisateur pose une question, votre application interroge un index ou un magasin de données pour trouver du contenu pertinent.
- Augment : l’application combine la question de l’utilisateur et le contenu récupéré (données de référence) dans une invite.
- Générer : le modèle reçoit l’invite augmentée et génère une réponse ancrée dans le contenu récupéré, réduisant ainsi les inexactitudes et activant des citations précises.
Qu’est-ce qu’un index et pourquoi ai-je besoin de celui-ci ?
RAG fonctionne le mieux lorsque vous pouvez récupérer du contenu pertinent rapidement et de manière cohérente. Un index permet d’organiser votre contenu pour une récupération efficace.
De nombreuses solutions RAG utilisent un index qui prend en charge un ou plusieurs de ces modes de récupération :
- Recherche de mots clés
- Recherche sémantique
- Recherche vectorielle
- Recherche hybride (mot clé + vecteur, parfois avec classement sémantique)
Un index peut également stocker des champs qui améliorent la qualité des citations (par exemple, les titres de document, les URL ou les noms de fichiers).
Foundry peut connecter votre projet à un service de Recherche Azure AI et à un index pour la récupération. En fonction de la fonctionnalité et de l’aire d’API que vous utilisez, ces informations de connexion peuvent être représentées en tant que connexion de projet ou ID de ressource d’index.
Par exemple, la préversion de l’API REST du projet Foundry inclut un champ index_asset_id pour les ressources d’index de recherche Azure AI. Consultez API REST de Foundry Project en préversion.
Recherche Azure AI est un magasin d’index recommandé pour les scénarios RAG. Recherche Azure AI prend en charge la récupération sur les données vectorielles et textuelles stockées dans les index de recherche, et peut également interroger d’autres cibles si vous utilisez la récupération agentique. Consultez Qu’est-ce que Recherche Azure AI ?.
RAG agentique : approche moderne de la récupération
Les modèles RAG traditionnels utilisent souvent une requête unique pour récupérer des informations à partir de vos données. La récupération agentique, également appelée RAG agentique, est une évolution de l’architecture de récupération qui utilise un modèle pour décomposer les entrées complexes en plusieurs sous-requêtes ciblées, les exécuter en parallèle et retourner des données de base structurées qui fonctionnent bien avec les modèles d’achèvement de conversation.
La récupération agentique offre plusieurs avantages par rapport au RAG classique :
- Planification des requêtes prenant en compte le contexte : utilise l’historique des conversations pour comprendre le contexte et l’intention. Les questions de suivi conservent le contexte des échanges antérieurs, ce qui rend les conversations à tours multiples plus naturelles.
- Exécution parallèle : exécute plusieurs sous-requêtes ciblées simultanément pour une meilleure couverture. Au lieu de récupérer à partir d’une requête unique de manière séquentielle, l’exécution parallèle réduit la latence et récupère des résultats plus variés.
- Réponses structurées : retourne des données de base, des citations et des métadonnées d’exécution, ainsi que des résultats. Cette sortie structurée permet à votre application de citer des sources avec précision et de tracer le raisonnement derrière les réponses.
- Classement sémantique intégré : garantit une pertinence optimale des résultats. Le classement sémantique filtre le bruit et hiérarchise les passages véritablement pertinents, ce qui est particulièrement important avec les jeux de données volumineux.
- Synthèse des réponses facultatives : peut inclure des réponses formulées par LLM directement dans la réponse de requête. Vous pouvez également choisir de retourner des passages bruts et textuels pour que votre application les traite.
Si vous utilisez Recherche Azure AI comme moteur de récupération, consultez Récupérationagentique et Quickstart : Récupération agentique.
Choisir une approche dans Foundry
Foundry prend en charge plusieurs modèles pour l’utilisation de données privées. Choisissez en fonction de la complexité de votre cas d’usage et du contrôle dont vous avez besoin :
- Utilisez RAG quand vous avez besoin de réponses ancrées dans des données privées ou fréquemment modifiées.
- Utilisez un réglage précis lorsque vous devez modifier le comportement du modèle, le style ou les performances des tâches, plutôt que d’ajouter de nouvelles connaissances.
- Utilisez les outils d’agent lorsque vous créez un agent qui a besoin d’une récupération en tant qu’outil. Par exemple, consultez l’outil de recherche de fichiers pour les agents.
Prise en main de RAG dans Foundry
L’implémentation de RAG dans Foundry suit généralement ce flux de travail :
- Préparer vos données : organiser et segmenter vos documents privés ou base de connaissances dans du contenu pouvant faire l’objet d’une recherche
- Configurez un index : créez un index Recherche Azure AI ou utilisez un autre service de récupération pour organiser votre contenu pour une recherche efficace
- Se connecter à Foundry : Créer une connexion à partir de votre projet Foundry à votre index ou à votre service de récupération
- Créer votre application RAG : intégrer la récupération à vos appels LLM à l’aide du SDK Foundry ou des API REST
- Tester et évaluer : vérifier que la qualité de récupération est bonne et que les réponses sont exactes et correctement citées
Pour commencer, choisissez l’un de ces chemins en fonction de vos besoins :
- Agent avec récupération : si vous créez un agent, utilisez la récupération en tant qu’outil. Consultez l’outil de recherche de fichiers pour les agents.
- Application RAG personnalisée : Créez une application RAG complète avec le Kit de développement logiciel (SDK) Foundry pour un contrôle complet.
Considérations relatives à la sécurité et à la confidentialité
Les systèmes RAG peuvent exposer du contenu sensible si vous ne concevez pas l’accès et les incitations avec précaution.
- Appliquez le contrôle d’accès au moment de la récupération. Si vous utilisez Recherche Azure AI comme source de données, vous pouvez utiliser le contrôle d'accès au niveau du document avec des filtres de sécurité.
- Privilégiez Microsoft Entra ID aux clés API pour la production. Les clés API sont pratiques pour le développement, mais ne sont pas recommandées pour les scénarios de production. Pour obtenir des conseils sur Recherche Azure AI RBAC, consultez Connexion à Recherche Azure AI à l'aide des rôles.
- Traitez le contenu récupéré comme une entrée non approuvée. Votre logique des messages système et d'application doit réduire le risque d'injection de commandes à partir de documents et de passages récupérés. Consultez les messages du système de sécurité.
Considérations relatives aux coûts et à la latence
RAG ajoute un travail supplémentaire par rapport à une demande de modèle uniquement :
- Coûts et latence de récupération : l’interrogation d’un index ajoute des allers-retours et un calcul.
- Coûts et latence d’incorporation : la recherche vectorielle nécessite des incorporations au moment de l’indexation, et souvent au moment de la requête.
- Utilisation des jetons : les passages récupérés augmentent les jetons d’entrée, ce qui peut augmenter le coût.
Si vous utilisez Recherche Azure AI, confirmez le niveau de service et la tarification avant le déploiement de production. Si vous utilisez la recherche sémantique ou hybride, passez en revue la tarification et les limites d'Recherche Azure AI dans la documentation d'Recherche Azure AI.
Limitations et résolution des problèmes
Limitations connues
- La qualité RAG dépend de la préparation du contenu, de la configuration de la récupération et de l'élaboration de prompt. Une mauvaise préparation des données ou une stratégie d’indexation a un impact direct sur la qualité de la réponse.
- Si la récupération retourne des passages non pertinents ou incomplets, le modèle peut toujours produire des réponses incomplètes ou inexactes malgré la base.
- Si vous ne contrôlez pas l’accès au contenu source, les réponses ancrées peuvent fuiter des informations sensibles à partir de votre index.
Défis courants et atténuation
- Mauvaise qualité de récupération : si votre index ne retourne pas de passages pertinents, passez en revue votre stratégie de segmentation des données, incorporez la qualité du modèle et la configuration de recherche (mot clé par rapport à sémantique et hybride).
- Hallucination en dépit de l'ancrage : même avec du contenu récupéré comme fondation, les modèles peuvent toujours générer des réponses inexactes. Activez les citations et utilisez des messages système et des invites clairs pour instruire le modèle à adhérer au contenu récupéré.
- Problèmes de latence : les grands index peuvent ralentir la récupération. Envisagez la stratégie d'indexation, le filtrage et le reclassement pour réduire le volume de passages traités.
- Budget de jetons dépassé : les passages récupérés peuvent rapidement atteindre les limites de jetons. Implémentez le filtrage de passage, le classement ou la synthèse pour respecter le budget.
Pour obtenir des conseils sur l’évaluation de l’efficacité de RAG, consultez les didacticiels et les guides de démarrage rapide dans la section relative au contenu ci-dessous.