热闻岛
返回全网热点

大模型的 RAG 主要用来解决什么问题?

6月24日20 阅读
大模型的 RAG 主要用来解决什么问题?配图
RAG 解决的不是“幻觉”一个问题,而是大模型的知识边界问题 知识过期 · 私有知识缺失 · 答案幻觉 · 可追溯生成 · 企业级知识库问答 别把 RAG 说成“让模型更聪明” 很多人介绍 RAG,第一句话就说:RAG 可以让大模型回答更准
大模型的 RAG 主要用来解决什么问题?配图

RAG 解决的不是“幻觉”一个问题,而是大模型的知识边界问题

知识过期 · 私有知识缺失 · 答案幻觉 · 可追溯生成 · 企业级知识库问答

别把 RAG 说成“让模型更聪明”

很多人介绍 RAG,第一句话就说:RAG 可以让大模型回答更准。

但是比较浅,面试官追问一句“为什么更准”,就容易卡住。真正的答案应该从大模型的底层限制讲起:LLM 的知识被固化在参数里,训练完成后不会自动更新;企业私有文档也没有进入训练集;当模型没有可靠知识依据时,又会继续生成听起来合理的答案,这就形成了幻觉。

所以,RAG 主要解决的不是一个孤立的“幻觉问题”,而是一整套知识问题:知识过期、知识缺失、知识不可追溯。

RAG 把知识从模型参数里搬到外部知识库,用的时候实时检索,再把证据注入 Prompt,让模型基于资料回答。

一、LLM 的知识为什么会冻结?

LLM 在预训练阶段会阅读大量文本,把知识压缩进模型参数。训练结束后,这些参数就像一本印刷完成的百科全书:内容很多,但不会自动更新。模型发布后的新政策、新财报、新产品功能、新业务规则,都不会凭空出现在参数里。

大模型的 RAG 主要用来解决什么问题?配图

这就是“知识冻结”。它不是某个模型的小 bug,而是大多数预训练语言模型的基本特性。要更新参数里的知识,通常需要继续训练或微调;但企业业务知识变化频繁,靠训练模型追知识变更,成本高、周期长、不可追溯。

大模型的 RAG 主要用来解决什么问题?配图

二、RAG 主要解决三个问题

1. 知识过期:训练数据有截止日期

第一个问题是时效性。比如你问模型“今年某公司最新财报怎么样”“某个政策最近有什么变化”,如果这些信息发生在训练数据截止之后,模型并不知道。更麻烦的是,它可能不会明确说“不知道”,而是根据历史模式给出一个自信但过期的答案。

大模型的 RAG 主要用来解决什么问题?配图

2. 私有知识缺失:公司文档没有进训练集

第二个问题是企业私有知识。公开网页、百科、论文,模型可能见过一部分;但每家公司内部的产品手册、退款规则、合同模板、客服 SOP、故障案例、项目文档,通常不会出现在公开训练数据里。

因此,当你让模型回答“我们公司这个套餐如何退款”“这份合同的审批规则是什么”,如果没有外部知识注入,它只能猜。企业落地 RAG 的最大价值,往往就在这里:让模型能够使用企业自己的知识。

大模型的 RAG 主要用来解决什么问题?配图

3. 幻觉:没有依据时也会继续生成

第三个问题是幻觉。幻觉不是凭空出现的独立问题,它往往是知识过期和知识缺失的副产品。模型的核心机制是预测下一个 token。当它缺少事实依据时,生成过程并不会天然停止,而是会继续组织语言,输出一个听起来像真的答案。

大模型的 RAG 主要用来解决什么问题?配图

关键判断:RAG 不是专门“治疗幻觉”,而是通过提供外部证据,减少模型在无依据情况下自由发挥的空间。

三、RAG 是怎么解决这三个问题的?

RAG 的思路很朴素:既然模型参数里的知识会过期、会缺失,那就不要强行把所有知识都塞进参数里。把知识放在外部知识库,需要时检索出来,再让模型基于这些证据回答。

大模型的 RAG 主要用来解决什么问题?配图

一个完整的 RAG 问答过程通常是:用户提问,系统改写或理解问题,检索最相关的文档片段,必要时进行重排,再把证据片段和用户问题一起放入 Prompt,最后让 LLM 按证据回答,并给出来源。

大模型的 RAG 主要用来解决什么问题?配图

四、用一段代码理解 RAG 的基本闭环

下面这段伪代码不是为了展示某个框架,而是为了看清 RAG 的本质:先检索,再带着证据生成。代码保持可复制文本格式。

def answer_with_rag(question: str, retriever, llm) -> str:
# 1. 从知识库检索证据
docs = retriever.search(question, top_k=5)
# 2. 组装上下文,保留来源,方便答案可追溯
context = "\n\n".join(
f"[source={doc.source}]\n{doc.text}" for doc in docs
)
# 3. 要求模型只基于证据回答,证据不足就拒答
prompt = f"""
你是企业知识库助手。
请只根据【参考资料】回答用户问题。
如果资料不足,明确说“当前资料不足,无法确认”。
回答后列出使用到的来源编号。
【用户问题】
{question}
【参考资料】
{context}
"""
return llm.generate(prompt)

