rag主要解决大模型的哪些问题

接入与开发

讲清 RAG 主要补的是幻觉、知识过时和私域数据这三类问题,并给出判断它该不该用的落点。

你大概遇到过这种场面:模型答得很自信,但内容跟你们内部文档对不上;或者它知道的东西停在某个时间点,新政策、新价格一概不知。这时候团队里总有人说「上 RAG 吧」。这篇不聊怎么搭,只帮你搞清楚 RAG 到底补哪几个洞、补不了哪些洞,以及什么情况下用别的办法更省事。

你大概遇到过这种场面:模型答得很自信,但内容跟你们内部文档对不上;或者它知道的东西停在某个时间点,新政策、新价格一概不知。这时候团队里总有人说「上 RAG 吧」。这篇不聊怎么搭,只帮你搞清楚 RAG 到底补哪几个洞、补不了哪些洞,以及什么情况下用别的办法更省事。

先把话说在前面:RAG 不是让模型变聪明的开关,它是给模型外挂了一个「按需翻资料」的动作。翻得到就照着说,翻不到照样可能胡说。所以判断它值不值得上的关键,不在模型多强,而在你的问题里有多少成分必须依赖一份具体、会变、又没进过公开语料的资料。

RAG 补的是三个具体缺口,不是一个笼统的「更聪明」

把 RAG 当成一个检索加拼上下文的流程来看,它实际补的是三类很具体的洞。分开看,你才知道自己的痛点落在哪一类,也才知道该往哪个方向验收。

幻觉
模型没依据也照样输出;RAG 把检索到的原文一起塞进上下文,让它有东西可抄,回答能附上出处
知识过时
模型权重冻结在训练时点;RAG 把外部资料当成随时可换的外挂记忆,改文档就等于改知识,不用重训
私域数据
内部规范、工单、合同这类内容从来没进过公开语料;RAG 是在调用时把这些资料按需取出来喂给它

这三个缺口经常被混在一起说成「模型不够懂我们」,但修法完全不同。幻觉要靠引用和约束来压,过时知识靠换资料源来解,私域数据靠权限内的检索通道来接。先归类,再谈落地方案,能少走不少弯路。

它补不了什么:这几类需求别硬套 RAG

  • 要模型学会一种新语气、新格式的稳定输出,那是提示词和微调的活,检索一堆样例反而拖慢首字
  • 要模型执行动作、查实时库存、下工单,那是工具调用和 Agent 的活,检索只能给它资料不能替它操作
  • 问题本身不需要外部事实,比如纯推理、纯改写、代码解释,加一层检索只是多花钱多一份延迟
  • 文档量小到能整篇塞进上下文时,直接把原文放进去比搭一套检索链路更省事

这几类的共同点是:瓶颈不在「缺资料」,而在输出风格、动作执行或者根本不需要外部信息。你硬加检索,得到的往往是更长的等待、更多的 token 开销,以及一个被无关片段带偏的答案。判断标准很简单——如果正确答案跟任何一份文档都无关,那就不是 RAG 的活。

你的痛点RAG 能不能帮更合适的做法
答案必须引用内部文档能,是它的主场检索加引用来源
模型语气格式总不对帮不上提示词约束或微调
要真去查库存、下工单帮不上工具调用与 Agent
纯推理、纯改写、代码解释反而添乱直接调模型即可
资料少到能整篇贴进去没必要长上下文直接塞原文

三步判断:你的场景值不值得上 RAG

别一上来就画架构图。先拿这三个问题过一遍,任何一问答不上来,就说明还没到动手的时候。这套判断顺序的好处是,它逼你把「资料从哪来、多久变一次、错了赔多少」先说清楚。

  1. 先问答案依据在哪如果正确回答必须引用某份具体资料,且这份资料不在模型训练数据里,那就在 RAG 的射程内;反过来,答对与否跟具体文档无关,就别上。
  2. 再问资料变更频率经常改、按人按项目不同的,走 RAG 比反复微调划算;几年不动的固定知识,微调或者直接写进提示词都行,成本更低。
  3. 最后问错一次的代价答错只是体验差,可以缓一缓再优化;答错会带来合规或资金损失,就必须配引用溯源和拒答策略,光靠 RAG 不够。

第三步最容易被跳过。很多团队把 RAG 当成万能兜底,结果上线后发现模型还是会自信地给出错误结论,只是这次错误藏在一段引文后面,更难被发现。代价高的场景,引用必须点到具体段落,并且明确允许它说「没查到」。

落地前把边界写清楚,再动手搭链路

真正决定 RAG 好不好用的,往往不是检索算法,而是你有没有提前定义好「哪些问题必须查、查不到怎么办」。这两件事定不下来,后面调什么参数都是在补漏。

  • 给每条知识标上「必须来自文档」还是「模型自己答也行」,前者强制走检索并附来源,后者直接放行,别一刀切
  • 准备一个没有命中任何资料时的兜底动作:明确说不知道,或者转人工,而不是让模型自由发挥
  • 把引用粒度写到段落级,让人能一眼核对,而不是给个笼统的文档名就算交差

至于检索进来之后怎么切块、怎么召回、怎么重排,那是另一层的问题,属于工程细节,可以到站内相关内容接着看。价格与调用成本这类会变的数字,别凭记忆,去站内价格追踪页面对照当时的实际情况。

下一步想看清各家接口的实际计费口径和模型能力分布,先到站内价格与模型资料库核对当时的数字,再决定检索链路要花多少预算。

常见问题

上了 RAG 就不会胡说了吗?

不会完全避免。RAG 是把资料摆到模型面前,降低它凭空编造的概率,但检索没召回、召回了却和问题不相关、或者模型没照着资料答,这几种情况依然会出错。所以还得配引用出处、答不出就拒答这类兜底规则,别把 RAG 当成一个开关。

知识过时是不是更新一下模型就行?

更新模型版本能解决一部分公开知识的时效问题,但代价高、周期长,而且你们内部那些新政策、新报价它照样不知道。要频繁跟变的资料,用检索把外部文档挂上去更灵活,改文档就等于改答案。不过要注意,检索库自己也要有人维护,脏数据进去就是脏答案出来。

哪些问题其实不该用 RAG 解决?

常见三类:一是让模型换语气、稳定输出某个格式,这类靠提示词和结构化输出更直接;二是要模型真的去查库存、发消息、改数据库,那属于工具调用和 Agent 的范畴;三是问题本身不需要外部事实,比如纯推理和改写,加检索只会多一份延迟和成本没有收益。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。