了解哪些大模型应用中的检索算法?

考查重点:精确、语义与关系检索。BM25 抓精确词,稠密向量找语义相近,图检索补实体关系;候选融合重排后交模型使用

本题目录

参考答案

核心回答

在大模型知识检索中,我会按怎样表示内容、怎样取候选、怎样融合和排序来介绍算法:

  1. 关键词检索:常用 BM25,基于词项出现频率、区分度和文档长度打分,适合专有名词、错误码等字面线索明确的问题。
  2. 稠密向量检索:用 Embedding 表示问题和文档,再按相似度找近邻。小规模可精确扫描,大规模常用 HNSW、IVF 等索引,在召回率、延迟和资源之间取舍。
  3. 学习型稀疏与多向量检索:例如 BGE-M3 的稀疏词项权重和 ColBERT 式多向量表示,保留比单个稠密向量更细的匹配信号,同时带来不同的索引与计算成本。
  4. 混合检索与重排:多路召回可用 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 区分过滤、混合检索和重排,适合先建立表示模型、索引与处理阶段的关系。

参考资料

相关面经

9 篇

佰聆数据

助理AI应用开发工程师
实习一面
查看原面经 →
大模型检索,你有了解什么检索算法吗?KNN HNSW 哈希?还有嘛?

阿里巴巴

AI 应用开发工程师
秋招二面
查看原面经 →
项目追问
具体讲一下你说的这个检索怎么做的?
讲一下你对这类检索策略的理解?

拼多多

AI Agent
秋招一面
查看原面经 →
检索方法

百度

Java 开发工程师(智能客服)
实习二面
查看原面经 →
项目追问
你的向量检索使用的是什么算法?

佰聆数据

AI 应用开发工程师
实习一面
查看原面经 →
大模型检索,你有了解什么检索算法吗?
展开剩余 4 篇面经

字节跳动

后端开发工程师(AI)
实习一面
查看原面经 →
延伸问题
召回和重排用的什么算法?

美团

后端开发工程师
一面
查看原面经 →
知识库的召回策略?

小红书

AI Agent
实习一面
查看原面经 →
RAG项目怎么做召回

腾讯

AI Agent
实习
查看原面经 →
向量数据库了解过吗,常见向量索引的实现细节

相关题目

4 题