犀牛鸟 2026 研究笔记 estelledc.github.io

Ch43: 挑战深读⑤——检索栈:Rerank、向量失真与三路延迟

Part 10 · 合并 challenges #5 + #6 + #9 · Ch25 RRF/Rerank · Ch24 三路检索

结论先行:WeKnora 检索栈的三层张力同时存在——#5 通用 Cross-Encoder 在垂直术语上失准,靠 0.6 模型 + 0.3 RRF + 0.1 来源 兜底;#6 768 维向量丢精确值/否定/专名,BM25 路不可省#9 并行后延迟 ≈ max(三路) + RRF + Rerank,瓶颈常在 Rerank HTTP 或图谱遍历。大师用 grep 定位 + smoke-10 消融 一次验证三题,而非分三个 PR 盲调参。


一、日常类比:三道安检与一张压缩照片

机场安检有三条通道:关键词(认工牌号)、向量(认「长得像」)、图谱(认熟人关系网)——并行开放,总等待时间取决于 最慢那条(#9)。过关后还有 精检员 Rerank(#5),专看「能不能拼出答案」而非「话题像不像」。向量路像把行李 X 光压成一张小图(#6)——「10 个向量库」和「8 个」在图上几乎一样,只有工牌扫描(BM25)能分清。


二、复合 Rerank 三信号(#5)

信号 默认权重 作用 何时调高
Rerank 模型 0.6 Cross-Encoder 语义精排 通用 FAQ、术语少
RRF 基础分 0.3 多路召回共识 错误码/SKU/法规条号密集
来源可信度 0.1 文档权威、时效元数据 多版本 doc 并存 Ch31

失败形态:Query 含 E1042,Rerank 把「错误处理哲学」排过「E1042 对照表」——模型学的是通用语义,不是 答案可构造性。临时 调高 0.3+0.1 往往比换 7B reranker 更稳。


三、向量失真三类(#6)

类型 例子 向量表现 BM25/关键词
数值混淆 8 库 vs 10 库 距离难区分 精确 token 命中
否定丢失 不支持 X vs 支持 X 方向接近 否定词共现
大块稀释 5000 字含一行 k=60 关键事实被平均 小块 + 混合 Ch27

HyDE/查询改写 不能替代 BM25:假想文档措辞可能与库内不一致,反而偏离 error code 的精确匹配。


四、三路延迟分解(#9)

T_total ≈ T_parallel + T_rrf + T_rerank + T_generate
T_parallel = max(T_bm25, T_vector, T_graph)   # 并行非相加
分路 典型量级 瓶颈场景
BM25 50–100ms rarely
向量 ANN 20–50ms 超大库 rebuild
图谱 200ms–1s+ 2–3 hop、冷启动大图
Rerank 100–300ms top-N 线性于 N

可接受降级:图谱 500ms 超时 → 仅 BM25+向量进 RRF;Rerank 失败 → 回退 RRF 序;KB 文档数 < N → graph_weight=0(链 Ch42)。


五、grep 起手

rg -n "0\\.6|Rerank|Composite|source_credibility" internal/ --glob "*rerank*"
rg -n "BM25|bm25|keyword" internal/ --glob "*retriev*"
rg -n "WaitGroup|errgroup|parallel" internal/ --glob "*retriev*"

建议贡献:分路 histogram retrieval_latency_seconds{path="bm25|vector|graph"} + Rerank 耗时。


六、平台对照(检索栈)

项目 路数 复合 Rerank 精确匹配补充
WeKnora 3 ★ 三信号 BM25 ★
Dify 2+ 工作流可选 BM25
RAGFlow 2 单 rerank DeepDoc 结构
FastGPT 2 部分 $text 弱
AnythingLLM 1 常无 纯向量盲区大

七、实验:smoke-10 检索栈消融

基线:benchmark/smoke-10.jsonl 全量 10 条,记录 RAGAS 四维 + P95 延迟 + 分路耗时。

变体 验证挑战 预期
A 默认三路 + 复合 Rerank 基线
B 关 Rerank(仅 RRF) #5 术语题 MRR↓,延迟↓
C 关图谱(双路) #9 多跳 Recall↓,P95↓
D 仅向量 #6 zh-003 精确值 miss
E 调高 source 权重 #5+#6 版本冲突题↑

PR 模板:Markdown 表列 A–E 的 faithfulness、context_recall、P95、rerank_ms;附 2 条失败 query 人工 ✓/✗(是否含可构造答案 chunk)。

Issue 锚点:检索回调空结果 → case-1633;缓存 TTL 影响二次检索 → case-1761


八、贡献方向


章末自检


延伸阅读