检索质量优化:分块、向量与重排序的产品视角
本课程从产品经理视角拆解 RAG 检索链路的三大优化点:文档分块策略、向量模型选择与混合检索、重排序机制。你将理解每个技术选择背后的产品权衡,学会用命中率数据驱动优化优先级,而不是盲目堆砌技术方案。
📖 本页目录
检索质量决定 RAG 的天花板
RAG 系统里,生成模型再强,检索不到相关材料也是“巧妇难为无米之炊”。线上 bad case 分析的常见结论是:大部分“答错”其实是“没查到”或“查到的排太后”。本节聚焦检索链路的三个关键优化点:分块、检索、重排序。
分块:最容易被低估的决策
建索引时要把长文档切成小块。块的大小和方式,直接决定“检索命中的最小单元”是什么。
块大小的权衡
| 块大小 | 优势 | 代价 |
|---|---|---|
| 小(100-200 字) | 检索命中精度高,上下文干净 | 语义被切断,命中但信息不足 |
| 大(500-1000 字) | 上下文完整,一次带够 | 噪音多,相似度被稀释,成本高 |
产品视角的理解:块是信息和噪音的平衡单位。没有万能最优值,取决于文档类型——FAQ 适合按问答对切,产品手册适合按章节切,聊天记录适合按会话切。
三条实用原则
- 在语义边界切:按标题、段落、章节切,而不是机械按字数切。切在句子中间的块,两边都废。
- 保留元数据:每个块挂上来源文档、章节路径、更新时间。产品上要展示引用来源、按时间过滤,全靠它。
- 允许重叠:相邻块重叠 10-20%,减少关键信息正好被切断的概率。
产品决策提示:分块是低成本高收益的优化点。先用 20 条真实用户问题测不同块大小的命中率,一小时的实验经常胜过一周的模型调参。先测再改,用数据定参数。
检索:向量不是唯一答案
向量模型的选择
embedding 模型决定“语义相近”的计算方式,不同模型在不同语言、领域的表现差异很大。产品层面关注两点:
- 中文语料选对中文友好的模型,通用英文模型的中文语义区分度常常不佳;
- 定期重评:换 embedding 模型意味着全量重建索引,是一次性大动作,要预留工期和预算。
混合检索:关键词 + 向量
纯向量检索会输在精确匹配场景:用户搜“错误代码 E4021”,向量语义相似度不如关键词匹配准。生产系统的标配是混合检索:
- 向量检索负责语义泛化(“怎么退货” 匹配 “退换货流程”);
- **关键词检索(BM25)**负责精确命中(编号、专有名词、人名);
- 两路结果用加权或融合策略合并。
查询改写
用户提问往往口语化、多轮对话里有指代(“那它的价格呢?“里的”它”)。在检索前加一步查询改写——把口语问题结合对话历史改写成独立、完整的搜索查询——是性价比极高的优化。多数“多轮对话第二轮就查不到”的问题,根因都在这。
重排序:用精排换精度
初检(向量 + 关键词)为了速度会放宽门槛,比如取回 top 50;重排序模型(reranker)再用更强的算法对这 50 条精排,取前 5 给生成模型。
产品视角的理解:初检是海选,重排是终审。重排模型计算更重、延迟更高,所以只对少量候选做。引入重排序通常是检索质量提升最明显的单点优化,常见收益是命中率提升 10-20 个百分点。
产品决策提示:优化优先级建议——先修数据(分块、文档质量),再加混合检索和查询改写,最后上重排序。顺序反了,是在脏数据上堆精密算法,投入产出比很差。
用指标驱动优化
检索优化最忌讳“听说 XX 技术好就上一个”。固定两个评测集:
- 查询-应得文档对:50-200 条真实问题,标注哪些块是正确答案来源;
- 分层指标:Recall@5(前 5 个结果包含正确块的比例)、MRR(正确结果排位)。
每次改动跑一遍。没有这两个数,所有优化讨论都是观点之争。
本节要点
- 检索质量是 RAG 天花板,多数“答错”实为“没查到”,优化前先定位到分块、检索、排序哪一环。
- 分块按语义边界切、保留元数据、允许重叠;块大小用真实问题实验确定,不迷信默认值。
- 生产标配是混合检索(向量 + BM25)+ 查询改写,解决语义泛化与精确匹配的两难。
- 重排序是海选后的终审,通常是单点收益最大的优化,但放在数据质量修好之后。
- 建立“查询-应得文档”评测集和 Recall@5 / MRR 指标,让优化从观点之争变成数据驱动。
章节小测
3 道题 · 检验一下刚学的内容
Q1.用户搜错误代码 E4021 查不到,暴露了纯向量检索什么短板?
Q2.多轮对话第二轮开始查不到资料,最可能的根因是什么?
Q3.课程建议的检索优化先后顺序是?
答题后显示结果
完成这一节了?
打卡记录保存在你的浏览器本地,方便追踪学习进度。
学习留言
写下你的疑问或心得 —— 仅你自己和站长可见
登录 后可发布私密留言,向站长提问。