要在没有标准数据集的领域(例如内部公司文档)评估 RAG 系统,您必须创建一个自定义测试集,以反映真实世界的用例。首先定义系统的范围和目标。例如,如果 RAG 应用程序回答有关内部人力资源政策或工程准则的问题,请识别常见的用户查询和预期的输出。与领域专家合作,整理一份具有代表性的问题列表并验证正确的答案。这确保了测试集与实际用户需求和领域特定知识保持一致。 没有这一步,评估可能会与实际场景不符,从而导致不可靠的指标。
接下来,通过抽样文档并生成查询-答案对来构建测试集。从内部文档(例如,项目报告、合规手册)中提取关键主题,并手动制作用户可能会提出的问题。 例如,像“提交安全事件报告的流程是什么?”这样的查询应该映射到文档中的特定章节。 包括问题的变体(例如,改述、模棱两可或多跳查询)以测试鲁棒性。 用预期的答案和支持它的文档段落来注释每个查询。 为确保质量,让领域专家审查这些对的子集,并根据反馈进行改进。 此过程模仿了真实世界的复杂性,并确保测试集捕获了边缘情况。
最后,设计针对该领域量身定制的评估指标。 使用检索指标,例如 precision@k(有多少相关文档位于前 k 个结果中)和答案质量指标,例如准确性、完整性和相关性。 例如,如果系统检索到三个文档,但只有两个是相关的,则 precision@3 将为 66%。 对于答案生成,手动评估输出是否正确地解决了查询并引用了正确的来源。 尽可能自动化检查 - 例如,使用生成答案和参考答案之间的语义相似度分数 - 但优先考虑人工评估以进行细致的判断。 通过在自定义集上测试系统,识别失败(例如,遗漏的文档或不正确的摘要),并改进模型或检索管道来进行迭代。 即使在没有标准化基准的情况下,这种方法也能平衡严谨性和实用性。