这段代码里最重要的不是 vector database,也不是某个框架,而是三条约束:先取证据、再回答、最后可追溯。如果没有“证据不足就拒答”的规则,RAG 仍然可能把噪声包装成答案。

五、RAG 和微调、长上下文、搜索有什么区别?

很多人会把 RAG、微调、长上下文、搜索混在一起。它们确实都能改善大模型应用,但解决的问题不同。

大模型的 RAG 主要用来解决什么问题?配图

简单判断:如果问题是“模型不知道某些知识”,优先考虑 RAG;如果问题是“模型知道但输出风格不稳定”,再考虑微调;如果只是一次性分析长文档,可以用长上下文;如果只是找公开网页信息,搜索引擎本身就很有效。

六、企业级 RAG 的落地重点

真正落地时,RAG 不是简单地“接一个向量库”。它通常包含离线建库和在线问答两条流水线。离线建库决定知识能不能被正确检索;在线问答决定能不能把正确证据变成可信答案。

大模型的 RAG 主要用来解决什么问题?配图

1. 离线建库:知识质量决定上限

离线阶段要处理数据源接入、解析清洗、Chunk 切分、Embedding、索引构建和权限标签。这里最容易被低估的是 Chunk 切分。如果切得太碎,片段缺上下文;切得太大,检索不精准、Token 成本高。

2. 在线问答:检索质量决定下限

在线阶段要处理 Query Rewrite、多路召回、Rerank、Prompt 组装、答案生成和引用输出。实际项目里,很多错误并不是模型不会回答,而是正确证据根本没被召回,或者被噪声挤出上下文窗口。

大模型的 RAG 主要用来解决什么问题?配图

七、怎么证明 RAG 真的解决了问题?

RAG 评测不能只看最终答案“像不像”。应该拆成检索层、证据层和生成层分别看。检索层看正确证据是否被找出来,证据层看片段是否相关且少噪声,生成层看答案是否忠于证据。

大模型的 RAG 主要用来解决什么问题?配图

常见指标包括 Recall@K、MRR、Context Precision、Context Recall、Faithfulness、Answer Relevancy 等。业务场景还要补充人工标注集、拒答正确率、引用准确率、权限命中率和延迟成本。

八、一个更安全的 RAG 回答模板

在高风险业务里,Prompt 不能只写“请根据资料回答”。更稳的做法是显式规定证据优先、冲突处理、拒答条件和引用要求。

你是企业知识库问答助手。

你必须遵守以下规则:

1. 只基于【参考资料】回答,不要使用未给出的外部知识。

2. 如果资料无法支持结论,请回答“当前资料不足,无法确认”。

3. 如果多份资料冲突,先指出冲突,再说明无法给出唯一结论。

4. 每个关键结论后标注来源,例如:[文档A-第3段]。

5. 不要编造政策、金额、日期、人名、流程节点。

【用户问题】

{question}

【参考资料】

{retrieved_context}

九、面试中怎么回答这道题?

大模型的 RAG 主要用来解决什么问题?配图

RAG 主要解决的是大模型的知识边界问题。LLM 的知识固化在训练参数里,训练完成后不会自动更新,企业私有数据也没有进入训练集。这个根因会带来三个问题:知识过期、私有知识缺失,以及缺少依据时产生幻觉。RAG 的做法是把知识放到外部知识库,用户提问时实时检索相关片段,把证据注入 Prompt,让模型基于资料回答。这样知识可以随时更新,答案可以追溯来源,成本也比重新训练模型低。但 RAG 不是万能的,它依赖文档质量、切分策略、检索召回、重排、权限过滤和持续评测。

十、总结

• RAG 解决的核心问题不是“让模型更聪明”,而是突破模型参数里的知识边界。

• 知识过期、私有知识缺失、幻觉,本质上都和“模型没有可靠知识依据”有关。

• RAG 的关键动作是外部知识存储、实时检索、证据注入、基于证据生成。

• 企业级 RAG 要重视文档切分、检索召回、Rerank、权限控制、引用溯源和持续评测。

• 面试回答要从根因讲起,再讲三类问题、RAG 解法、工程价值和落地边界。

要点速读

RAG 解决的不是“幻觉”一个问题,而是大模型的知识边界问题 知识过期 · 私有知识缺失 · 答案幻觉 · 可追溯生成

  • RAG 解决的不是“幻觉”一个问题,而是大模型的知识边界问题 知识过期 · 私有知识缺失 · 答案幻觉 · 可追溯生成
  • 更多细节仍在持续更新中
  • 更多细节仍在持续更新中