RAG Evaluation and Meta-Evaluation with GroUSE

Patient Tools

Read, save, and share this guide

Use these quick tools to make this medical article easier to read, print, save, or share with a family member.

Article Summary

This tutorial introduces GroUSE, a framework for evaluating Retrieval-Augmented Generation (RAG) pipelines, focusing on the final stage: Grounded Question Answering (GQA). It demonstrates how to use Large Language Models (LLMs) to assess GQA answers across four distinct metrics and guides you through customizing your own Judge LLM using GroUSE unit tests. Motivation Manually evaluating RAG pipeline outputs can be challenging. The GroUSE framework leverages LLMs...

Key Takeaways

  • This article explains Motivation in simple medical language.
  • This article explains Key Components in simple medical language.
  • This article explains Method Details in simple medical language.
  • This article explains Benefits of the approach in simple medical language.
Educational health guideWritten for patient understanding and clinical awareness.
Reviewed content workflowUse writer and reviewer profiles for stronger trust.
Emergency safety firstUrgent warning signs are highlighted below.

Seek urgent medical care if you notice

These warning signs are general safety guidance. Local emergency numbers and clinical judgment should always come first.

  • Severe symptoms, breathing difficulty, fainting, confusion, or rapidly worsening illness.
  • New weakness, severe pain, high fever, or symptoms after a serious injury.
  • Any symptom that feels urgent, unusual, or unsafe for the patient.
1

Emergency now

Use emergency care for severe, sudden, rapidly worsening, or life-threatening symptoms.

2

See a doctor

Book a professional medical evaluation if symptoms persist, worsen, recur often, affect daily activities, or occur in a high-risk patient.

3

Learn safely

Use this article to understand possible causes, tests, treatment options, prevention, and questions to ask your clinician.

Patient safety assistant

Check your symptom safely

Hi, I am RX Symptom Navigator. I can help you understand what to read next and what warning signs need care.
Warning: Do not use this in emergencies, pregnancy, severe illness, or as a substitute for a doctor. For children or teens, use with a parent/guardian and clinician.
A rural-friendly guide: warning signs, when to see a doctor, related articles, tests to discuss, and OTC safety education.
1 Symptom 2 Severity 3 Safe guidance
First safety question

Is there chest pain, breathing trouble, fainting, confusion, severe bleeding, stroke-like weakness, severe injury, or pregnancy danger sign?

Choose quickly

Browse by body area
Start here: Write or select a symptom. The guide will show warning signs, doctor guidance, diagnostic tests to discuss, OTC safety education, and related RX articles.

Important: This tool is educational only. It cannot diagnose, treat, or replace a doctor. OTC information is not a prescription. In an emergency, contact local emergency services or go to the nearest hospital.

Frequently Asked Questions

