RAGAS 与 DeepEval 在忠实度评估上的惊人差异:为什么一个能抓出幻觉而另一个却在点赞?
在构建 RAG(检索增强生成)系统时,我们最恐惧的不是模型说“我不知道”,而是它用极其自信的语气编造一个事实。为了量化这种“幻觉”,业内目前最主流的两种评估框架是 RAGAS 和 DeepEval。它们都提供了一个名为 faithfulness(忠实度)的指标,旨在检测生成内容是否完全基于检索到的上下文。然而,在最近的一组对比实验中,这两个框架对同一个“编造答案”的判定结果截然相反,这种极端的偏差揭示了 RAG 评估中一个深层的陷阱。
实验场景非常简单:给模型一段上下文,然后让它回答一个关于定价的问题。但此时,模型在没有任何依据的情况下,直接断言了一个具体的定价信息。这是一个典型的“编造”案例,任何合格的忠实度评估都应该将其判定为低分。
结果令人震惊。在使用 gpt-4o 且温度设置为 0 的环境下,连续运行五次,RAGAS 的打分始终是 0.000,准确地识别出了这次编造;而 DeepEval 的打分竟然纹丝不动地维持在 1.000(满分)。更离谱的是,DeepEval 在生成的评语中不仅没有指出错误,反而夸奖该回答“保持了准确性与一致性”,并声称“没有检测到与实际输出的矛盾”。
这意味着,尽管两个框架的指标都叫 faithfulness,且内部逻辑在各自的文档中看起来都自洽,但其中一个在面对明显的编造时完全“失明”了。
为了深挖这种差异的原因,我们需要分析该实验的整体设计。实验者冻结了 27 个输出样本,其中 6 个来自真实系统,另外 21 个是人为注入了单一已知缺陷的变体。这些缺陷类型覆盖得非常全面:包括遗漏事实、编造数字、未拒绝回答、附属矛盾以及语义反转。为了排除 LLM 随机性的干扰,每组样本都使用了 gpt-4o 在温度 0 下重复运行五次。
在判定标准上,实验采用了极其严苛的“门控”逻辑:只有当一个缺陷在所有五次重复实验中都被标记出来,才算作被成功捕获。如果其中有一次漏检,该指标在生产环境的门控机制中就被视为不可靠。
在这种高压测试下,RAGAS 和 DeepEval 展现出了两极分化的表现。RAGAS 的逻辑倾向于“严格核对”,它会将生成内容拆解为多个断言,逐一比对上下文。只要有一个断言在上下文中找不到依据,分数就会骤降。而 DeepEval 在处理某些特定类型的编造(尤其是数字编造)时,似乎陷入了一种“语义宽容”的误区,它可能在判断“矛盾”时过于依赖于文本的流畅度和逻辑一致性,而忽略了事实本身的缺失。
对于开发者来说,这个结果敲响了警钟:不要迷信任何单一的评估分数。即使是业界认可的框架,其内部 Prompt 的微小差异也会导致在面对“幻觉”时产生截然不同的判定。如果你在优化 RAG 系统,建议在引入自动化指标的同时,必须保留一套由已知缺陷组成的“黄金测试集”,通过对比不同框架对已知错误的捕获率,来确定哪个指标在你的具体业务场景下更具鲁棒性。
DeepEval这自洽性逻辑简直离谱,AI自己骗自己都能拿高分,谁敢拿它做基准?