向量数据库

自建评测工作流与基准陷阱

进阶评估与成本约 30 分钟kp-025

前置知识

一句话定义

自建评测 = 用自家数据分布构造带 ground truth 的查询集,按固定协议测出 recall/QPS/p99/内存,产出权衡曲线与分桶报告——它是调参、选型、排错的总裁判;配套的"基准陷阱清单"防止评测本身说谎。

为什么重要

公开基准(SIFT、GIST、ann-benchmarks 数据集)与自家负载几乎必然不同构:维度、分布、过滤模式、更新频率、硬件全不同。没有自建评测的团队,所有索引参数都在拍脑袋;有了它,kp-009 的调参、kp-023 的选型争论、kp-030 的排错才有一致的事实基础。这套流程的成本约两天,回报贯穿项目全程。

前置知识

kp-024(指标定义与测量纪律)、kp-006(Flat 产 ground truth)。

核心概念

原理与机制

六步工作流(可执行清单):

  1. 采样数据:从生产库分层抽样(按类目/时间/租户覆盖),规模贴近真实(至少十万级,最好百万级)。
  2. 构造查询:优先用真实查询日志;不足时用 LLM 基于文档生成问题(生成时不得让模型看到目标文档原文,防止泄漏——详见陷阱 1);标注每条查询的过滤条件与期望选择率。
  3. 计算 GT:用 Flat/暴力对每个查询算 top-k(k 与业务一致,如 10);存档固化,后续所有对比复用同一份 GT。
  4. 跑被测配置:每组配置独立进程、预热 N 次后开始统计;记录 recall@k、p50/p99、QPS(并发爬坡)、内存峰值、建库耗时。
  5. 产出曲线与分桶表:每索引一条 recall-延迟曲线;按选择率分桶的召回表;成本列(内存 GB 与月费折算)。
  6. 归档与复跑:脚本、数据指纹、环境参数入库;每次索引/参数/数据变更后重跑,形成回归基线。

基准陷阱清单(评测说谎的七种方式):

陷阱表现防法
1 数据泄漏LLM 生成的查询几乎照抄文档原句,检索"太好做"生成查询与文档做 n-gram 重叠检查;人工抽检
2 查询分布偏斜全是高频简单查询,长尾与过滤场景未覆盖按真实日志分布采样;强制包含低选择率桶
3 冷缓存首批查询拉高延迟固定预热次数并丢弃预热样本
4 单线程测吞吐QPS 被严重低估并发爬坡协议(kp-024)
5 跨库不同口径各库用不同 ef/索引参数对比每库扫参数取各自最优工作点,曲线对曲线
6 静态库假设只测查询忽略写入影响加测批量导入速率与 upsert 干扰下的 p99
7 指标错位用 top-1 recall 评 top-10 业务k 与业务消费口径对齐

公式或模型

本节不适用:流程篇,指标公式见 kp-024。

图示

生产数据 ─采样─► 评测集 ─Flat─► GT(固化)
                     │
     ┌───────────────┼───────────────┐
   配置A           配置B           配置C
     └───────► 曲线 + 分桶表 + 成本 ◄───────┘
                      │
              回归基线(每次变更复跑)

实例或案例

某团队评测"IVF-PQ vs HNSW":公开跑分显示 HNSW 全面占优;自建评测(1.2 亿真实文本向量、含 30% 带租户过滤查询)显示——无过滤场景 HNSW 确实领先,但租户过滤桶(选择率 0.002)中 IVF-PQ 配标量预过滤的 p99 反而低 40%(图遍历在稀疏合法子图上退化)。若按公开跑分选型将付出真实代价——分桶 + 自家数据改变了结论。

直观类比

自建评测像"新车试驾走你的通勤路线":车评人赛道圈速(公开基准)能淘汰烂车,但你的路线有一段烂路(低选择率过滤)和每天两次满载(写入高峰)——只有走自己的路线,数字才对你有效。

常见误区

  1. "评测一次就永久有效"——数据分布漂移后结论失效;把评测脚本接进变更流程,触发式复跑。
  2. "评测集越大越好"——GT 计算与运行成本随规模线性涨;1k~10k 条查询足以稳定估计 recall(置信区间可算),规模应花在数据侧而非查询侧。
  3. "只测查询路径"——导入时长、合并窗口、更新积压都是选型事故高发区(陷阱 6),评测协议必须含写路径。

自测题

  1. 如何检测 LLM 生成查询集的数据泄漏?
  2. 答:对每条生成查询与其来源文档计算 n-gram 重叠率,超阈值判泄漏;再加人工抽检"看查询能否脱离原文回答"。

  3. 为什么要"每库各自扫到最优工作点"再比曲线?
  4. 答:不同索引参数敏感性不同,拿库 A 的默认参数比库 B 的调优参数是口径作弊;只有曲线对曲线才反映真实能力边界。

  5. 过滤场景的评测协议必须包含什么?
  6. 答:按选择率分桶(如 0.001/0.01/0.1/0.5)的查询组,分别报告 recall@k 与 p99,并强制包含最低选择率桶。

与其他知识点的关系

kp-009 的调参流程是本工作流在单索引上的特化;kp-016 的融合收益、kp-031 的量化代价都用同一套协议度量;kp-023 误区 5/6 由本篇的纪律兜底。

延伸阅读

Aumüller, Bernhardsson, Faithfull, "ANN-Benchmarks"(SISAP 2017)——可复用的评测协议设计(参数扫描、曲线产出、环境固定),自建评测的直接模板。

相关知识点