Modifier

Partager via


Conception et développement d’une solution RAG

Azure AI services
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

Le modèle de génération augmentée par récupération (RAG) est une approche standard de l’industrie pour créer des applications qui utilisent des grands modèles de langage pour raisonner sur des données spécifiques ou propriétaires qui ne sont pas déjà connues du grand modèle de langage. Bien que l’architecture soit simple, la conception, l’expérimentation et l’évaluation de solutions RAG qui s’intègrent dans cette architecture impliquent de nombreuses considérations complexes qui bénéficient d’une approche rigoureuse et scientifique.

Ce guide est présenté sous forme de série. Chaque article de la série couvre une phase spécifique de la conception des solutions RAG.

Ces considérations couvertes dans les articles de ce guide incluent :

  • Déterminer les documents de test et les requêtes à utiliser pendant l’évaluation
  • Choisir une stratégie de chunking
  • Déterminer ce que vous devez enrichir et comment enrichir les segments
  • Choisir le bon modèle d’embedding
  • Déterminer comment configurer l’index de recherche
  • Déterminer quelles recherches vous souhaitez effectuer : vectorielle, texte intégral, hybride, multiple manuelle
  • Évaluer chaque étape

Les articles de ce guide abordent toutes ces considérations.

Architecture RAG

Diagramme montrant l’architecture de haut niveau d’une solution RAG, comme le flux de requêtes et le pipeline de données.

Figure 1. Architecture RAG de haut niveau

Flux d’application RAG

Voici un flux de haut niveau pour une application RAG.

  1. L’utilisateur émet une requête dans une interface utilisateur d’application intelligente.
  2. L’application intelligente fait un appel API à un orchestrateur. L’orchestrateur peut être implémenté avec des outils ou des plateformes comme Semantic Kernel, le flux d'invite Azure Machine Learning ou LangChain.
  3. L’orchestrateur détermine quelle recherche effectuer sur Azure AI Search et émet la requête.
  4. L’orchestrateur emballe les N meilleurs résultats de la requête, les emballe comme contexte dans un prompt, avec la requête, et envoie le prompt au grand modèle de langage. L’orchestrateur renvoie la réponse à l’application intelligente pour que l’utilisateur la lise.

Flux du pipeline de données RAG

Voici un flux de haut niveau pour un pipeline de données qui fournit des données de base pour une application RAG.

  1. Les documents sont soit poussés, soit tirés dans un pipeline de données.

  2. Le pipeline de données traite chaque document individuellement avec les étapes suivantes :

    1. Segmenter le document - Décomposer le document en parties sémantiquement pertinentes qui idéalement ont une seule idée ou concept.
    2. Enrichir les segments - Ajouter des champs de métadonnées créés à partir du contenu des segments à des champs discrets, tels que le titre, le résumé et les mots-clés.
    3. Intégrer les segments - Utiliser un modèle d’embedding pour vectoriser le segment et tout autre champ de métadonnées utilisé pour les recherches vectorielles.
    4. Conserver les segments - Stocker les segments dans l’index de recherche.

Considérations de conception et d’évaluation de RAG

Il y a une variété de décisions de mise en œuvre que vous devez prendre lors de la conception de votre solution RAG. La figure suivante illustre certaines de ces décisions.

Diagramme montrant l’architecture de haut niveau d’une solution RAG, y compris les questions qui se posent lors de la conception de la solution.

Figure 2 : Questions qui se posent lors de la conception d’une solution RAG

La série d’articles de ce guide aborde ces considérations etc

Phase de préparation

  • Déterminer le domaine de la solution : Aborde l’importance de définir clairement les exigences métier pour la solution RAG
  • Collecter des documents de test représentatifs : Aborde les considérations et des conseils sur la collecte de documents de test pour votre solution RAG qui sont représentatifs de votre corpus.
  • Collecter des requêtes de test : Évoque les informations que vous devez collecter avec vos requêtes de test, fournit des conseils sur la génération de requêtes synthétiques et des requêtes que vos documents ne couvrent pas.

