检索系统提供相关背景信息后,大型语言模型(LLM)便成为生成答案的核心。最终输出的实用性取决于所生成文本的质量。在生产环境中确保这种质量并非一次性检查,而是一个持续的流程。这关系到建立信心,确保您的RAG系统能够持续提供准确、连贯且有用的回答。这需要建立方法和衡量标准,以持续评估LLM的生成输出,这与评估检索组件或端到端系统性能有所不同。
评估生成文本的独特难题
评估LLM生成的文本,特别是在RAG系统的背景下,与传统机器学习任务相比,存在一系列独特的难题:
- 主观性和细致性: 什么构成一个“好”的答案可能高度主观。例如,一个用户可能喜欢简洁的答案,而另一个用户可能更看重更详细的解释。在自动化衡量标准中捕捉这些细致信息很困难。
- 缺乏单一真实值: 与图像分类等存在明确标签的任务不同,开放式生成通常缺乏单一“正确”的答案。LLM可能会生成一个完全有效且有用的回复,它与任何预设的参考回答可能有很大不同。
- 上下文忠实度: RAG的一个主要要求是,生成内容应忠实于所提供的上下文。LLM不应与源文档相矛盾或引入无关信息(幻觉),这是一个我们在“减轻RAG输出中的幻觉”一节中讨论的常见难题。自动评估这种忠实度并非易事。
- 规模和成本: 在高吞吐量的生产系统中手动审查每个生成输出是不切实际的。我们需要可扩展、成本效益高的自动化方法,将人工审查保留用于重要检查和校准。
- 动态性: 由于用户查询模式的变化、LLM的更新或知识库的调整,生成质量可能会随时间推移而发生偏移。因此,持续评估是不可或缺的。
生成文本质量的自动化衡量标准
虽然没有单一的自动化衡量标准是完美的,但它们的组合可以提供关于您的LLM输出质量的有益信号。这些衡量标准对于大规模监控趋势和发现问题尤为重要。
LLM充当评估者
一个有前景的方法是使用另一个强大的LLM(通常是像GPT-4或Claude这样更大、更有能力的模型)来充当评估者。您向这个“评估者”LLM提供用户查询、检索到的上下文、生成的答案以及一个评估标准。
例如,您可以这样提示评估者LLM:
给出以下内容:
用户查询:“Alpha-1项目的主要发现是什么?”
检索到的上下文:“Alpha-1项目于第三季度完成,发现由于新策略,市场渗透率增加了15%。发现的主要难题是供应链中断和竞争加剧。”
生成的答案:“Alpha-1项目得出结论,由于新方法,市场份额增加了15%。它还指出供应链存在问题。”
请根据以下维度(1-5分,5分最佳)为“生成的答案”打分:
1. **与查询的相关性:** 答案是否直接回应了用户的问题?
2. **对上下文的忠实度:** 答案是否与“检索到的上下文”事实一致,并避免引入外部信息?
3. **清晰度:** 答案是否清晰易懂?
请为每个维度提供分数并附上简短理由。
- 优点: 可以捕捉连贯性、语气以及传统衡量标准难以处理的细微忠实度问题等质量方面。通过提示具有高度适应性。
- 缺点: 使用强大LLM进行评估的成本。评估者LLM可能存在的偏见。评估质量很大程度上取决于评估模型和评估标准的清晰度。
事实性和忠实度衡量标准
这些衡量标准旨在验证生成的输出是否基于所提供的检索文档的事实。这对于旨在根据特定语料库回答问题的RAG系统尤为重要。
- 上下文一致性: 专门的模型或技术可以评估生成语句得到上下文支持的程度。这可能涉及使用自然语言推理(NLI)模型来检查生成语句和上下文语句之间的蕴含、矛盾或中立关系。
- 幻觉检测: 尽管在“减轻RAG输出中的幻觉”一节中有所提及,但特定的衡量标准可以标记包含无法从上下文中验证的信息的输出。这些标准通常在生成内容中查找命名实体、事实或声明,并尝试在检索到的段落中找到相应的支持。
安全性、合规性和风格衡量标准
确保生成内容安全、无偏见并符合您期望的输出特点(如在“控制LLM输出:风格、语气和事实性”中所述)需要专门的衡量标准。
- 毒性和偏见分类器: 预训练模型可以对文本的毒性、冒犯性语言或各种社会偏见进行评分。
- PII检测: 识别并标记输出中个人身份信息的工具。
- 可读性分数: 像Flesch-Kincaid年级水平或Gunning Fog指数这样的衡量标准可以提供文本复杂性的定量度量,有助于确保目标受众能够理解输出内容。
- 风格一致性: 如果需要特定的风格或语气,您可以训练一个分类器来识别一致性,或者使用LLM充当评估者并配合风格标准进行评估。
传统NLP衡量标准(在RAG中使用需谨慎)
BLEU、ROUGE和METEOR等衡量标准常用于机器翻译和文本摘要。它们衡量生成文本与一个或多个参考文本之间的重叠度(例如,n-gram)。
- ROUGE(面向召回的要点评估替代表): 常用于摘要任务,ROUGE-L衡量最长公共子序列。
- BLEU(双语评估替代表): 衡量与参考文本相比的n-gram精确度。
对于一般的RAG输出,这些衡量标准通常不太有用,因为通常没有单一的“黄金”参考答案。如果您的RAG系统执行的任务与摘要非常相似(例如,“根据查询总结此文档”),并且您可以创建参考摘要,它们可能会提供一些信息。然而,请谨慎使用它们,并大量补充其他方法。
一个跟踪上下文忠实度等生成质量衡量标准的潜在仪表板可视化效果可能如下所示:
上述图表跟踪了生成答案对其检索到的上下文的平均忠实度分数。第5周的下降与新的LLM部署同时发生,突出了在此类更改期间需要密切监控的需求。
人工评估:不可或缺的参照标准
尽管自动化衡量标准有所进步,但人工判断仍然是评估生成文本质量最可靠的方式,特别是对于实用性、语气和细微不准确之处等方面。虽然需要大量资源,但定期的人工评估是不可或缺的,原因如下:
- 校准自动化衡量标准: 人工评分可以作为真实值,以验证和调整您的自动化衡量标准。
- 发现未知的未知问题: 人类可以识别您的自动化系统未设计来检测的故障模式或质量问题。
- 评估复杂标准: 诸如创造力、说服力或同理心等方面,目前最好由人工评估。
设计人工评估规程
有效的人工评估需要清晰、一致且设计良好的规程:
- 评估标准和指南: 制定详细的评分评估标准,定义不同的质量维度(例如,准确性、流畅性、完整性、安全性、风格)以及每个维度的不同表现水平。提供好的和不好的回复的清晰示例。
- 评分量表:
- 李克特量表: 要求标注者在一个量表上对输出进行评分(例如,1-5分表示总体质量,或针对特定属性)。
- 成对比较: 向标注者提供两个不同的生成输出(例如,来自不同提示或模型的A/B测试),并要求他们选择更好的一个,或声明它们相同。这比绝对评分更容易、更一致。
- 排序: 要求标注者对一组生成输出从优到劣进行排序。
- 标注任务:
- 错误分析: 要求标注者不仅打分,还要对错误进行分类(例如,事实错误、不相关、语法错误、不安全)。
- 编辑距离: 要求标注者尽量少地编辑生成的回复,使其达到完美。编辑次数可以作为质量衡量标准。
标注者管理
人工评估的可靠性取决于您的标注者:
- 培训: 提供关于任务、指南和工具的全面培训。
- 标注者间一致性(IAA): 让多名标注者评估同一项目的一个子集。使用Cohen's Kappa或Krippendorff's Alpha等衡量标准计算IAA,以衡量一致性。
对于Cohen's Kappa:
κ=1−PePo−Pe
其中,Po 是标注者同意的比例,Pe 是他们偶然同意的预期比例。低IAA可能表明指南不明确或培训不足。
- 校准和反馈: 定期审查标注结果,讨论分歧,并完善指南以提高一致性。
该图显示了用户查询、检索到的上下文和生成的文本如何进入由自动化衡量标准和人工审查组成的评估层。此层评估生成输出的各个质量维度。
将生成质量评估整合到生产工作流程中
评估不仅仅是开发后的一个步骤;它是RAG系统运营生命周期的组成部分。
- 持续监控: 实施仪表板,持续跟踪自动化生成质量衡量标准。针对分数大幅下降或不良输出(例如幻觉、安全违规)激增设置警报。这提供了一个预警系统。
- 定期人工审查: 安排对生产流量样本进行定期人工审查。频率可能取决于系统的紧要程度和观察到的稳定性。这些审查有助于发现自动化系统遗漏的问题,并确保持续符合质量标准。
- 迭代的反馈循环: 系统地收集和分析用户反馈(包括显式的,如评分,和隐式的,如重新查询或废弃会话)。将此反馈与您的内部质量衡量标准关联起来,以确定生成组件的改进方面,例如提示词优化或LLM微调。
- 影子模式和A/B测试: 部署新的LLM、更新的提示词或更改生成参数时,请在“影子模式”(处理实时请求但不向用户显示输出)或通过A/B测试进行评估。在全面推出之前,比较新旧版本之间的生成质量衡量标准。这有助于做出数据驱动的决策,并最大限度地降低部署可能降低输出质量的更改的风险。
通过深思熟虑地结合自动化衡量标准和人工监督,并将这些评估实践嵌入您的MLOps工作流程中,您可以确保RAG系统的生成组件持续为您的用户产生高质量、可靠且有价值的输出。这种持续评估是维护用户信任和RAG应用在生产中整体有效性的基础。