1. 混合检索原理
混合检索(Hybrid Search)结合了两种检索方法的优势:
- 稠密向量检索:基于语义相似度,能够识别同义词和概念相关的查询,但在精确术语匹配上可能表现不佳。
- 稀疏关键词检索(BM25):基于词频和文档频率的经典信息检索算法,在精确术语匹配上表现优异,但无法理解语义改写。
混合检索通过相对分数融合(Relative Score Fusion)算法,将两种检索方法的结果合并为统一的排序列表。
2. Alpha 参数
LlamaIndex 通过 alpha 参数控制两种检索方法的权重:
- alpha = 0:纯 BM25 关键词检索。
- alpha = 1:纯向量语义检索。
- 0 到 1 之间:两者加权融合。
3. 参数调优建议
alpha 值的选择取决于查询类型和语料特征:
- 如果查询多为概念性问题(如"我们的事故处理流程是怎样的?"),较高的 alpha(0.65~0.75)更偏向语义匹配。
- 如果查询多为精确术语查找(如"GDPR 第 17 条核查清单""重试策略死信队列阈值"),较低的 alpha(0.35~0.5)给关键词匹配更高权重。
- 如果没有明确偏好,从 0.5 开始并根据实际评估结果调优。
4. 支持的向量存储
混合检索依赖向量存储同时支持 BM25 和向量索引。Postgres(pgvector)、Pinecone、Weaviate 等向量存储原生支持混合检索。对于不支持混合检索的向量存储,可以通过组合两个独立的检索器(一个向量检索器、一个 BM25 检索器)并使用 HybridRetriever 实现。