RAG是什么
RAG(Retrieval-Augmented Generation)是检索增强生成。它先从外部知识库检索相关资料,再把资料作为上下文交给大模型生成答案。
# 1. RAG 解决的问题
大模型本身存在几个限制:
- 训练知识可能过时。
- 不知道企业私有文档。
- 事实型问题可能产生幻觉。
- 回答缺少可追溯来源。
RAG 通过外部检索补充资料:
用户问题
-> 检索知识库
-> 找到相关资料
-> 拼入上下文
-> 大模型基于资料回答
-> 返回答案和引用
# 2. RAG 基本架构
离线索引链路:
文档 -> 解析 -> 清洗 -> 切分 -> 向量化 -> 入库
在线问答链路:
问题 -> 检索 -> 重排 -> 上下文拼接 -> 生成 -> 引用校验
离线链路决定知识质量,在线链路决定回答质量和用户体验。
# 3. RAG 适合场景
| 场景 | 原因 |
|---|---|
| 企业知识库 | 私有文档不在模型训练数据中 |
| 客服问答 | 需要基于最新规则回答 |
| 研发文档助手 | 文档更新频繁,需要可追溯 |
| 法规制度查询 | 答案必须引用来源 |
| 产品手册问答 | 需要按版本和权限过滤 |
# 4. RAG 不适合什么
| 场景 | 原因 |
|---|---|
| 简单通用常识 | 直接问模型即可 |
| 强结构化查询 | SQL 或业务接口更可靠 |
| 高精度计算 | 应调用计算工具 |
| 强流程业务 | 传统工作流更稳定 |
| 资料质量极差 | 检索到错误资料会放大错误 |
# 5. RAG 和微调
| 对比项 | RAG | 微调 |
|---|---|---|
| 主要目标 | 接入外部知识 | 改变模型行为 |
| 更新方式 | 更新文档和索引 | 重新训练或继续训练 |
| 可追溯性 | 可返回引用 | 通常较弱 |
| 适合知识更新 | 适合 | 不适合频繁更新 |
| 工程复杂度 | 检索链路复杂 | 训练和评估复杂 |
# 6. RAG 成败关键
- 文档是否准确、完整、及时。
- 切分是否保留语义。
- 检索是否能召回正确资料。
- 重排是否把关键资料放在前面。
- Prompt 是否要求基于资料回答。
- 权限是否过滤正确。
- 是否有评估集持续回归。
# 7. Tips 快问快答
Q:RAG 是不是就是向量数据库?
A:不是。向量数据库只是 RAG 的一部分,完整 RAG 还包括文档处理、切分、召回、重排、生成、引用、权限和评估。
Q:RAG 能让模型回答所有企业问题吗?
A:不能。前提是知识库中有正确资料,并且检索能找出来。资料缺失时应该拒答或转人工。
Q:RAG 为什么还会答错?
A:可能是文档错、切分差、召回错、重排差、上下文冲突或模型没有严格基于资料回答。
上次更新: 2026/06/25, 17:53:09