RAG(Retrieval-Augmented Generation)现在已经成了大模型落地最重要的方式之一;那我们该如何 衡量一个 RAG 系统做得好不好 呢?
这时候,就该请出今天的主角—
Ragas
。
一、开卷考试的灵魂拷问
大模型的能力是通用的,而 RAG 系统往往用于解决某些具体领域问题,比如:
- 企业内部知识库问答
- 产品使用文档查询
- 结构化文档问答(PDF、Word、网页)
在这类场景中,光靠模型本身能力还不够,需要通过 “检索” 拿到参考资料,再交给模型进行“生成”。
这就像一次开卷考试:
- 你是大语言模型;
- 开卷材料是知识库或检索内容;
- 最后你的回答,要尽可能基于材料,内容准确、有用。
问题来了:我们怎么知道你这份答案答得好不好?
二、Ragas 是什么?
Ragas
是一个专门用于评估 RAG 系统质量的开源框架,最早由 explodinggradients 提出,目前已由 HuggingFace 官方维护,并迅速成为 RAG 领域事实标准。
它的目标是:通过自动化评估指标,衡量 RAG 各阶段的表现:检索是否相关?答案是否可信?是否完整?是否真实?
🎯 它不是通用的 LLM 评估框架,而是专门针对 RAG 系统
三、可以把 RAG 理解成一场 “开卷考试” ,Ragas 就是“阅卷老师”
让我们来打个比喻:
- RAG 系统就像一个学生,他在“开卷考试”中作答;
- 检索到的内容是课本;
- 生成出的回答是他写在答卷上的答案;
- Ragas 就是评卷老师,会拿着参考答案、课本、问题,对照检查,给出几分评分维度。
这就像老师会思考:
- 你答的有没有在书上?(Faithfulness)
- 有没有用力过猛、编瞎话?(Answer Relevance)
- 有些问题你没答全?(Answer Completeness)
- 你的资料到底靠不靠谱?(Context Precision)
四、Ragas 核心评估指标详解
Ragas 主要包含以下指标:
指标名称 | 含义 | 示例场景 |
---|---|---|
faithfulness | 生成回答是否忠实于检索内容?(防止幻觉) | 回答中是否编造了原文中没有的信息? |
answer_relevancy | 回答是否真正回答了问题? | 答非所问或内容偏离问题? |
context_precision | 检索到的文档是否有效? | 是不是有很多无关内容被检索进来了? |
context_recall | 有用的文档是否都被检索到了? | 有没有遗漏关键文档? |
answer_correctness | 回答是否客观正确?(对标人类参考答案) | 这个问题该怎么答?答案对吗? |
context_relevancy | 检索内容和问题是否相关? | 文档和提问是否存在语义连接? |
answer_similarity | 回答和参考答案相似吗? | 类似于传统 NLG 的 BLEU/ROUGE 替代 |
🔍 Ragas 通过微调模型或 LLM 推理方式,实现自动打分。也就是说,我们不需要再人工评测一个个问答样本,只要有数据,Ragas 能跑出一个全面评分报告。
五、如何用 Ragas 跑一次评估?
以下是一个最小可运行的 Python 例子,你只需要准备 3 个字段:
- 问题(question)
- 回答(answer)
- 检索文档(contexts)
|
|
构造数据(这里只用一条做演示)
|
|
选择指标进行评估
|
|
☑️ 输出将是每个指标的得分(0~1),你可以将其导出为 Excel、可视化,甚至接入到 CI 流程里!
六、几点实用建议
如果你是做企业内部 QA 系统,可以定期使用 Ragas 回归评估;
每次改动检索逻辑(如 embedding 或 chunking)后都跑一遍;
可配合人类评估(如 GPT-4 或专家评分)一起校准;
注意语料中文支持问题,建议使用中文微调的 embedding + LLM 模型组合;
七、小结
RAG 是把模型“请进门”,而评估是“送上路”。
别让你的系统一直在靠感觉优化。用上 Ragas,把每一次回答都变成可度量、可优化的动作。
未来我们还可以探索更多高级用法,比如:
- 加入更多参考答案维度;
- 不同指标权重组合成总分;
- 模型训练前后的对比评估;
- 检索质量 vs. 生成质量分离分析;
如果你对某个指标、某种使用场景特别感兴趣,也欢迎留言或私信我,后续我会开坑单讲!😎
本文作者: wettper
本文链接: http://www.web-lovers.com/llm-rag-ragas.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!