单独评估检索器和生成器组件能够提供有价值的诊断信息,但这种方法往往无法全面衡量RAG系统在实际应用中的整体效用。检索器可能找到高度相关文档(高召回率),但如果生成器未能正确整合或忽略这些文档,最终答案仍可能很差。反之,如果能力较弱的检索器提供了不相关的上下文,优秀的生成器也可能难以发挥作用。这种关联强调了评估整个系统的必要性。
端到端评估框架提供了专门设计的方法和工具,用于评估RAG管道响应用户查询所生成的最终输出质量。它们不只关注中间步骤,而是旨在回答一个基本问题:‘给定一个查询,RAG系统是否产生了有帮助、准确且有充分依据的答案?’
为何使用端到端框架?
全面评估系统具有多项优势:
- 全面评估: 这些框架衡量检索和生成的组合效果,更真实地反映了系统在实际任务中的表现。
- 捕获组件间交互问题: 它们能发现由组件之间交互产生的问题。例如,它们可以帮助判断糟糕的答案是由于检索到的上下文不相关(检索问题),还是由于大语言模型未能有效利用良好上下文(生成问题)。
- 标准化衡量: 它们通常提供一套明确的指标和程序,使得在不同系统配置或版本之间进行评估时更加一致。这使得追踪改进或客观比较不同方法变得更容易。
- 自动化潜力: 许多框架旨在对问题数据集(有时也包括参考答案或上下文)进行评估过程的自动化,从而节省大量人工工作。
主要框架及相关思路
为促进端到端RAG评估,出现了一些框架。虽然我们在此不会详细实现它们,但理解它们的目标很有启发。一个值得关注的例子是RAGAs(Retrieval-Augmented Generation Assessment,检索增强生成评估)。它侧重于从不同角度衡量性能,不一定需要为每个查询提供手动标注的“真实”答案。RAGAs常常运用强大的大语言模型来帮助判断RAG系统输出的质量,评估指标包括:
- 忠实度: 生成的答案在多大程度上准确反映了检索到的上下文中的信息?如果答案包含上下文不支持或与之矛盾的信息,则被认为是不忠实的。这直接衡量了生成组件保持信息一致的能力。
- 答案相关性: 生成的答案与原始用户查询的相关程度如何?答案可能忠实于上下文,但未能解决用户的实际问题。这评估了生成器为特定查询有效使用上下文的能力。
- 上下文精确度: 在检索到的上下文中,有多少信息是真正相关且对回答查询有用的?这评估了检索器找到聚焦上下文的能力,最大限度地减少传递给生成器的噪音。低精确度分数可能表明生成器承受着不相关信息的负担。
- 上下文召回率: 检索到的上下文是否包含知识源中完全回答查询所需的所有必要信息?这衡量了检索器找到所有相关信息片段的能力。低召回率意味着生成器可能缺乏全面回答所需的信息,即使检索到的片段单独看是相关的。
TruLens、DeepEval等其他平台,或LangChain和LlamaIndex等框架内的评估模块,也提供端到端RAG评估工具,通常集成这些或类似的指标。
它们通常如何运作
通常,使用端到端评估框架涉及以下步骤:
- 准备评估数据集: 这通常包含一组有代表性的用户查询。根据具体指标,它也可能包括理想或“真实”答案,或与每个查询关联的参考上下文。
- 运行RAG系统: 将评估数据集中的每个查询通过您的RAG管道处理,以生成响应并收集检索到的上下文。
- 计算指标: 将所选框架的功能或方法应用于生成的输出(答案、检索到的上下文)和评估数据集(查询,可能包括真实答案/上下文)。这通常涉及使用另一个大语言模型作为评判者,或采用统计方法根据忠实度、相关性等指标对输出进行评分。
- 分析结果: 审查汇总分数和可能的单个结果,以识别系统性弱点(例如,持续低忠实度分数可能表明存在提示工程问题或生成器模型不当)。
以下是使用大语言模型作为评判者的方法来评估忠实度和上下文精确度的简化视图:
简化流程图,展示了RAG输出的组件(答案、上下文)和原始查询如何输入到评估提示中,由另一个大语言模型处理,从而生成忠实度、上下文精确度等指标的分数。
考量与局限
尽管功能强大,端到端框架也存在一些需要考量的方面:
- 评估数据质量: 评估的有效性在很大程度上取决于测试查询(以及如果使用,真实数据)的质量和代表性。
- 成本与延迟: 依赖强大的大语言模型进行评判的框架可能会产生显著的计算成本,并且运行耗时,尤其是在大型数据集上。
- 指标局限性: 没有一套单一的指标能完美捕捉RAG系统所有理想的特质。语气或简洁性等主观方面可能无法完全体现。
- 大语言模型评判者的偏差: 如果使用大语言模型进行评估,其自身的偏差或局限性可能会影响分数。
- 演进中的研究方向: RAG评估是一个活跃的研究方向,最佳实践在不断演进。
尽管有这些考量,端到端评估框架仍提供了一套重要的工具,用于理解您的RAG系统性能。它们不仅进行独立的组件检查,更评估系统在多大程度上解决了用户的信息需求,从而指导更有效的改进。