Création d'une expérience RAG (voie rapide)

Dernière mise à jour : 04 avr. 2025
Création d'une expérience RAG (voie rapide)

Créez une expérience de génération augmentée par récupération (RAG) en utilisant l'AutoAI. Téléchargez une collection de documents et transformez-les en vecteurs qui peuvent être utilisés pour améliorer les résultats d'un grand modèle linguistique. Comparez les pipelines optimisés pour sélectionner le modèle RAG le mieux adapté à votre application.

Préparer vos sources de données

Avant de créer une expérience RAG, préparez votre collecte de documents et vos données d'évaluation. La collection de documents fournit un contexte pour les réponses aux questions posées. Les données d'évaluation sont un fichier JSON contenant des exemples de questions et de réponses à utiliser pour mesurer la performance des modèles RAG.

Pour préparer votre collecte de données, suivez les lignes directrices suivantes :

  • Formats pris en charge pour la collection de documents : PDF, HTML, DOCX, MD ou texte brut
  • Format pris en charge pour le fichier de données d'évaluation : JSON

Modèle de fichier d'évaluation JSON

Le fichier de données d'évaluation fournit une série d'exemples de questions et de réponses correctes pour évaluer la performance du modèle RAG. Utilisez ce format pour le fichier JSON :

[
    {
        "question": "<text>",
        "correct_answer": "<text>",
        "correct_answer_document_ids": [
            "<file>",
            "<file>"
        ]
    },
    {
        "question": "<text>",
        "correct_answer": "<text>",
        "correct_answer_document_ids": [
            "<file>",
            "<file>"
        ]
    },
    {
        "question": "<text>",
        "correct_answer": "<text>",
        "correct_answer_document_ids": [
            "<file>",
            "<file>"
        ]
    }
]

Pour ajouter plusieurs réponses correctes à une question, indiquez le texte de la réponse et l'identifiant du document pour chaque réponse correcte. Utilisez ce format pour les réponses multiples correctes :

[
  {
    "question": "Question 1",
    "correct_answer": "Correct answer 1 for question 1.",
    "correct_answer_document_ids": ["id1a1q1", "id2a1q1"]
  },
  {
    "question": "Question 1",
    "correct_answer": "Correct answer 2 for question 1.",
    "correct_answer_document_ids": ["id1a2q1", "id2a2q1"]
  },
  {
    "question": "Question 2",
    "correct_answer": "Correct answer 1 for question 2.",
    "correct_answer_document_ids": ["id1a1q2", "id2a1q2"]
  }
]

Par exemple, voici des exemples de questions et de réponses pour le modèle formé à l'aide de la documentation de la bibliothèque Python watsonx.ai

[
    {
        "question": "What foundation models are available in watsonx.ai?",
        "correct_answer": "The following models are available in watsonx.ai: \nflan-t5-xl-3b\nFlan-t5-xxl-11b\nflan-ul2-20b\ngpt-neox-20b\ngranite-13b-chat-v2\ngranite-13b-chat-v1\ngranite-13b-instruct-v2\ngranite-13b-instruct-v1\nllama-2-13b-chat\nllama-2-70b-chat\nmpt-7b-instruct2\nmt0-xxl-13b\nstarcoder-15.5b",
        "correct_answer_document_ids": [
            "5B37710FE7BBD6EFB842FEB7B49B036302E18F81_0.txt"
        ]
    },
    {
        "question": "What foundation models are available on Watsonx, and which of these has IBM built?",
        "correct_answer": "The following foundation models are available on Watsonx:\n\n1. flan-t5-xl-3b\n2. flan-t5-xxl-11b\n3. flan-ul2-20b\n4. gpt-neox-20b\n5. granite-13b-chat-v2 (IBM built)\n6. granite-13b-chat-v1 (IBM built)\n7. granite-13b-instruct-v2 (IBM built)\n8. granite-13b-instruct-v1 (IBM built)\n9. llama-2-13b-chat\n10. llama-2-70b-chat\n11. mpt-7b-instruct2\n12. mt0-xxl-13b\n13. starcoder-15.5b\n\n The Granite family of foundation models, including granite-13b-chat-v2, granite-13b-chat-v1, and granite-13b-instruct-v2 has been build by IBM.",
        "correct_answer_document_ids": [
            "5B37710FE7BBD6EFB842FEB7B49B036302E18F81_0.txt",
            "B2593108FA446C4B4B0EF5ADC2CD5D9585B0B63C_0.txt"
        ]
    },
    {
        "question": "What is greedy decoding?",
        "correct_answer": "Greedy decoding produces output that closely matches the most common language in the model's pretraining data and in your prompt text, which is desirable in less creative or fact-based use cases. A weakness of greedy decoding is that it can cause repetitive loops in the generated output.",
        "correct_answer_document_ids": [
            "42AE491240EF740E6A8C5CF32B817E606F554E49_1.txt"
        ]
    },
    {
        "question": "When to tune a foundation model?",
        "correct_answer": "Tune a foundation model when you want to do the following things:\n\nReduce the cost of inferencing at scale\nGet the model's output to use a certain style or format\nImprove the model's performance by teaching the model a specialized task\nGenerate output in a reliable form in response to zero-shot prompts\"",
        "correct_answer_document_ids": [
            "FBC3C5F81D060CD996489B772ABAC886F12130A3_0.txt"
        ]
    },
    {
        "question": "What tuning parameters are available for IBM foundation models?",
        "correct_answer": "Tuning parameter values for IBM foundation models:\nInitialization method\ninitialization text\nbatch_size\naccumulate_steps\nlearning_rate\nnum_epochs\"",
        "correct_answer_document_ids": [
            "51747F17F413F1F34CFD73D170DE392D874D03DD_2.txt"
        ]
    },
    {
        "question": "How do I avoid generating personal information with foundation models?",
        "correct_answer": "To exclude personal information, try these techniques:\n- In your prompt, instruct the model to refrain from mentioning names, contact details, or personal information.\n- In your larger application, pipeline, or solution, post-process the content that is generated by the foundation model to find and remove personal information.\"",
        "correct_answer_document_ids": [
            "E59B59312D1EB3B2BA78D7E78993883BB3784C2B_4.txt"
        ]
    },
    {
        "question": "What is Watson OpenScale?",
        "correct_answer": "Watson OpenScale is a tool that helps organizations evaluate and monitor the performance of their AI models. It tracks and measures outcomes from AI models, and helps ensure that they remain fair, explainable, and compliant no matter where the models were built or are running. Watson OpenScale also detects and helps correct the drift in accuracy when an AI model is in production.",
        "correct_answer_document_ids": [
            "777F72F32FD20E96C4A5F0CCA461FE9A79334E96_0.txt"
        ]
    }
]