Phase de chunking

  • Comprendre l’économie du chunking : Évoque les facteurs à prendre en compte lors de l’examen du coût global de votre solution de chunking pour votre corpus de texte
  • Effectuer une analyse de documents : Fournit une liste de questions que vous pouvez poser lors de l’analyse d’un type de document qui vous aide à déterminer ce que vous voulez ignorer ou exclure du document, ce que vous voulez capturer dans les segments et comment vous voulez fragmenter
  • Comprendre les approches de chunking : Présente les différentes approches de chunking comme basées sur les phrases, de taille fixe, personnalisées, augmentation par grand modèle de langage, analyse de la mise en page des documents, utilisation de modèles de machine learning
  • Comprendre comment la structure du document affecte le chunking : Évoque la manière dont le degré de structure d’un document influence votre choix d’approche de chunking

Phase d’enrichissement de segment

  • Nettoyer les segments : Évoque les différentes approches de nettoyage que vous pouvez mettre en œuvre pour soutenir les correspondances de proximité en éliminant les différences potentielles qui ne sont pas matérielles pour la sémantique du texte
  • Augmenter les segments : Aborde certains champs de métadonnées courants que vous devriez envisager d’ajouter à vos segments avec des conseils sur leur utilisation potentielle dans la recherche, ainsi que des outils ou techniques couramment utilisés pour générer le contenu des métadonnées

Phase d’embedding

  • Comprendre l’importance du modèle d’embedding : Évoque de quelle manière un modèle d’embedding peut avoir un effet significatif sur la pertinence des résultats de recherche vectorielle
  • Choisir un modèle d’embedding : Donne des conseils sur le choix d’un modèle d’embedding
  • Évaluer les modèles d’embedding : Aborde deux moyens d’évaluer un modèle d’embedding : visualiser les embeddings et calculer les distances d’embeddings

Phase de récupération d’informations

  • Créer un index de recherche : Aborde certaines décisions clés que vous devez prendre pour la configuration de la recherche vectorielle qui s’applique aux champs vectoriels
  • Comprendre les options de recherche : Donne un aperçu des types de recherche que vous pouvez envisager tels que vectorielle, texte intégral, hybride et multiple manuelle. Donne des conseils sur le fractionnement d’une requête en sous-requêtes, le filtrage des requêtes.
  • Évaluer les recherches : Donne des conseils sur l’évaluation de votre solution de recherche

Phase d’évaluation de bout en bout du grand modèle de langage

  • Comprendre les métriques d’évaluation des grands modèles de langage : Donne un aperçu de plusieurs métriques que vous pouvez utiliser pour évaluer la réponse des grands modèles de langage, y compris la pertinence, l’exhaustivité, l’utilisation et la pertinence
  • Comprendre les métriques de similarité et d’évaluation : Donne une petite liste de métriques de similarité et d’évaluation que vous pouvez utiliser lors de l’évaluation de votre solution RAG
  • Comprendre l’importance de la documentation, des rapports et de l’agrégation Évoque l’importance de documenter les hyper-paramètres ainsi que les résultats d’évaluation, d’agréger les résultats de plusieurs requêtes et de visualiser les résultats
  • L’accélérateur d’expérimentation RAG : Fournit un lien vers l’Accélérateur d’expérimentation RAG, qui est un outil conçu pour aider les équipes à trouver rapidement les meilleures stratégies pour la mise en œuvre de RAG en exécutant plusieurs expériences, en conservant et en évaluant les résultats

Approche structurée

En raison du nombre d’étapes et de variables, il est important de concevoir votre solution RAG grâce à un processus d’évaluation structuré. Évaluez les résultats de chaque étape et adaptez-vous en fonction de vos besoins. Bien que vous deviez évaluer chaque étape indépendamment pour l’optimisation, le résultat final est ce que vos utilisateurs vont expérimenter. Assurez-vous de comprendre toutes les étapes de ce processus avant de déterminer vos propres critères d’acceptation pour chacune des étapes.

Contributeurs

Étapes suivantes