RAG 中的答案正确性 在检索增强生成 (RAG) 中,“答案正确性”是指生成的答案是否在事实上准确、逻辑上一致,并且直接回答了用户的问题。 与衡量两个文本在措辞或结构上有多接近的通用文本相似性不同,正确性侧重于响应的语义有效性。 例如,如果用户问“什么导致地球上的季节?”,正确的答案必须解释地轴倾斜和轨道运动,即使措辞与参考资料不同。 文本相似性指标可能会惩罚释义,但正确性优先考虑事实一致性而不是词汇重叠。 这种区别至关重要,因为 RAG 系统经常从多个来源合成信息,要求输出反映准确、统一的知识,而不是简单地镜像检索到的片段。
衡量正确性与文本相似性 传统的文本相似性指标,例如余弦相似度(用于嵌入)或 BLEU/ROUGE 分数(NLP 中常用),比较的是表面级别的特征,例如共享的关键词或 n-grams。 然而,答案正确性需要更深入的评估。 一种方法是蕴含验证:使用经过训练的模型来检测生成的答案是否在逻辑上遵循检索到的证据。 例如,如果检索到的文档声明“季节是由于地球 23.5 度地轴倾斜造成的”,那么生成的答案“地球轴相对于太阳的角度产生了季节”将在正确性方面得分很高,尽管它缺少直接的关键词匹配。 另一种方法涉及事实核查管道,该管道从答案中提取声明(例如,命名实体、日期)并根据受信任的数据库或原始检索语料库对其进行验证,以标记不一致之处。
实际实施示例 开发人员可以通过结合自动化和人工评估来实施正确性检查。 对于自动化测试,像 QAEval 这样的工具使用问答模型来评估答案是否包含所需的信息。 例如,在生成答案后,系统可能会问“此文本是否提及地轴倾斜?”,并根据模型的置信度对正确性进行评分。 单元测试还可以验证结构化输出:如果用户要求提供读取 CSV 文件的 Python 代码,测试可以执行生成的代码以检查运行时错误。 人工评估对于细微的情况仍然有价值,例如确保技术解释避免误导性的简化。 通过专注于根据基本事实知识和功能结果进行验证,正确性指标比单独的文本相似性更能提供对 RAG 性能的更稳健的衡量。