主题
端到端评估应当成为你 RAG 应用的指引信号——给定这些数据源和一组查询,我的工作流能生成正确的回答吗?
起初逐条检查查询与回答是有帮助的;但随着失败与边界用例增多,逐条看可能就不再可行,此时更好的做法是定义一组汇总指标或自动化评估,并对它们在告诉你什么、该往哪里深挖形成直觉。
准备评估集
不妨先从一小批但足够多样的查询开始,随着发现有问题的查询或交互逐步补充更多样例。
我们已经做了一些工具,能给定一组待查询的文档自动为你生成数据集(见下方示例)。
未来我们还能针对工具自动创建数据集。
评估选项的谱系
当存在正确答案时,定量评估更有用——例如校验根据计划所选的工具及其输入是否正确、检索特定片段的信息,或尝试产出符合某个 schema 的中间输出(例如 JSON 字段)。
当生成的是长篇回答、目标是有用而不必完全准确时,定性评估更有用。
评估选项构成一条谱系:从指标、较便宜的模型、较贵的模型(GPT4),一直到人工评估。
下面是评估模块的一些用法示例:
发现问题 —— 敏感性测试
面对复杂工作流,你可能看不清流程的哪些部分在影响结果。
敏感性测试是一个很好的切入点:帮你决定哪些组件值得单独更彻底地测试或调整,以及数据集中的哪些部分(例如查询)可能在产生问题结果。
关于如何用敏感性测试等方法自动发现问题的更多细节,将会很快补充。
在更传统的机器学习领域,这方面的例子有 Giskard。
指标集成
用 GPT-4 来做评估可能很昂贵,尤其是当你的开发集变大时。
指标集成用一个由弱信号组成的集成(精确匹配、F1、ROUGE、BLEU、BERT-NLI 与 BERT-similarity)来预测那些更贴近金标签的昂贵评估方法(人工标注/GPT-4)的输出。
它面向两个用途:
- 在开发阶段,用较便宜、较快的方式在大数据集上评估改动。
- 在生产监控阶段,挑出异常样本送进一步评估(GPT-4 / 人工告警)。
我们还希望指标集成是可解释的——相关性分数与权重分数应当能提示我们,哪些指标最能刻画评估标准。
关于方法论的更多讨论,我们会在后续更新中展开。