向量数据库

评估指标体系:召回率、QPS 与延迟分位数

进阶评估与成本约 25 分钟kp-024

前置知识

一句话定义

向量检索的评估三件套:recall@k(找得全不全)、QPS 与 p99 延迟(找得快不快、稳不稳)、内存/成本(付得起付不起)——三者必须在同一张图上联合读,任何单指标结论都是误导。

为什么重要

"快 40%"“召回 95%"这类宣传数字单独看都无意义:快 40% 是在什么召回下?95% 是 top 几、什么数据集?指标体系是调参(kp-009)、选型(kp-023/027)、排错(kp-030)共同的度量衡——没有它,一切优化都在盲飞。

前置知识

kp-004(ANN 与召回的基本定义);统计学常识(分位数)。

核心概念

原理与机制

recall@k 的严格测法:

对每个查询 q:
  GT  = Flat 精确检索的 top-k   (ground truth)
  ANN = 被测系统返回的 top-k
  recall@k(q) = |GT ∩ ANN| / k
总体 recall@k = mean over 查询集

三个测量纪律:

  1. 同口径:比较两个配置时,除被测参数外全部相同(硬件、并发、预热、数据量)。
  2. 先预热:冷缓存(页缓存/连接池/JIT)的首批查询会严重拉高延迟,必须丢弃预热样本。
  3. 并发爬坡:QPS 不是单线程延迟的倒数——从低并发逐步加压,记录每档的 p99,找到 p99 逼近业务预算的拐点,那才是"可承诺 QPS"。

延迟与吞吐的联动:单次查询 2 毫秒 ≠ QPS 500(还有合并、锁、内存带宽竞争);生产承诺必须来自爬坡曲线。

公式或模型

recall@k = |GT_k ∩ result_k| / k
nDCG@k   = DCG@k / IDCG@k,  DCG@k = Σ_{i=1..k} rel_i / log2(i+1)
可承诺QPS = max{ 并发c : p99(并发c) ≤ 延迟预算 }

图示

延迟(ms)
  8 ┤                    ×  ← p99(长尾,事故区)
  4 ┤            ×
  2 ┤      ▲               ▲ = p50
  1 ┤  ▲
    └──┬────┬────┬────┬───► 并发数
      16   32   64  128
 拐点后 p99 陡增 → 该并发档就是可承诺QPS的上界

实例或案例

两个配置的"数字陷阱":A 配置 p50 = 1.2 毫秒、p99 = 45 毫秒;B 配置 p50 = 2.0 毫秒、p99 = 3.5 毫秒。按平均/中位数 A 更快,按 p99 B 完胜——若业务 SLA 写的是"99% 请求 < 10 毫秒",A 是不可用的。结论形态取决于你读哪个分位数,这就是必须三件套联读的原因。

直观类比

评估像体检:recall 是"视力"、QPS 是"耐力"、p99 是"心电图应激反应"。只报一项("视力 5.2!")不能说明健康;三张单联读,且要和"上一年的自己"比(同口径),而不是和别人的体检单比。

常见误区

  1. "用 top-1 命中率代表检索质量"——top-1 对排序噪声极敏感且与业务(要 top-10)脱节;指标 k 必须与业务消费的 k 一致。
  2. "平均值够用"——长尾才是事故源;任何延迟承诺只看 p95/p99。
  3. "召回率在过滤场景不变"——叠加过滤后局部召回可能骤降(kp-017),必须按选择率分桶分别测 recall。
  4. "拿最佳单点参数对比两个索引"——每个索引有自己的最优工作点,正确比法是"曲线对曲线"(ann-benchmarks 的方法论)。

自测题

  1. recall@10 = 0.93,某配置 p99 = 12 毫秒——这两个数字能直接比较优劣吗?
  2. 答:不能。召回与延迟是权衡两端,只有放进"同数据集、同口径"的权衡曲线,按业务约束(先定延迟预算或先定召回下限)选工作点后才有可比性。

  3. 为什么"不限延迟的 QPS"没有意义?
  4. 答:把延迟放到秒级任何人都能刷出高吞吐;吞吐指标必须绑定延迟约束,工程上以"p99 达标前提下的最大 QPS"为准。

  5. 测压时为什么必须丢弃预热阶段样本?
  6. 答:冷页缓存、连接建立、JIT 编译等一次性成本集中在首批请求,混入统计会系统性高估延迟、误判配置优劣。

与其他知识点的关系

kp-025 把本篇指标装配成完整评测工作流;kp-009 的调参每一步都在消费这里的测量纪律;kp-030 的排错依赖 p99 与分桶召回的监控。

延伸阅读

Aumüller, Bernhardsson, Faithfull, "ANN-Benchmarks"(SISAP 2017)——"以召回-延迟曲线评价索引"的标准化框架,本篇方法论的行业出处。

相关知识点