减少幻觉
让模型基于检索材料回答,可以减少无依据编造,但不能完全消除幻觉。
RAG 是 Retrieval-Augmented Generation,中文常说“检索增强生成”。它的核心做法是:模型回答前,先从知识库或外部数据源中检索相关材料,再把这些材料放进上下文,让模型基于材料回答。
减少幻觉
让模型基于检索材料回答,可以减少无依据编造,但不能完全消除幻觉。
补充新知识
模型参数里的知识会过时,RAG 可以接入最新文档、数据库或网页。
接入私有知识
公司制度、项目文档、业务规则通常不在通用模型里,需要通过知识库提供。
支持来源追溯
应用可以展示答案引用的原文片段,方便检查回答依据。
离线阶段处理原始资料:文档解析、清洗、分块、生成 Embedding、写入向量库,并保存标题、来源、页码等元数据。
在线阶段处理用户问题:将问题向量化,检索相关片段,把片段和问题一起放入 Prompt,再让模型生成答案。
数据处理
把 PDF、Markdown、网页、数据库等资料转换成干净文本,并切成适合检索的片段。
向量化与索引
使用 Embedding 模型把文本片段转成向量,写入向量数据库,同时保存原文和元数据。
问题检索
用户提问后,先检索最相关的若干片段。检索质量决定了后续回答的上限。
增强 Prompt
把检索到的材料、用户问题和回答规则组合成 Prompt,要求模型基于材料回答。
生成与引用
模型生成答案,应用展示答案和引用来源。引用不是模型自动完成的,需要系统设计支持。
| 对比维度 | RAG | 微调 |
|---|---|---|
| 解决重点 | 回答时需要外部知识 | 模型行为、风格、格式或专项能力 |
| 知识更新 | 更新文档和索引即可 | 通常要重新准备数据并训练 |
| 来源追溯 | 可以关联原文片段 | 很难说明来自哪条训练数据 |
| 工程成本 | 需要维护文档、Embedding、向量库和检索 | 需要训练资源和样本设计 |
| 适合场景 | 私有知识库、企业文档、实时知识 | 固定格式、固定语气、专项任务习惯 |
一句话:RAG 解决“知道什么”,微调更偏向解决“怎么回答”。
| 问题 | 说明 | 检查方向 |
|---|---|---|
| 检索不到 | 用户问题和文档片段没有匹配上 | 分块、Embedding、召回数量、查询改写 |
| 检索错了 | 召回了看似相关但实际无关的材料 | 元数据过滤、重排序、评测集 |
| 回答不引用材料 | 模型自由发挥太多 | Prompt 约束、引用格式、拒答规则 |
| 材料冲突 | 不同文档说法不一致 | 文档版本、权威来源、时间戳 |
| 权限泄漏 | 用户看到了不该看的材料 | 文档级权限、检索过滤、审计日志 |