【AI大模型学习路线】第三阶段之RAG与LangChain——第十八章(基于RAGAS的RAG的评估)RAG中的评估思路?
【AI大模型学习路线】第三阶段之RAG与LangChain——第十八章(基于RAGAS的RAG的评估)RAG中的评估思路?
【AI大模型学习路线】第三阶段之RAG与LangChain——第十八章(基于RAGAS的RAG的评估)RAG中的评估思路?
文章目录
- 【AI大模型学习路线】第三阶段之RAG与LangChain——第十八章(基于RAGAS的RAG的评估)RAG中的评估思路?
- 🎯 一、为什么 RAG 需要特别的评估思路?
- 🧱 二、RAG 评估的核心思路(来自 RAGAS)
- 📌 RAG = Retriever + Generator
- 🧪 三、RAG 的四大核心评估指标(RAGAS)
- 🛠 四、Python 示例:基于 RAGAS 对 RAG 输出进行自动评估
- 安装依赖
- 示例代码
- 输出结果示例:
- 📊 五、应用评估思路的实际意义
- 🚩 开发者可以通过评估值做什么?
- 🧠 六、结合大模型发展趋势
- ✅ 七、小结一句话
欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!
大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “
学术会议小灵通
”或参考学术信息专栏:https://fighting.blog.csdn.net/article/details/148709313
🎯 一、为什么 RAG 需要特别的评估思路?
RAG(Retrieval-Augmented Generation)系统通过“检索 + 大模型生成”来提高问答质量,但相比普通 LLM 问答,它是一个两阶段的系统,因此:
- 单靠回答本身,无法判断问题出在哪一阶段;
- 普通指标(如 BLEU、ROUGE)无法衡量其“检索是否精准、回答是否真实”。
🧠 所以我们需要为 RAG 定制新的评估思路,帮助开发者识别问题位置:是“检索错了”还是“模型编故事”?
🧱 二、RAG 评估的核心思路(来自 RAGAS)
📌 RAG = Retriever + Generator
- 每个部分都需要单独 + 组合评估:
模块 | 问题 | 评估思路 |
---|---|---|
🕵️♂️ 检索模块(Retriever) | 检索内容是否覆盖答案?是否准确? | 上下文精度 / 召回 |
🤖 生成模块(LLM) | 回答是否来自检索?是否有幻觉? | 忠实性 / 相关性 |
✅ 整体质量 | 回答是否可信且切题? | 综合得分 |
🧪 三、RAG 的四大核心评估指标(RAGAS)
指标名 | 含义 | 衡量内容 |
---|---|---|
Faithfulness(忠实性) | 回答是否基于上下文,不编造 | 识别“模型幻觉” |
Answer Relevancy(相关性) | 回答是否准确回答了问题 | 识别“跑题回答” |
Context Precision(上下文精度) | 检索的文档是否与答案强相关 | 识别“检索噪音” |
Context Recall(上下文召回) | 检索是否覆盖全部答案内容 | 识别“检索遗漏” |
- ✅ 四个指标从不同角度评估了 RAG 全流程,形成闭环。
🛠 四、Python 示例:基于 RAGAS 对 RAG 输出进行自动评估
安装依赖
pip install ragas langchain openai datasets
示例代码
from ragas.metrics import (faithfulness,answer_relevancy,context_precision,context_recall
)
from ragas import evaluate
from datasets import Dataset# 构建数据(真实场景中由RAG系统输出)
data = {"question": ["什么是RAG系统?"],"answer": ["RAG系统结合了检索器和生成式模型,用于提高回答准确率。"],"contexts": [["RAG系统是一种将检索器和语言模型结合起来的方法"]],"ground_truth": ["RAG是将信息检索与生成式语言模型结合的技术"]
}# 转为 HuggingFace Dataset
dataset = Dataset.from_dict(data)# 评估四个指标
result = evaluate(dataset=dataset,metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)# 查看评估结果
print(result.to_pandas())
输出结果示例:
指标 | 分数(范围0-1) | 含义 |
---|---|---|
Faithfulness | 0.98 | 回答几乎完全基于检索内容 |
Answer Relevancy | 0.92 | 回答内容与问题高度相关 |
Context Precision | 0.88 | 检索内容大多有用 |
Context Recall | 0.70 | 有少量答案未被检索覆盖 |
📊 五、应用评估思路的实际意义
🚩 开发者可以通过评估值做什么?
评估发现 | 优化建议 |
---|---|
Recall 低 | 检索器要加强召回能力(e.g. 更长 chunk,更大候选) |
Precision 低 | 检索器应提高相关性过滤(e.g. rerank) |
Faithfulness 低 | 说明模型容易编故事,考虑使用 LLM 指令微调 |
Answer Relevancy 低 | 问题理解或回答对齐存在问题,可优化 prompt |
🧠 六、结合大模型发展趋势
随着 GPT-4、Claude 3、Gemini 等模型的能力增强,大家更关注其输出是否真实、可靠,特别在医疗、法律等领域,因此:
- 📌 能不能精准评估 RAG 系统,是决定大模型能不能“上岗”的基础能力!
✅ 七、小结一句话
- RAG 的评估不能只看回答本身,而应从“检索 + 生成”全流程出发,RAGAS 提供了忠实性、相关性、上下文精度/召回等评估指标,能帮你精准找到系统瓶颈,用 Python 自动化执行,构建可信的大模型问答系统。