文章目录 / 点击展开
RAG 知识库不能只靠“问几个问题感觉不错”验收。至少要分别评估文档是否被正确检索、回答是否由证据支持、引用是否对应原文,以及没有证据时能否拒答。把这些环节混成一个总分,会让团队不知道应该修文档、分段、检索还是提示词。
先定义知识边界与服务承诺
写清知识库包含哪些产品、版本、地区和时间范围,哪些问题必须回答,哪些可以引导人工,哪些禁止回答。服务承诺越模糊,评测越容易被少量漂亮示例误导。
同时定义回答格式、引用要求、允许的推断程度和更新频率。对于价格、政策和流程等时效内容,必须能识别文档版本和生效日期。
第一步:建立分层评测集
从真实搜索、客服工单和业务人员问题中收集样本,覆盖直接事实、多文档组合、同义表达、错别字、模糊问题、过时问题、无答案问题和越权请求。每条样本记录期望证据、允许答案、拒答条件和风险等级。
评测集应分为开发集和保留集。开发集用于调参,保留集只在阶段验收时使用,避免团队针对固定问题过度优化。
第二步:单独评估检索质量
先不让模型生成答案,只检查前若干检索片段是否包含所需证据、排名是否合理、是否混入过期或无权限文档。记录命中、遗漏、噪音、重复和权限错误。
若正确文档根本没有进入候选结果,继续修改回答提示词通常没有作用。应检查文档可索引性、分段、标题、元数据、过滤条件、查询改写和召回数量。
第三步:评估回答与证据一致性
回答正确不代表过程可靠。逐条检查回答中的数字、条件、步骤和结论是否被检索片段支持,是否遗漏关键限制,是否把多个版本拼在一起。
请根据给定证据审查回答。
把回答拆成可验证陈述,标记完全支持、部分支持、冲突或无证据。
指出对应证据段落;不要使用你自己的知识补充。
高风险答案应由领域负责人制定参考答案或评分规则,不能完全依赖另一个模型自动打分。
第四步:验证引用可用性
引用需要能打开、定位到实际段落,并与回答内容一致。检查标题、文档版本、更新时间、权限和锚点。只显示“来源 1”但无法查看原文,不能算可靠引用。
对于合并多个来源的回答,标明每条结论分别来自哪里。发现来源冲突时应展示差异或升级人工,而不是静默选择一个答案。
第五步:测试拒答与安全边界
专门加入知识库没有覆盖、问题条件不足、文档互相冲突、请求其他用户数据、诱导忽略规则和要求执行危险工具的样本。好的拒答应说明缺少什么,并提供安全的下一步,而不是只回复“无法回答”。
拒答过多说明检索或阈值可能过严,拒答过少则可能产生无依据回答。阈值必须根据真实样本调节,不要把模型置信度当作准确概率。
第六步:按失败类型迭代
将失败归为文档缺失、文档过期、分段不当、元数据错误、检索遗漏、排序噪音、上下文截断、生成偏离、引用错误、拒答失败或权限问题。每轮只改一个主要变量并回归核心样本。
上线后持续收集用户点踩、人工改写、无结果查询和升级工单,但要抽样核对反馈质量。搭建阶段可参考 Dify 知识库 Agent 教程,研究类多源引用可结合 研究型 AI Agent。
评测验收清单
- 是否明确知识范围、版本和禁止回答内容。
- 样本是否来自真实问题并覆盖边界与无答案场景。
- 是否分别评估检索、回答、引用和拒答。
- 每个参考答案是否包含期望证据和允许范围。
- 是否测试过期、冲突、越权和提示注入请求。
- 失败是否分类到可操作的系统环节。
- 修改后是否使用固定保留集回归。
常见问题
需要多少条问题才能开始评测
可以先用 30 至 50 条高价值样本建立基线,再持续扩充。关键是覆盖任务和失败类型,而不是只追求数量。
能完全使用大模型自动评分吗
不建议。自动评分适合扩大初筛,但需要与人工标注校准,高风险和主观任务必须保留人工复核。
检索命中后为什么仍然答错
可能是上下文过长、证据冲突、提示词约束不足或模型忽略限制。应检查回答中的每条陈述与证据,而不是只看是否出现正确文档。