Motivation Manually evaluating RAG pipeline outputs can be challenging. The GroUSE framework leverages LLMs with finely tuned prompts to address all potential failure modes in Grounded Question Answering. GroUSE unit tests are used to identify the most effective prompts to optimize the performance of these evaluators. Key ComponentsAnswer Relevancy evaluation Completeness evaluation Faithfulness evaluation Usefulness evaluation Judge LLM CustomizationMethod Details The task we want to assess: Grounded Question Answering Grounded Question Answering (QA) is usually the last step of a RAG pipeline: given a question and a set of documents retrieved from the corpus, an LLM must generate an answer. We expect the LLM to cite which document each piece of information is coming from, as depicted below. When no precise answer is in the documents, the LLM should indicate it in its answer. In that case, if some related information is available in the documents, the LLM can add it to the answer to show the corpus is not completely off-topic with respect to the question. Evaluation Metrics Each answer is evaluated according to six metrics. The fisrt four metrics are evaluated with an evaluator LLM call. Positive acceptance and negative rejection are deducted from the first four. 1. Answer Relevancy Answer relevancy assesses the relevance of the information provided in the answer regarding the question, using a Likert scale (1 to 5). 2. Completeness Completeness uses a Likert scale (1 to 5) to evaluate whether all relevant information from the documents is present in the answer. 3. Faithfulness Faithfulness is a binary score that checks if all facts in the answer are accurate and correctly attributed to the corresponding document. 4. Usefulness When the answer states that no references can answer the question but additional information is provided, usefulness is a binary score that determines if the provided additional information is still useful. 5. Positive Acceptance Percentage of samples that responded when they were supposed to. 6. Negative Rejection Percentage of samples that refrained from responding when there is no context in the documents that allow to answer the question. Benefits of the approach The GroUSE framework comprehensively addresses the seven failure modes of Grounded Question Answering, providing a thorough evaluation of your RAG pipeline's final stage. Implementation details Answer Relevancy, Completeness, Faithfulness and Usefulness are evaluated using GPT-4 as the default model, as it was the best model we tested. Positive acceptance and negative rejection can be deducted from the answer relevancy and completeness results as these can have None values when no references contain answers to the question.The GroUSE framework provides a comprehensive set of evaluation metrics to assess the performance of Grounded Question Answering models. By addressing seven key failure modes, it enables developers to thoroughly evaluate and improve their RAG pipelines. The use of LLM-based judges, such as GPT-4, automate this evaluation process. To tailor the framework to your specific needs, you can develop a custom LLM evaluator and validate its performance using GroUSE unit tests.TutorialImport librariesIn [ ]:import os import nest_asyncio from grouse import ( EvaluationSample, GroundedQAEvaluator, meta_evaluate_pipeline, )Avoid nested asyncio loops inside notebooks (this line is not needed if you run the code in a Python script)In [ ]:nest_asyncio.apply()Setup your API keyFor this tutorial, you will need access to the OpenAI API and get an OpenAI API key. You can get one here.In [ ]:os.environ["OPENAI_API_KEY"] = input("Add your OpenAI API key:")Initialize the evaluator The default model used is GPT-4. Prompts are adapted to this model, so if you want to have the best results, keep using the default model.In [ ]:evaluator = GroundedQAEvaluator()Evaluate a good answer An LLM has given a good answer to a question related to the Eiffel Tower, given some contexts from the Eiffel Tower Wikipedia page. Let's evaluate the answer and check that everything is okay.In [ ]:good_sample = EvaluationSample( input="Where is the Eiffel Tower located?", actual_output="The Eiffel Tower stands in the Champs de Mars in Paris.[1]", expected_output="In the Champs de Mars in Paris. [1]", references=[ "The Eiffel Tower is a wrought-iron lattice tower on the Champ de Mars in Paris, France" ] ) result = evaluator.evaluate(eval_samples=[good_sample]).evaluations[0] print("Answer Relevancy (1 to 5):", result.answer_relevancy.answer_relevancy) print("Answer Relevancy (1 to 5):", result.answer_relevancy.answer_relevancy_justification) print("Completeness (1 to 5):", result.completeness.completeness) print("Completeness (1 to 5):", result.completeness.completeness_justification) print("Faithfulness (0 or 1):", result.faithfulness.faithfulness) print("Faithfulness (0 or 1):", result.faithfulness.faithfulness_justification)How does it behave with an irrelevant answer?

In : irrelevant_sample = EvaluationSample( input="Where is the Eiffel Tower located?", actual_output="The Eiffel Tower is mainly made of puddle iron.", expected_output="In the Champs de Mars in Paris.", references= and the addition of lifts, shops and antennae have brought the total weight to approximately 10,100 tonnes." ] ) result = evaluator.evaluate(eval_samples=).evaluations print("Answer Relevancy (1 to 5):", result.answer_relevancy.answer_relevancy) print("Justification:", result.answer_relevancy.answer_relevancy_justification)

References

Add references, clinical guidelines, textbooks, journal articles, or trusted medical sources here. You can edit this area from the RX Article Professional Blocks panel.