了解哪些大模型应用中的检索算法?
未标记
考查重点:精确、语义与关系检索。BM25 抓精确词,稠密向量找语义相近,图检索补实体关系;候选融合重排后交模型使用
本题目录
参考答案
核心回答
在大模型知识检索中,我会按怎样表示内容、怎样取候选、怎样融合和排序来介绍算法:
- 关键词检索:常用
BM25,基于词项出现频率、区分度和文档长度打分,适合专有名词、错误码等字面线索明确的问题。 - 稠密向量检索:用 Embedding 表示问题和文档,再按相似度找近邻。小规模可精确扫描,大规模常用
HNSW、IVF等索引,在召回率、延迟和资源之间取舍。 - 学习型稀疏与多向量检索:例如
BGE-M3的稀疏词项权重和ColBERT式多向量表示,保留比单个稠密向量更细的匹配信号,同时带来不同的索引与计算成本。 - 混合检索与重排:多路召回可用
RRF等方法融合,再用Cross-Encoder对有限候选精排,兼顾覆盖范围与相关性判断。
数据库、检索框架和具体算法是不同层次。介绍方案时,还要说明数据类型、查询特点、权限过滤和性能目标,不能只列组件名称。
BM25:利用词项信号检索
BM25 通常结合倒排索引使用:先找到包含查询词项的候选,再依据相关词项的统计信息打分。一个词在当前片段中的出现次数会产生贡献,但增益会逐渐饱和;在整个集合中很常见的词,区分作用通常较小;文档长度也参与归一化。
它适合利用实体名、编号和领域术语,但词项匹配不等于字符串完全相等。中文分词、大小写、同义词和字段配置会改变实际命中结果;明确要求某个完整型号或版本时,还可增加精确字段过滤。BM25 的 k1 与 b 分别影响词频饱和和长度归一化,不宜只凭经验固定调高或调低。
稠密向量:表示语义,再寻找近邻
双塔模型分别编码问题与文档,文档向量可以预先计算。查询时只需编码问题,再按模型适合的相似度或距离查找。它有机会连接“关闭自动续费”和“取消订阅”这类不同表达,但语义接近不代表满足全部实体、时间和业务条件。
表示模型与搜索索引也需要分开看:
Flat精确扫描逐一比较目标范围内的向量,可用作小规模方案或近邻召回基准;找到精确最近邻并不代表一定找到了业务正确答案。- **
HNSW**把向量组织成分层近邻图,通过图导航减少比较,通常需要较多索引内存,构建和查询参数会影响效果。 - **
IVF**将向量划分到若干聚类分区,查询时搜索部分分区;搜索范围越小,越可能遗漏相关近邻。可以结合PQ量化压缩表示,节省空间,但会引入距离估计误差。
选索引时同时检查近邻召回、业务证据覆盖、延迟和内存,而不是用某个固定数据量作为“必须换数据库”的界线。查询和文档还应处于兼容的向量空间,距离方向及索引配置也要一致。
学习型稀疏与多向量解决什么
学习型稀疏表示将文本映射为带权词项,稀疏匹配仍可利用词项组织候选,但权重由模型学习,不等同于 BM25 的统计公式。例如 BGE-M3 可以输出稀疏词项权重;SPLADE 一类方法还会学习词项扩展,不能把所有稀疏方法都简化为原文分词。
多向量方法为一段文本保存多个向量。以 ColBERT 式晚交互为例,可先分别编码,再对查询与文档的局部向量进行匹配并聚合,保留细粒度信息。它与把问题、文档拼在一起编码的 Cross-Encoder 不同,也不意味着检索时要重新把两段文本联合跑一遍完整编码器。相比单向量,通常需要更多存储和匹配计算。
实际系统可以按预算把这些表示用于候选召回或后续排序,不要求每个项目同时部署所有方式。
融合和重排处在什么位置
BM25 与向量通道分别返回排名,RRF 根据名次合并,解决的是不同通道怎样形成统一列表。分数校准后加权也是一种选择。具体计算见BM25 与向量检索结果如何融合。
Cross-Encoder 将问题和候选文本一起输入模型,重新判断相关性,通常用于较小候选集。它能改变已有候选的顺序,但不能补回未进入输入的文档。是否采用,取决于实际相关性收益与增加的耗时。
Query Rewrite、Multi-Query、HyDE 主要改变用于检索的查询;它们可以和上述方法组合,但不是 HNSW 这样的向量索引。元数据过滤决定能搜索哪些资料,也不能用相关性排序替代访问权限。
按数据和问题选择方案
制度说明、FAQ 等文本可先以关键词或稠密向量建立基线;既有口语表达又有精确术语时,比较混合检索;排序错误明显且预算允许时,再验证重排。
若问题要求准确聚合订单金额,应优先由受控 SQL 或业务接口计算;若重点是实体之间的多跳关系,可考虑图查询。它们也可以提供 RAG 的外部证据,不必把所有数据转换为文本向量。
面试中可以选一种熟悉的方案继续展开:资料如何索引、查询怎样匹配、错误案例在哪里、怎样比较召回与耗时。讲清一条链路,比连续报出多个算法名字更有说服力。
对应教程
- 向量数据库与 Embedding 实战:§5.3 介绍精确与近似检索,§6.4 区分过滤、混合检索和重排,适合先建立表示模型、索引与处理阶段的关系。
参考资料
- 国内:JavaGuide:RAG 向量存储与索引:依据向量近邻、HNSW 与 IVF 的机制,说明正文中精确扫描与近似搜索及召回、延迟和资源的取舍。
- 国内:JavaGuide:RAG 检索优化:参考混合检索、查询改写与重排的职责,说明正文中候选召回、查询处理和后续排序处在不同阶段。
- 国内:北京智源研究院:BGE-M3 模型说明:FAQ 与不同检索模式示例区分稠密、稀疏及多向量表示,说明稀疏权重和 ColBERT 式匹配与单向量检索有什么不同。
- 国外:Elastic:Similarity settings:依据 BM25 的词频饱和与长度归一化,说明正文中关键词打分机制及 k1、b 的作用。
- 国外:Sentence Transformers:Retrieve & Re-Rank:依据 Bi-Encoder 与 Cross-Encoder 的计算方式,说明正文中预编码快速召回和联合读取候选精排的分工。





