如何测量召回率,是否分问题类型进行评测?
未标记
考查重点:相关证据标注与分桶召回。标注每题相关证据,Recall@K=前K命中相关证据数/相关证据总数;按事实、跨段、表格等类型分桶
本题目录
参考答案
核心回答
召回率衡量的是:应该找回的相关证据中,实际找回了多少。测量前要固定知识库与评测集,为每个问题标注相关文档或片段,并明确统计单位、Top-K 和检索阶段。对一个问题,Recall@K = 前 K 个去重结果中命中的相关证据数 ÷ 已标注的相关证据总数。
需要按问题类型分别评测。精确编号查询、同义表达、多跳问题、带时间或权限约束的问题,失败原因不同;只看总体平均值可能掩盖某类问题的退化。每组应同时报告样本数、Recall@K,并结合命中率、排序、最终上下文与答案质量判断。
例如,假设某题有 3 个已标注相关片段,前 5 个结果命中其中 2 个,Recall@5 是 2/3,约 66.7%;虽然已经“命中”,仍有一个相关片段没找回。因此“至少命中一个”的 Hit Rate 与“找回多少”的 Recall 不能混用。进一步还要确认这些证据是否经过重排和截断后进入模型上下文,不能把粗召回成功直接当成回答成功。
先确定什么算相关证据
评测样本至少包含原始问题、必要会话背景、问题类型、相关证据及其定位、时间或版本约束,以及检索时适用的权限范围。相关性依据业务问题判断,向量分数高并不自动算相关。
例如,查询某一产品版本的退款规则时,主题相似但适用于旧版本的文档不应直接判为正确证据。涉及权限的评测,也应在该用户可用的知识范围内定义预期结果,同时单独检查越权返回。
统计单位要保持一致:按文档评测,就将同一文档的多个片段合并后计数;按片段评测,就使用稳定的片段标识与出处。更改切块策略后,旧片段 ID 可能失效,可根据原文位置和内容重新映射标注,避免仅因重新编号就产生假退化。
标注可以结合业务专家、用户问题与多路检索候选复核。只标某一个检索器找到的结果,容易漏掉其他有效来源。大型语料难以穷尽全部相关文档时,应说明指标是相对于当前已知标注集合,并持续补充遗漏标注;新发现的正确资料不应简单当成错误召回。
分清几个经常混用的指标
Recall@K:相关证据找回多少,分母是该题的相关证据总数。Precision@K:前 K 个结果里有多少相关内容。前述示例实际返回 5 个结果,其中 2 个相关,Precision@5= 2/5 = 40%。Hit Rate@K:有多少问题在前 K 个结果中至少命中一个相关证据。它更适合观察“能否找到一个答案来源”,不能表达多证据是否完整。MRR、nDCG等排序指标:相关证据是否排得靠前。召回集合相同,排序不同仍可能影响最终上下文。
如果每题只标一个正确来源,Recall@K 与是否命中的结果会相同;这时更要说明标注设计,而不是把两个指标理解为普遍等价。
数据集汇总也要说明口径。逐题 Recall 取平均是宏平均;先合并所有题的命中数和相关证据数再相除是微平均。假设两题分别命中 2/3 和 1/1,宏平均约为 83.3%,微平均为 3/4,即 75%。二者对相关证据数量不同的问题赋予的权重不同。
无答案问题没有相关证据,Recall 的分母为零,应单独评测是否返回无关资料、是否恰当澄清或拒答,并报告这类问题的数量。使用评测工具时还要检查它是否自动跳过空标注样本,避免这些问题从报告中悄然消失。
怎样分问题类型评测
分组应服务于业务与排错,可以从下面几类开始,再根据真实问题调整:
- 精确匹配:错误码、SKU、型号和版本号,观察关键词、数字、符号是否保留。
- 语义表达:口语、省略、同义词和多轮指代,观察问题补全与语义检索是否有效。
- 多证据问题:跨段落、跨文档或多跳查询,检查是否找到回答所需的全部证据点。
- 约束问题:指定时间、地域、版本或用户权限,检查过滤是否正确。
- 无答案或信息不足:检查误召回、澄清和拒答,避免相似主题资料诱导错误回答。
一题可以有多个标签,但汇总时要交代标签是否重叠。每组都报告样本数,少量样本的高分只反映有限观察。需要估计整体业务效果时,可按真实流量权重汇总;对于低频但关键的权限、时效或多跳场景,仍保留单独结果。
多跳题还应标注必要证据点或可替代的完整证据组合。例如既要找到申请条件,又要找到例外条款,命中其中一项不足以支撑完整回答。普通文档 Recall 可能包含多个互相替代的来源,因此还需要单独检查必要信息是否覆盖,不能机械要求找回所有重复表达的文档。
让结果能够复现并解释改动
分别保存粗召回候选、重排结果和最终上下文中的证据 ID。这样可以区分:正确证据从未进入候选、被排序挤出、被权限或版本条件过滤,以及被上下文预算截掉等情况。多路召回合并时先按约定标识去重,同一证据命中两次不能算两份覆盖。
比较方案时,固定问题集、标注、知识库快照与权限,并记录切块、Embedding、索引、查询改写和重排配置。调参集与最终测试集分开,改动后按同一问题类型比较,而不是只展示新方案有优势的样本。Top-K 增大可能提高覆盖,也会增加候选处理和上下文成本,最终需要同时观察延迟、噪声与回答质量。
常见追问
Ragas 的 Context Recall 就是上述文档 Recall 吗?
要看具体实现。基于 ID 的指标比较检索 ID 与参考 ID;基于 LLM 的 Context Recall 则会拆分参考答案中的声明,估计检索上下文支持了其中多少。后者需要校准参考答案与评判模型,分母和判断方式都不同,不能与文档 Recall 混报一个百分比。
向量库宣称的 ANN Recall 能代表业务召回率吗?
ANN Recall 通常衡量近似检索结果对精确近邻结果的覆盖,回答的是索引近似损失。业务 Recall 使用人工或业务标注的相关证据,衡量的是检索相关性。精确找回最近向量,也可能找错业务资料。
命中了正确文档,为什么答案仍不对?
继续查看命中的片段是否包含关键条件、是否进入最终上下文,以及生成结果是否正确使用和引用证据。文档级命中、片段完整性与答案正确性是不同层次。
对应教程
- RAG 检索增强生成:评测与观测、检索问题和生成问题的区分,帮助建立“问题—期望证据”的回归思路。本文补充召回率的分母、问题分组与汇总方法。
- 向量数据库与 Embedding 实战:精确检索与 ANN 的区别,帮助理解索引近似误差和业务证据相关性为什么需要分别评测。
参考资料
- 国内:JavaGuide:RAG 检索优化:借鉴评测字段、阶段指标与版本记录,说明正文中证据标注及沿候选、排序和最终上下文定位遗漏的方法。
- 国内:Onefly:RAG 与检索:依据精确、语义与混合查询的分桶方法,说明正文中总体 Recall 不能掩盖不同问题类型退化的原因。
- 国内:Datawhale:智能体性能评估:借鉴分类与加权汇总的方法,说明正文中各组样本数和流量加权结果的报告;来源的函数调用示例仅用于分组方法,检索指标按本文定义。
- 国外:Sentence Transformers:InformationRetrievalEvaluator:依据查询、语料和相关文档标注约定及配套计算,说明正文中 Recall、Precision、Hit Rate 的分母和宏平均、空标注边界。
- 国外:Ragas:Context Recall:依据参考声明和文档 ID 两种覆盖定义,说明正文中 Ragas Context Recall 与文档 Recall 不能混报的原因。


