【AI大模型学习路线】第三阶段之RAG与LangChain——第十八章(基于RAGAS的RAG的评估)为什么需要评估RAG?
【AI大模型学习路线】第三阶段之RAG与LangChain——第十八章(基于RAGAS的RAG的评估)为什么需要评估RAG?
欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!
大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “
学术会议小灵通
”或参考学术信息专栏:https://fighting.blog.csdn.net/article/details/148709313
🧠 一、为什么要评估 RAG 系统?(RAG 评估的必要性)
🌐 背景:RAG 系统是 AI 大模型应用的关键形态
- RAG(Retrieval-Augmented Generation)结合“信息检索”与“语言生成”能力,使大模型具备实时调用外部知识、减少幻觉、回答专业问题的能力,是目前大模型落地最广泛的方案之一。
❗ 但问题来了:仅靠大模型生成回答,不代表用户体验好!
- RAG 系统=检索 + 大模型问答,但它涉及两个子模块:
模块 | 问题 |
---|---|
🎯 检索模块(Retriever) | 检索的文档是否真的相关?是否有帮助? |
🤖 生成模块(LLM) | 回答是否正确、清晰、有逻辑?是否有幻觉? |
所以我们必须解决:
- ✅ 检索质量好不好?
- ✅ LLM 是不是乱说(幻觉)?
- ✅ 整体回答是否可信?是否可追溯?
📌 二、RAG 系统评估的挑战
传统 QA 的评估方法(如 BLEU、ROUGE)并不适用于 RAG,因为:
限制 | 原因 |
---|---|
❌ BLEU/ROUGE | 只关注词面相似度,无法评估“语义正确性” |
❌ 只评回答 | 忽略了“检索内容”对回答的影响 |
❌ 主观打分 | 不可复现,难以大规模对比模型 |
✅ 三、解决方案:RAGAS(RAG Automatic Scorer)
- RAGAS 是一种专门为 RAG 系统设计的自动化评估框架,评估内容覆盖从检索到生成的全过程。
🎯 它评估什么?
维度 | 说明 |
---|---|
Faithfulness(忠实性) | 回答是否忠实于提供的上下文?(防止 LLM 胡编) |
Answer Relevancy(相关性) | 回答是否与问题相关? |
Context Precision(上下文精度) | 上下文是否精准、包含答案? |
Context Recall(上下文召回) | 是否漏掉了其他有用文段? |
🧪 四、使用 Python 和 LangChain + RAGAS 评估 RAG 系统
🛠️ 安装依赖
pip install ragas langchain openai
📦 示例代码:评估一个 RAG 问答系统的结果
from ragas.metrics import (
faithfulness,
answer_relevancy,
context_precision,
context_recall
)
from ragas import evaluate
from langchain.evaluation.schema import QAEvalChain
from datasets import Dataset
# 构造一个包含问题、回答、上下文的数据集
data = {
"question": ["RAG 是什么?"],
"answer": ["RAG 是一种结合检索与生成的问答方法。"],
"contexts": [["RAG combines information retrieval and LLMs to improve factuality."]],
"ground_truth": ["RAG 是结合检索系统和语言模型用于问答的技术。"]
}
dataset = Dataset.from_dict(data)
# 使用 ragas 自动评估指标
result = evaluate(
dataset=dataset,
metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)
print(result.to_pandas())
📊 五、结果解释示例:
指标 | 含义 | 分数(示例) |
---|---|---|
Faithfulness | 是否忠实于检索内容 | 0.98 |
Answer Relevancy | 回答是否切题 | 0.95 |
Context Precision | 检索内容是否精准 | 0.89 |
Context Recall | 是否漏掉重要信息 | 0.76 |
- ✅ 这能帮我们判断:是检索器的问题?还是生成模型的问题?从而针对性优化。
🔍 六、结合大模型发展趋势看:RAG 评估是模型可信化的关键一环
随着 GPT-4、Claude 3 等大模型在医疗、法律、金融等高风险领域应用,评估机制不再是“可选项”,而是:
- 🔒 保证安全、可信、合规的基础设施!
🧩 七、总结一句话:
- RAG 的评估是构建可信问答系统的关键环节,RAGAS 提供了自动、可量化的指标体系,让你可以精确识别检索器和生成器的问题,并用 Python 轻松集成到你的 LangChain 流程中。