☰
了解RAG
2026/10/10 6:06:01 网站建设 项目流程

RAG 技术:从检索到生成,让大模型回答更可靠

标签:RAG、LLM、检索增强生成、向量数据库、Rerank、幻觉治理

一、为什么需要 RAG?

大语言模型(LLM)虽然强大,但存在两个现实问题:

  1. 幻觉问题:模型可能生成看似合理、实际错误的内容。
  2. 时效性与成本问题:新知识不断出现,领域内专属内容又高度定制,不可能频繁重新训练或微调大模型。

于是,RAG(Retrieval-Augmented Generation,检索增强生成)应运而生。它的核心思想是:

让大模型在回答前先“查资料”,基于检索到的外部知识生成答案。

这就像把闭卷考试变成开卷考试,既降低了幻觉,又避免了频繁更新模型的高成本。

二、RAG 是什么?

RAG,全称Retrieval-Augmented Generation,中文名为检索增强生成。

它整体可以分为两层:

  • 检索层:负责从外部知识库中找到与用户问题最相关的内容。
  • 生成层:负责把检索到的内容加入 prompt,交给 LLM 生成最终答案。

其中,检索层通常包含四个关键环节:

  • 索引
  • 查询
  • 召回
  • 重排序

生成层则相对直接:把召回内容拼进上下文,让模型基于证据回答。

一句话总结:

RAG 的效果,主要取决于检索层。检索层每一步的质量,都会最终影响答案质量。

三、RAG 整体流程

一个典型的 RAG 流程可以概括为:

query -> query 重写、假设回答、多 query -> 向量数据库进行语义匹配(多路召回) -> 粗排内容 -> rerank -> llm

下面逐步展开。

四、检索层:RAG 效果的关键

1. 索引

索引是离线阶段,决定知识库的“上限”。常见步骤包括:

  • 文档解析与清洗;
  • 文本切分,也就是 chunk;
  • 添加元数据,如来源、时间、部门、权限;
  • 通过 embedding 模型生成向量;
  • 写入向量数据库,或同时建立倒排索引。

索引做得好,后续检索才有机会命中正确内容。切分粒度太粗,噪声多;太细,语义不完整。元数据也很重要,因为它支持过滤和权限控制。

2. 查询

用户原始 query 往往口语化、省略多、意图模糊。因此查询阶段通常要做:

  • query 重写:补全指代、消解歧义、扩展领域术语;
  • 假设回答:先让 LLM 生成一个假设答案,再用它去检索,即 HyDE 思路;
  • 多 query:从不同角度生成多个查询,提高召回覆盖面。

这一步的目标,是把用户真实意图转化为更适合检索的表达。

3. 召回

召回是从知识库中快速找到候选内容。常见方式包括:

  • 向量数据库语义匹配;
  • 关键词检索,如 BM25;
  • 多路召回,结合向量、关键词、规则、知识图谱等。

多路召回能提高召回率,让正确答案更可能出现在候选集中。但召回多了,也会引入噪声,所以后面需要粗排和 rerank。

4. 重排序

召回之后,通常先做粗排,用轻量规则或模型快速过滤大量候选;再做rerank,用更精细的交叉编码器对 query 和文档逐对打分。

重排序的目标是:

把最相关、最可信、最完整的内容排到前面,最终只把 Top-K 片段交给 LLM。

五、生成层:把证据交给 LLM

生成层并不是简单地把文档粘贴进 prompt。更合理的做法是:

  • 加入系统指令:只根据检索内容回答;
  • 要求引用来源;
  • 如果资料不足,明确说“不知道”;
  • 控制上下文长度,去重、排序、裁剪;
  • 把用户问题和检索片段一起交给 LLM。

这样,LLM 的角色从“凭记忆回答”变成“基于证据总结”。它能显著降低幻觉,但并不能完全消除幻觉。如果检索层没有找到正确证据,生成层仍然可能编造。

六、为什么说检索层决定 RAG 效果?

因为生成层再强,也无法凭空生成它没看到的知识。检索层决定了模型能看到什么:

  • 索引决定知识库覆盖范围;
  • 查询决定用户意图能否被正确表达;
  • 召回决定正确答案是否进入候选集;
  • 重排序决定最终上下文是否干净、相关。

所以,RAG 的优化重点通常不在换更大的 LLM,而在检索层:

  • 更好的切分;
  • 更好的 embedding;
  • 更好的 query 改写;
  • 更好的混合召回;
  • 更好的 rerank。

七、工程实践建议

  1. 混合检索:向量检索 + 关键词检索,兼顾语义与精确匹配。
  2. 合理切分:按语义、段落、标题切分,避免碎片化。
  3. 元数据过滤:支持时间、来源、权限、领域过滤。
  4. 重视 rerank:精排能明显提升上下文质量。
  5. 评估检索层:关注 Recall@K、MRR、NDCG 等指标。
  6. 约束生成层:要求引用、拒答和不确定性表达。
  7. 持续迭代:RAG 不是一次性工程,而是数据、检索、生成协同优化的系统。

八、总结

RAG 通过“检索 + 生成”的方式,让大模型能够利用外部知识,缓解幻觉、时效性和领域定制问题。

它的整体架构清晰:

  • 检索层负责找证据;
  • 生成层负责用证据回答。

而在整个系统中,检索层是发动机。索引、查询、召回、重排序,每一步都影响着最终答案。

只有把检索层做扎实,LLM 的开卷考试,才能真正答得准、答得新、答得可信。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询