为什么单一向量检索无法胜任严肃工业场景
虽然嵌入模型(Dense Embedding)在捕捉语义相似度方面表现非凡,但它对精确专有名词、错误码(如 ERR_CONNECTION_REFUSED)、型号数字(如 RTX 4090 D)以及生僻拼音极其迟钝。向量投影往往会把这些关键特征平滑模糊掉。
而在传统搜索引擎中统治数十年的 BM25 稀疏检索,恰恰对精确词项匹配具备确定性保障。现代工业级 RAG 的第一黄金法则,就是BM25 + 密集向量的双路召回,辅以交叉编码器(Cross-Encoder Rerank)重排。
倒数排名融合 (RRF) 与 Reranker 交叉注意力机制
混合检索标准数据管道分为三层:
- 并行召回 (Dual-Channel Retrieval):BM25 引擎召回 Top-50,向量数据库(HNSW 索引)召回 Top-50;
- 分数归一化与 RRF 融合:由于 BM25 的得分无上限,而向量余弦相似度在 $[-1, 1]$ 之间,无法直接相加。采用 Reciprocal Rank Fusion (RRF) 算法,仅依赖各通道的相对位次计算综合分: $$RRF(d) = \sum_{m \in M} \frac{1}{k + r_m(d)}, \quad (\text{通常 } k=60)$$
- 二阶段重排 (Cross-Encoder Reranker):将融合筛选出的前 20 条候选分块,与原始 Query 拼接输入交叉编码器(如 Cohere Rerank 或 bge-reranker),计算深层全注意力交互得分,保留最终前 5 条送入大模型。
纯 JS 生产级 RRF 算法实现
import assert from "node:assert/strict";
function rrfScore(bm25Rank, vecRank, k = 60) {
return 1 / (k + bm25Rank) + 1 / (k + vecRank);
}
assert.ok(rrfScore(1, 1) > rrfScore(1, 2));原始资料与溯源链接
感谢阅读本文
如果你觉得内容有帮助,欢迎点赞支持或分享给同行开发者。
0 次阅读0 人赞过