如何测量召回率,是否分问题类型进行评测?

考查重点:相关证据标注与分桶召回。标注每题相关证据,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 的分母为零,应单独评测是否返回无关资料、是否恰当澄清或拒答,并报告这类问题的数量。使用评测工具时还要检查它是否自动跳过空标注样本,避免这些问题从报告中悄然消失。

怎样分问题类型评测

分组应服务于业务与排错,可以从下面几类开始,再根据真实问题调整:

  1. 精确匹配:错误码、SKU、型号和版本号,观察关键词、数字、符号是否保留。
  2. 语义表达:口语、省略、同义词和多轮指代,观察问题补全与语义检索是否有效。
  3. 多证据问题:跨段落、跨文档或多跳查询,检查是否找到回答所需的全部证据点。
  4. 约束问题:指定时间、地域、版本或用户权限,检查过滤是否正确。
  5. 无答案或信息不足:检查误召回、澄清和拒答,避免相似主题资料诱导错误回答。

一题可以有多个标签,但汇总时要交代标签是否重叠。每组都报告样本数,少量样本的高分只反映有限观察。需要估计整体业务效果时,可按真实流量权重汇总;对于低频但关键的权限、时效或多跳场景,仍保留单独结果。

多跳题还应标注必要证据点或可替代的完整证据组合。例如既要找到申请条件,又要找到例外条款,命中其中一项不足以支撑完整回答。普通文档 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 不能混报的原因。

相关面经

9 篇

携程

大模型算法工程师
一面
查看原面经 →
解释召回率含义,同时说明它的计算方式

美团

AI 应用开发工程师
秋招二面
查看原面经 →
召回率这个指标是怎么计算的?

猎聘

AI 应用开发工程师
查看原面经 →
Q7. 你们的召回准确率能达到多少?

字节跳动

后端开发工程师
一面
查看原面经 →
错召回、漏召回解决了吗?效果多少?

硅心科技

智能软件工程师
实习
查看原面经 →
怎么评测召回率的,对于用户不同方面的问题有分别的评测吗?
展开剩余 4 篇面经

阿里巴巴

Java 开发工程师
一面
查看原面经 →
平均检索度 80% 以上,有没有自己构建评估集?评估集是怎么处理的?处理了多少数据?

阿里巴巴

大模型开发工程师
转正实习一面、二面
查看原面经 →
你们检索召回精度是多少?

阿里巴巴

AI 应用开发工程师
暑期实习二面
查看原面经 →
有没有召回的准确率之类的过程指标

京东

大模型算法工程师
查看原面经 →
向量检索的准召率如何保障?你使用的向量数据库之间的差异是什么?

相关题目

4 题