Skip to content

RAG 基础:外部知识增强生成

RAG 是 Retrieval-Augmented Generation,中文常说“检索增强生成”。它的核心做法是:模型回答前,先从知识库或外部数据源中检索相关材料,再把这些材料放进上下文,让模型基于材料回答。

RAG 流程图

减少幻觉

让模型基于检索材料回答,可以减少无依据编造,但不能完全消除幻觉。

补充新知识

模型参数里的知识会过时,RAG 可以接入最新文档、数据库或网页。

接入私有知识

公司制度、项目文档、业务规则通常不在通用模型里,需要通过知识库提供。

支持来源追溯

应用可以展示答案引用的原文片段,方便检查回答依据。

离线阶段处理原始资料:文档解析、清洗、分块、生成 Embedding、写入向量库,并保存标题、来源、页码等元数据。

  1. 数据处理

    把 PDF、Markdown、网页、数据库等资料转换成干净文本,并切成适合检索的片段。

  2. 向量化与索引

    使用 Embedding 模型把文本片段转成向量,写入向量数据库,同时保存原文和元数据。

  3. 问题检索

    用户提问后,先检索最相关的若干片段。检索质量决定了后续回答的上限。

  4. 增强 Prompt

    把检索到的材料、用户问题和回答规则组合成 Prompt,要求模型基于材料回答。

  5. 生成与引用

    模型生成答案,应用展示答案和引用来源。引用不是模型自动完成的,需要系统设计支持。

对比维度 RAG 微调
解决重点 回答时需要外部知识 模型行为、风格、格式或专项能力
知识更新 更新文档和索引即可 通常要重新准备数据并训练
来源追溯 可以关联原文片段 很难说明来自哪条训练数据
工程成本 需要维护文档、Embedding、向量库和检索 需要训练资源和样本设计
适合场景 私有知识库、企业文档、实时知识 固定格式、固定语气、专项任务习惯

一句话:RAG 解决“知道什么”,微调更偏向解决“怎么回答”。

问题 说明 检查方向
检索不到 用户问题和文档片段没有匹配上 分块、Embedding、召回数量、查询改写
检索错了 召回了看似相关但实际无关的材料 元数据过滤、重排序、评测集
回答不引用材料 模型自由发挥太多 Prompt 约束、引用格式、拒答规则
材料冲突 不同文档说法不一致 文档版本、权威来源、时间戳
权限泄漏 用户看到了不该看的材料 文档级权限、检索过滤、审计日志