人人都会AI编程

自动评估:RAGAS、TruLens 等评估框架

更新时间:2026-07-12

RAG 系统的效果不仅取决于检索和生成两个环节各自的质量,更取决于它们之间的配合。一个片段可能检索得很精准,但模型生成的回答却偏离了原意;也可能模型表达流畅,但检索到的材料本身就不相关。手动逐条检查固然可靠,但在开发迭代、版本对比、持续监控时完全不现实。自动评估框架正是为了用可量化、可复现的方式衡量 RAG 系统的整体表现而出现。

目前开源社区中,RAGASTruLens 是两款被广泛使用且侧重点不同的评估工具。它们都提供了一套针对 RAG 特性的指标体系,能在无需大量人工标注的情况下,快速给出系统的质量画像。

1. RAGAS:专注 RAG 全链路的评估框架

RAGAS(Retrieval Augmented Generation Assessment)专为 RAG 系统设计,其核心理念是将评估拆解为检索质量和生成质量两个维度,并进一步细化成可计算的指标。使用 RAGAS 时,只需要准备一组由问题、检索到的上下文片段、生成的回答以及可选的参考真值组成的数据集,框架即可自动计算多项分数。

核心指标(均基于指标导向)

RAGAS 目前提供的主要指标包括:

  • 上下文召回率(Context Recall):衡量检索到的上下文是否覆盖了回答中所需的关键信息。如果回答中提及的事实都能在检索到的片段中找到,则召回率高。该指标关注检索是否“漏掉”了重要内容。
  • 上下文精确率(Context Precision):衡量检索到的上下文中有多少是真正相关的。精确率越高,说明无关片段越少,避免模型被噪音干扰。
  • 忠实度(Faithfulness):衡量生成的回答是否完全基于检索到的上下文。它通过检查回答中的每个陈述是否可以从上下文中推断出来。这是衡量幻觉程度的重要指标。忠实度低的回答可能在编造上下文没有的信息。
  • 答案相关性(Answer Relevancy):衡量回答与原始问题之间的语义匹配程度。它通过让另一个 LLM 根据生成的回答反向生成问题,再计算与原始问题的相似度,从而判断回答是否紧扣问题、未跑题。
  • 上下文相关性(Context Relevancy):衡量检索到的上下文与问题之间的相关性。它是从检索端对任务匹配度的直觉性把控,避免检索到毫不相干的材料。

使用方式

  1. 准备包含 questionanswercontexts(检索到的片段列表)和可选的 ground_truth 字段的数据集。
  2. 调用 RAGAS 的 evaluate 方法,配置所需的指标。
  3. 得到每项指标的分数和整体结果,支持导出报告。

RAGAS 的设计较为轻量,指标计算依赖 LLM 判断,因此评估质量与所使用的评判模型能力相关。推荐使用性能较强的模型(如 GPT-4 或同级别开源模型)作为评判器,否则指标本身的可靠性会下降。

2. TruLens:面向应用的反馈评估与迭代

TruLens(由 TruEra 开源)侧重于为应用提供可观测、可反馈、可迭代的评估层。它不限于 RAG,也适用于其他 LLM 应用,但对 RAG 场景提供了针对性的内置反馈函数。

TruLens 的核心思想是将 AI 应用包裹在一个“记录器”中,自动捕捉输入、输出、中间步骤(如检索到的上下文),然后运行一系列反馈函数(Feedback Functions),对每个环节打分。这些反馈函数既可以是基于规则的(如长度、特定词汇检测),也可以是基于链式推理或另一个 LLM 的判断。

常用反馈函数(针对 RAG)

  • 答案准确性(Answer Accuracy):如果提供了参考真值,可计算回答与真值之间的语义相似度。
  • 上下文相关性(Context Relevance):判断检索到的片段是否与问题相关。
  • 上下文充分性(Groundedness):衡量回答中的主张是否得到检索上下文的有力支持,类似于 RAGAS 的 Faithfulness。
  • 提示注入或安全类反馈:检测是否有越狱尝试或不当内容。

使用方式

  1. 定义 TruCustomAppTruLlama(针对特定框架如 LlamaIndex 的封装),将 RAG 管道包裹起来。
  2. 在调用时,TruLens 自动记录每次交互的完整 Trace(包括检索结果、提示模板、最终回答)。
  3. 配置反馈函数,并对每条记录评估,结果汇总到仪表盘中。
  4. 可通过 TruLens 的 Streamlit 可视化页面直观查看不同链路的评分分布,快速定位是检索不佳还是生成可信度不足。

TruLens 的突出优势在于全链路的可观测性和交互式调试。它不仅能给出分数,还能让你回溯每次请求的中间状态,非常适合在开发阶段快速诊断问题。

3. 两者的对比与选择建议

| 特性 | RAGAS | TruLens |
|------|-------|---------|
| 专注领域 | 专为 RAG 评估设计 | 通用 LLM 应用,包含 RAG 反馈 |
| 使用方式 | Python 库,直接计算指标 | 包裹应用 + 反馈函数 + 可视化仪表盘 |
| 指标丰富度 | 检索与生成全覆盖 | 灵活自定义,内置常用反馈 |
| 对标注要求 | 需要 answer 和 contexts,ground truth 可选 | 可无 ground truth 运行 |
| 部署复杂度 | 轻量,适合批量评测 | 需额外启动仪表盘,适合在线监控和调试 |

在实际项目中,二者可以互补。建议在开发和离线评测阶段使用 RAGAS 快速算分、比较不同配置(如切分大小、检索参数)的效果;在系统部署上线后,使用 TruLens 对线上流量进行持续监控和问题定位,以便及时发现检索或生成质量的下滑。

通过自动化评估,团队能把“感觉效果好”转变为“指标可验证”,让 RAG 系统的优化从玄学走向工程化,稳步提升回答的可靠性与用户信任度。