评估 · 2023
RAGAS
没有标准答案时,用模型分别给检索和生成打几项代理分。
要解决的问题
很多业务问题没有唯一的标准答案。只看最终对错,无法知道是检索没找到,还是模型没有照着资料写。
相对前一代的变化
忠实度只关心答案是否被上下文支持。RAGAS 同时估计上下文是否相关、答案是否忠实、答案是否扣题。
做法
Es 等人用一个评判模型,在不依赖人工标注答案的情况下给这几项打分,并接到 LangChain 和 LlamaIndex 的开发流程里。自动分数需要和人工抽查一起看,才能判断是检索、生成还是评测器本身出了问题。
局限
代理分不是任务准确率。评判模型的偏差会直接变成评估偏差,不同模型和提示词之间也不能随便比绝对分数。
在链路中的位置
位于系统之外,用来分开看检索质量和生成质量。
详解
「详解」根据 Datawhale《All-in-RAG》 的 评估工具 改写,有删节和重组,未包含原教程的代码、图片和练习。原教程与本节详解均按 CC BY-NC-SA 4.0 许可提供:使用时需署名并标明修改,不得用于商业目的,再次改编须以相同许可共享。
工具计算分数,测试集仍要自己准备
LlamaIndex 的评估器可以批量比较两套检索策略。例如用同一批问题分别运行句子窗口和普通切块,评估忠实度与相关性,再看差异来自哪一类问题。批量运行前,查询、检索上下文和答案都要按统一格式保存。
RAGAS 把样本拆成问题、上下文、答案和参考
RAGAS 的一条样本通常包含问题、检索到的上下文、模型答案,以及可选的参考答案。上下文精确度和召回率诊断检索。忠实度检查答案是否越出上下文。答案相关性检查是否回应了问题。有参考答案时,还可以看事实是否与参考一致。
这些指标大多由评判模型完成。更换评判模型或提示词,绝对分数就会变,因此比较实验时必须固定评估器版本。分数下降不一定是系统变差,也可能是评判器变得更严格。
追踪负责解释分数从哪一步来
Phoenix 一类工具记录每次调用的输入、检索、模型输出、延迟和异常。它回答的是某一次回答经历了什么,而不是替代离线指标。评估时先用 RAGAS 或 LlamaIndex 找到低分样本,再按追踪回到具体的查询、命中和提示。
三个工具可以同时存在:LlamaIndex 适合比较本框架内的策略,RAGAS 适合形成稳定的数据集分数,Phoenix 适合线上排查。选择时看数据能否导出、评判模型能否固定,以及失败样本能否回到原始文档。