Choisir un magasin de vecteurs

Vous devez prévoir un emplacement pour le stockage des documents vectorisés dans une base de données qui est utilisée pour stocker et récupérer le contenu pour le processus de questions et réponses. Pour plus d'informations sur les options de base de données disponibles, voir Choix d'un magasin de vecteurs.

  • La base de données Chroma en mémoire par défaut est une mémoire vectorielle temporaire pour l'exécution de l'expérience. L'indice ne persiste pas au-delà de l'expérience, et n'est donc pas un bon choix pour la production.
  • Connectez-vous à une base de données Milvus ou créez-en une si vous souhaitez disposer d'une base de données vectorielles permanente. Utilisez cette option si vous prévoyez de déployer votre modèle RAG. Pour plus de détails, voir Configuration d'un magasin de vecteurs watsonx.data Milvus
Important :

Pour vous connecter à un magasin de vecteurs Milvus, vous pouvez choisir le type de connecteur générique ou le connecteur ou Milvus ou le connecteur watsonx.data Milvus.

Regardez cette vidéo pour savoir comment créer une expérience AutoAI RAG.

Cette vidéo fournit une méthode visuelle pour apprendre les concepts et les tâches de cette documentation.

Création de l'expérience AutoAI RAG

Suivez ces étapes pour définir et exécuter une expérience visant à rechercher le modèle RAG optimal pour votre cas d'utilisation, en utilisant les paramètres de configuration par défaut comme voie rapide.

  1. Sur la page d'accueil de watsonx.ai ou sur la page Nouveaux actifs d'un projet, cliquez sur Construire automatiquement des solutions d'IA.

  2. Saisissez un nom et une description facultative pour l'expérience, sélectionnez une taille de configuration et cliquez sur Créer. Vous devez également avoir une instance de service watsonx.ai Runtime associée au projet.

    Conseil : si vous obtenez une erreur lors de la configuration d'une expérience, vérifiez que vous disposez de suffisamment de ressources avec votre plan. Si le problème persiste, essayez de changer les informations d'identification de la tâche IBM Cloud.

  3. Sélectionnez Construire une solution RAG comme type d'expérience.

  4. Télécharger ou se connecter à la collection de documents et aux données d'évaluation. Sélectionnez jusqu'à 20 dossiers et fichiers de documents pour la collection de documents. Le fichier de données d'évaluation doit être un fichier JSON unique. Connexion aux données pour une expérience RAG

  5. Choisissez l'endroit où stocker l'index vectoriel de la collection de documents.

  6. Spécifiez le fichier JSON que vous souhaitez utiliser comme données de référence pour évaluer les résultats de l'expérience.

  7. Cliquez sur Exécuter l'expérience pour créer les pipelines RAG en utilisant les paramètres par défaut :

    • Métrique optimisée: Optimise la création des motifs RAG pour la métrique de fidélité de la réponse.
    • Modèles à prendre en compte: La valeur par défaut de Tous les types de modèles prend en compte tous les modèles de fondations disponibles pour générer les modèles RAG.

Les paramètres de l'expérience sont configurables si vous souhaitez adapter l'expérience à votre cas d'utilisation. Voir Personnalisation des paramètres de l'expérience RAG.

Affichage des résultats

Utilisez les outils suivants pour visualiser les progrès et examiner les résultats.

  1. Au fur et à mesure que l'expérience se déroule, une carte de progression permet de visualiser la création et l'optimisation des pipelines. Survolez un nœud pour plus de détails.

    Visualisation de la carte de progression d'une expérience RAG en cours

  2. Lorsque l'expérience est terminée, cliquez sur Importance des paramètres pour examiner l'importance de chaque paramètre pour la création et le classement des modèles optimisés.

    Définir l'importance d'une expérience RAG

  3. Examinez le tableau de bord qui présente les pipelines d'expérimentation, classés en fonction des résultats obtenus pour la mesure optimisée.

    Tableau de bord d'une expérience RAG

  4. Cliquez sur le nom d'un pipeline pour en consulter les détails. Examinez les résultats obtenus par le pipeline pour les différents paramètres évalués à l'aide de l'exemple de question et de réponse.

    Détails du pipeline pour une expérience RAG

  5. Lorsque votre analyse est terminée, cliquez sur Enregistrer pour générer automatiquement des actifs de carnet de notes que vous pouvez utiliser pour tester et utiliser le modèle RAG.

    Sauvegarde d'un pipeline RAG

  6. Examinez et exécutez le ou les carnets obtenus pour tester ou utiliser votre modèle RAG. Pour plus de détails, voir Sauvegarde d'un motif RAG.

Etapes suivantes

Sujet parent : Construire des expériences RAG avec AutoAI