rageval
RAG 系统专项评测框架,六大子任务 × 30+ 指标,覆盖幻觉检测与引用溯源
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
RAG 系统专项评测框架,六大子任务 × 30+ 指标,覆盖幻觉检测与引用溯源
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
上线一个 RAG 应用后,你发现它回答流畅、界面友好、延迟也不高——但用户却抱怨"答非所问"。这是 RAG 系统最典型也最隐蔽的困境:整体体验没问题,评测结果却暴露了检索和生成的深层缺陷。
问题在于,传统的 NLP 评测指标(F1、BLEU)无法精准衡量 RAG 场景中"检索到的文档是否真的有用"、"生成的答案是否基于上下文"这类复合能力。Rageval 正是为解决这一痛点而生的专项评测框架。
RAG(检索增强生成)系统在 2023-2024 年迎来了爆发式应用,但评测工具的发展明显滞后于系统本身。大多数团队在评估 RAG 时仍然依赖人工 Review 或简单套用传统文本生成指标,这种做法存在三个致命缺陷:
检索与生成耦合,却被单独评估。 传统指标要么只看生成文本质量(F1/BLEU),要么只看检索召回率(Recall/NDCG),无法捕捉两者之间的交互效应——比如检索到了正确文档但生成时"忽略"了关键段落。
缺乏事实一致性评估。 RAG 系统最危险的错误不是"答错了",而是"答得流畅但内容幻觉"——即答案看起来正确,但实际上包含上下文未提及的信息。传统指标完全无法检测这类错误。
评测任务碎片化。 RAG 实际上是多个子任务的组合:Query 改写 → 检索 → 文档重排 → 信息压缩 → 答案生成 → 结果验证。现有评测往往只评估最终答案,忽略了中间链路的故障。
Rageval 由中国科学院 ICT 团队(gomate-community 组织)开发,对标 RAGAS、TRACEO 等国际评测框架,在评测维度覆盖度和中文场景支持上做了针对性增强。该项目 Star 171、Fork 10、Apache 2.0 开源许可。
Rageval 将 RAG 评测拆解为六个独立可测量的子任务,每个子任务对应一套专项指标体系:
1. 生成任务(Generate Task)——衡量最终答案的质量,这是用户最能感知的环节。Rageval 在这一任务上实现了最丰富的指标覆盖:
答案正确性维度(Answer Correctness):
答案有据性维度(Answer Groundedness):
2. 改写任务(Rewrite Task)——评测将用户原始问题改写为检索友好查询的能力。改写质量直接影响检索召回率。
3. 检索任务(Search Task)——评估从知识库中检索相关文档的能力。Rageval 提供 Context Recall(上下文召回率)和 Context Relevance(上下文相关性)两套指标,前者衡量是否找全了所有相关文档,后者衡量检索结果与查询的相关程度。
4. 信息压缩任务——评估从检索结果中提取关键信息、去除冗余的能力。高质量的压缩能显著降低 LLM 的上下文窗口压力。
5. 证据验证任务——对检索到的每条证据进行可信度评分,这是实现可解释 RAG 的基础设施。
6. 结果验证任务——对最终答案进行整体质量把关,包括一致性校验和格式合规性检查。
Rageval 预置了多个学术界标准评测集,开箱即用:
Rageval 的代码组织遵循清晰的模块化设计:
rageval/
metrics/
answer_correctness/ # 答案正确性指标(F1、NLI、EM、BLEU、Rouge 等 11 种)
answer_groundedness/ # 答案有据性指标(引用 Precision/Recall、Claim Faithfulness)
answer_informativeness/ # 答案信息量指标(Distinct-1/2、Claim Num、Repetitiveness)
context_adequacy/ # 上下文充分性(Context Recall)
context_relevance/ # 上下文相关性(NDCG、MRR、Hit Rate、Accuracy)
models/
base.py # 模型基类
nli.py # NLI 模型(用于幻觉检测)
openai.py # OpenAI GPT 模型调用封装
tasks/
_generate.py # 生成任务定义
_rewrite.py # 改写任务定义
_search.py # 检索任务定义
base.py # 任务基类
utils/
prompt.py # Prompt 模板
utility.py # 通用工具函数
evaluations.py # 评测运行主入口
validation.py # 结果验证逻辑
benchmarks/
ASQA/ # ASQA 数据集
ELI5/ # ELI5 数据集
HOTPOTQA/ # HOTPOTQA 数据集
WebGLM/ # WebGLM 数据集
ALCE/ # ALCE 数据集
auto/ # 自定义数据集模板
核心依赖包括:refchecker(引用核查)、OpenAI API(模型调用)、LangChain/LangChain-Community(Agent 框架)、Transformers + PyTorch(本地模型推理)、NLTK/SpaCy(文本处理)、Rouge-Score(ROUGE 评测)、datasets(HuggingFace 数据集支持)。
安装方式:
pip install rageval
# 或开发模式
git clone https://github.com/gomate-community/rageval.git
cd rageval && pip install -e .
依赖环境:Python >= 3.10,需要配置 OpenAI API Key(Rageval 的幻觉检测、答案质量评估均依赖 GPT 模型推理)。纯 CPU 可运行完整评测,但若涉及 Transformers 本地模型推理(可选),建议配备 GPU。
运行评测:
from rageval import Evaluator
evaluator = Evaluator(model="gpt-4", dataset="asqa")
results = evaluator.evaluate()
Rageval 目前不提供 Docker 镜像和 Web UI,是一个面向开发者的命令行工具。评测结果以 JSON 格式输出,可对接团队现有的自动化评测流程。部署难度为"简单"——安装依赖后即可运行,但需自行解决 OpenAI API 的网络访问问题。
高度依赖外部 LLM API。 Rageval 的核心指标(幻觉检测、Claim Recall、Citation 评估)均通过 GPT-4 等大模型推理实现,评测结果的质量直接受制于模型能力,且每次评测会产生可观的 API 调用成本。
中文场景支持不完整。 虽然项目支持 jieba 中文分词,但主流基准数据集(ASQA、ELI5)均为英文,中文 RAG 评测需要用户自行准备数据集。
自动化程度有待提升。 当前版本仍需用户具备 Python 编程能力,没有提供低代码评测界面;对于非 AI 专业团队而言,配置成本偏高。
RAG 评测工具的成熟是 RAG 技术走向生产落地的最后一公里。Rageval 的价值在于将散落在学术论文中的评测方法论(Answer NLI、Citation Recall、Context Reject Rate 等)产品化,降低了团队建立标准化评测体系的门槛。
随着多模态 RAG、Agentic RAG 等新范式的涌现,RAG 评测的维度也将持续扩展——从纯文本问答扩展到多模态检索、工具调用、长期记忆等场景。Rageval 的模块化架构为这些扩展预留了接口,是值得关注的长线项目。