一、稀疏检索 & 稠密检索(最核心,先搞懂这俩)
1. 稀疏检索
人话:按关键词匹配 就像百度搜东西,你输几个字,它找包含这些字的文章。
- 只认字面关键词
- 不懂语义、不懂意思
- 代表工具:**ElasticSearch(ES)**适合:找专有名词、专业术语、法规编号、固定关键词。
举例子:你搜 "乌干达鲜鱼检疫标准"稀疏检索只找包含这几个字的文档。
2. 稠密检索
人话:按意思匹配,不看字面 不管字一不一样,意思相近就给你找出来。靠向量 Embedding 计算语义相似度。
- 懂语义、懂含义
- 不依赖关键词
- 代表:所有向量数据库(Milvus/FAISS)
举例子:搜 "进口鱼类入境要求"哪怕文章里没这句原话,意思一样,也能搜到。
一句话记住区别
- 稀疏:对字(关键词匹配)
- 稠密:对意(语义匹配)
二、多路混合检索(RAG 工业级必用)
单独用一个都有缺点:
- 只用 ES 稀疏:关键词少就搜不到,不懂语义
- 只用向量稠密:没有关键词时容易搜到不相关的
混合检索 = 稀疏检索 + 稠密检索 一起用两边结果合并、打分、排序。
好处:
- 关键词能精准命中专业名词
- 语义能搜到意思相近的内容
- 不漏、不杂,检索质量直接拉满
面试一句话背:ES 做关键词稀疏检索,向量库做语义稠密检索,两者多路融合,提升召回和精准度。
三、Rerank 重排(必考点,超好懂)
干啥的?
前面混合检索先捞出一批候选内容,Rerank 再精细筛选一遍,重新排队,把最相关的放前面,没用的往后挪或删掉。
通俗流程
- 检索阶段:先粗选,捞出 Top10--Top20 一堆内容
- Rerank 重排模型:挨个打分、判断相关性
- 只留最匹配的 Top3--Top5 给大模型
作用
- 过滤垃圾无关内容
- 减少大模型上下文负担
- 提升答案准确度、减少幻觉
记住一句:先粗搜,再精排,Rerank 负责二次筛选重新排序。
四、Query 改写(用户问题优化)
用户提问有时候:太短、太口语、意思模糊。比如用户只说:"进口鱼有啥要求?"太简略,检索搜不准。
Query 改写做三件事:
- 把短句补全成完整专业问句
- 口语改成书面专业表述
- 拆分多意图问题,拆成多个子问题
目的:让检索更容易搜到精准内容。
五、上下文压缩
检索出来的内容可能又长又啰嗦,有废话、有无关段落。上下文压缩就是:把多余废话删掉,只保留和问题相关的关键句子,精简后再给大模型。
好处:
- 节省 token
- 加快生成速度
- 减少无关信息干扰,降低幻觉
六、RAG 常见链路完整流程(Day8+Day9 合起来完整版)
我给你串成一条完整流水线,超好记:文档入库 → 高级分块 → 生成 Embedding 存入向量库 + ES 建索引用户提问 → Query 改写 → 多路混合检索(ES + 向量)→ Rerank 重排 → 上下文压缩 → 喂给大模型生成答案
七、给你整理 Day9 必背极简口诀
- 稀疏对字,稠密对意
- ES 稀疏找关键词,向量稠密找语义
- 混合检索两路合并,不漏不杂
- 先粗搜,后精排,Rerank 做重排
- Query 改写补全问题,方便检索
- 上下文压缩删减废话,精简输入