RAG 效果不好,通常不是模型的问题:4 个关键技术一次讲透
很多团队做 RAG,第一反应是换更强的大模型。 但真正做过系统后,你会发现:
RAG 的上限,很多时候并不由模型决定,而是由前面的检索链路决定。
用户问同一个问题,为什么有时答得很好,有时却答非所问? 问题往往出在这四个环节:
- 分块
- 检索
- 重排序
- Prompt
如果这四个地方做得粗糙,再强的模型也很难稳定发挥。
一、分块:为什么“怎么切文档”会决定回答质量
分块是 RAG 里最容易被低估的一环。 因为知识库不是把整篇文档直接丢进去就结束了,而是要先拆成可检索的小片段。
但问题来了:到底怎么切?
1. 固定长度切分
这是最简单的方法。 比如每 500 个字符切一块。
优点是实现简单、管理方便。 但问题也很明显: 它可能把一个完整句子、一个完整步骤、一个完整条款硬生生切开。
结果就是: 检索到了“半句话”,模型理解自然会出错。
2. 语义切分
更合理的做法,是按照段落、章节、句子边界来切。 也就是说,尽量保证一个块里承载的是一段完整意思。
这样做的好处是:
- 语义更完整
- 检索命中后更容易直接回答
- 上下文更连贯
但代价是实现更复杂,也更依赖规则或模型能力。
3. 递归切分
这是工程上很常见的一种折中方案。 思路是:优先按章节、段落来切;如果还太长,再按句子切;再不行,最后才用固定长度兜底。
这种方式既保留了结构感,也兼顾了可控性。 对于企业文档、说明书、制度手册来说,通常比单纯固定切分更稳。
4. 分块到底怎么选
一个简单判断标准是:
- 如果块太小,信息不完整
- 如果块太大,噪声太多
- 如果没有适当重叠,关键信息可能被切断
所以分块本质上不是“切得越细越好”, 而是要找到语义完整性、召回率和性能开销之间的平衡。
二、检索:为什么只用向量搜索往往不够
很多人一提 RAG,就默认是“向量检索”。 但真实系统里,单一向量检索并不总是最优解。
1. 向量检索擅长什么
向量检索最大的优势是能理解语义。
比如用户问:“怎么提高系统性能?”
文档里可能写的是“系统优化方案”。 虽然字面不同,但语义接近,向量检索通常能找到。
这类“意思相近但措辞不同”的问题,向量检索很有优势。
2. 向量检索不擅长什么
它的短板也很明显:
- 对术语、ID、报错码的精确匹配不够稳定
- 对短查询有时理解不足
- 对噪声较敏感
比如用户问:“Error 404 是什么意思?”
这类查询其实更适合关键词精确匹配。
3. 为什么要混合检索
成熟的 RAG 通常会把:
- 向量检索
- BM25 关键词检索
结合起来使用。
原因很简单:
- 向量检索负责“懂意思”
- 关键词检索负责“找得准”
对于技术文档、代码库、制度条款、报错信息这类场景,混合检索通常比单一路径更稳。
4. 工程上的一个实用原则
如果你的问题里包含:
- 产品型号
- 错误代码
- 专有名词
- 版本号
- 年份/季度
那关键词检索的重要性通常会明显上升。
而如果你的问题是自然语言解释型问题, 比如“如何申请报销”“怎样处理噪声故障”, 向量检索的价值会更大。
三、重排序:检索到了,不等于排序就对了
检索拿到的 Top-K 结果,并不一定就是最适合回答问题的结果。
这时候就需要Rerank(重排序)。
你可以把检索理解为“广泛找候选”, 把重排序理解为“二次精挑细选”。
1. 为什么需要重排序
因为初步检索往往更注重“召回”, 而真正送给模型的上下文,更需要“高相关”。
如果把一堆边缘相关内容都交给模型, 模型很可能会被干扰,甚至答偏。
2. 重排序能解决什么
它能帮助系统:
- 把真正相关的信息排到前面
- 降低噪声内容进入 Prompt 的概率
- 提高 Top-1、Top-3 的命中质量
对 RAG 来说,这一步常常直接影响最终答案的准确率。
3. 常见做法
比较典型的方式是:
- 先用向量检索或混合检索拿到 Top 20 或 Top 50
- 再用更精细的模型做重排序
- 最终只把前几条高质量结果送给大模型
这类重排序模型,往往比基础检索更懂“问题和文档之间真正是否匹配”。
四、Prompt:为什么有资料,模型还是会答错
很多人以为只要把检索结果扔给模型就行。 实际上,Prompt 设计会直接决定模型有没有“老老实实看资料”。
1. Prompt 的核心作用
一个好的 Prompt,不只是告诉模型“请回答问题”, 还要明确三件事:
- 你的角色是什么
- 你必须依据什么回答
- 上下文不足时应该怎么办
如果没有这些约束,模型很可能重新依赖它自己的参数记忆,产生幻觉。
2. 一个好 Prompt 至少要做到什么
至少要告诉模型:
- 你是一个知识库助手
- 回答必须基于提供的上下文
- 如果上下文不足,不要编造
- 输出尽量简洁、专业、结构清晰
这听起来只是几句话,但它往往能明显降低“看起来很像对,其实没依据”的回答。
3. Prompt 还能怎么继续优化
在更成熟的系统里,Prompt 还会进一步做:
- 针对不同问题类型动态切换模板
- 保留多轮对话历史
- 规定输出格式
- 加入安全约束
- 引导模型优先引用上下文中的关键信息
所以,Prompt 不是装饰,而是模型执行规则。
五、如果你要排查 RAG 效果,先看这四件事
当一个 RAG 系统答得不稳定时,不要第一时间怪模型。 先从这四个问题排查:
1. 文档是不是切坏了
关键信息是否被切断?块是不是太大或太小?
2. 检索是不是太单一
是不是只用了向量检索,漏掉了关键词精确匹配?
3. 结果排序是不是不够准
是不是把边缘相关内容送给了模型?
4. Prompt 是不是约束不够
是不是没有明确要求“必须基于上下文作答”?
很多时候,把这四个环节调顺, 效果提升比换模型更明显,也更省成本。
结语
RAG 不是“上一个向量库”就万事大吉。 真正稳定的系统,往往不是靠某个单点技术取胜,而是靠多个细节同时到位。
对初学者来说,只要先抓住这四个关键词:
分块、检索、重排序、Prompt,
你就已经理解了 RAG 调优最核心的骨架。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
