从感觉不错到分数说话:用 Ragas 给 RAG 系统做一次可量化的体检
从"感觉不错"到"分数说话":用 Ragas 给 RAG 系统做一次可量化的体检
几乎每个做大模型应用的人都会遇到同一个尴尬时刻:RAG 系统跑起来了,演示效果看着还行,但老板问你"效果到底好不好"时,你却只能含糊地说"感觉还可以"。手工抽几条 query 测一测,既不可扩展,也缺乏一致性——换个人、换个心情,结论可能都不一样。Ragas(Retrieval Augmented Generation Assessment)正是为了解决这个问题而生的,它目前是开源社区里最流行的 RAG 评估框架,核心理念只有一句话:用 LLM 来评估 LLM。本文结合官方文档与社区实践,带你从零搞懂如何给 RAG 系统建立一套可量化、可追溯、可自动化的评估体系。

为什么 RAG 必须被评估
RAG 系统有两个独立的"故障点":一是检索环节——有没有召回正确的文档片段;二是生成环节——有没有基于召回的上下文给出忠实、相关的回答。检索错了,答案可能无中生有;生成环节失守,答案可能答非所问。这两个环节任何一个出问题,用户体验都会崩掉,但仅靠肉眼看答案很难定位究竟是哪一环出了问题。所以一套科学的评估方案,必须同时覆盖"检索质量"和"生成质量"两个维度,而 Ragas 正是围绕这个思路设计的。

Ragas 的四大核心指标

Ragas 最广为人知的是它的四个核心指标,恰好两两对应上面提到的两个维度:
- Faithfulness(忠实度):生成的答案是否忠实于检索到的上下文?它先把答案拆解成若干条原子级事实声明,再逐条与上下文比对,判断有没有"编造"的成分。这是 Ragas 的旗舰指标,直接衡量幻觉风险。
- Answer Relevancy(答案相关性):答案是否紧扣用户的问题,有没有跑题或灌水。
- Context Precision(上下文精确度):检索回来的内容里,有多少是真正相关的?它惩罚"噪声"——召回一堆不相关内容会让分数下降。
- Context Recall(上下文召回率):回答问题所需的关键信息,检索环节有没有都找齐?它惩罚"遗漏"。
这里有一个社区反复强调的反直觉发现:这四个指标不是彼此独立的,不能只看平均分。比如"高忠实度 + 低答案相关性"意味着系统很安全但没用——它老老实实复述上下文,却答不到点子上;“低精确度 + 高召回率"则意味着检索环节在"宁可错杀一千”,把噪声也一起捞了进来。理解指标之间的权衡,才能对症下药地优化。
5 分钟快速上手

Ragas 的快速入门设计得相当友好。按照官方文档,你只需三步就能跑通一个完整的评估项目:
第一步,创建项目。推荐用 uvx,无需预装即可自动下载运行:
uvx ragas quickstart rag_eval
cd rag_eval
或者先 pip install ragas,再执行同样的 quickstart 命令。第二步,安装依赖并设置 API 密钥。项目默认使用 OpenAI,uv sync(或 pip install -e .)装好依赖后,导出 OPENAI_API_KEY 即可;文档也提供了 Anthropic Claude、Google Gemini、Ollama 本地模型和自定义提供商的配置方式。第三步,直接运行评估:
uv run python evals.py
生成的 rag_eval 项目结构清晰,rag.py 是你的 RAG 应用,evals.py 是评估工作流,evals/datasets 放测试数据、evals/experiments 放评估结果 CSV、evals/logs 放执行日志。运行后,评估会自动加载测试问题、查询你的 RAG 应用、调用指标评分,并在控制台展示结果、把 CSV 写入 experiments 目录。
进阶能力:合成测试数据的生成

评估最大的隐性成本,往往不是写评估代码,而是准备高质量的测试集。靠人工标注既慢又难覆盖边缘场景,Ragas 对此给出了一个很实用的解法:基于你的原始文档自动生成合成测试集。它通过 TestsetGenerator 结合 LLM 与知识图谱,自动产出"查询 + 参考上下文 + 理想答案"三位一体的测试样本,并且支持配置问题类型分布——比如单跳具体问题、多跳抽象问题等,让测试集既有事实性问答,也有推理、比较类问题。
社区的经验是,测试集规模可以分阶段规划:开发阶段 50–100 条覆盖主要场景,评估阶段 200–500 条补充边缘情况,持续监控阶段再定期更新 100–200 条;问题难度也建议按简单、中等、复杂大约 4:4:2 配比。自动生成的样本最好再叠加一轮领域专家的人工筛选,删除歧义问题、补充业务特有的边缘用例,这样的测试集才真正可信。
从"跑一次"到"跑起来":自定义与持续评估

Ragas 的指标体系是可扩展的。官方 quickstart 模板里就内置了一个 DiscreteMetric,你可以通过修改它的 prompt(评估标准)和 allowed_values(有效输出类别)来快速定义自定义指标,例如把输出限定为 excellent / good / poor 三档;也可以基于 AspectCritic 针对具体业务维度定制评估,比如电商客服场景下的"退换货政策回答准确性"。更关键的是,评估不该是一次性动作。把 Ragas 的评估流程接入 CI/CD,让每一次代码或检索策略变更都自动跑一遍测试集,再配合生产环境的在线监控,才能形成一个"发现问题 → 定位环节 → 优化 → 复测"的持续反馈闭环。
归根结底,Ragas 给 RAG 团队带来的最大价值,是把"效果好不好"从主观感受变成可以追踪、可以比较、可以优化的数字。当你下次被问到系统效果时,不必再靠感觉回答——四个指标的分数、趋势和样本级明细,会替你说出更有说服力的答案。
更多推荐




所有评论(0)