01. RAG 原理地图
RAG(Retrieval-Augmented Generation)在模型回答前检索外部证据,把证据放进上下文,再让模型生成。它适合经常更新、规模较大或不能完整放进提示词的知识。完整链路是:
text
离线:source → parse → clean → chunk → embed/index
在线:question → (rewrite) → retrieve → (rerank) → prompt → answer + citations“接入向量库”不是完整 RAG。质量来自数据边界、检索质量、上下文拼接、拒答策略和持续评估。
三种记忆
| 类型 | 例子 | 变更方式 | 适合 RAG 吗 |
|---|---|---|---|
| 参数记忆 | 模型训练出的常识 | 重新训练/微调 | 不适合频繁事实 |
| 工作记忆 | 当前对话、检索片段 | 请求级 | 是,必须设预算 |
| 外部记忆 | 制度、数据库、网页 | 增删改索引 | 是,必须有来源和权限 |
微调改变模型的行为风格或输出格式,RAG 提供会更新的事实。两者可以组合,但不能用微调替代权限过滤和引用。
一次回答的契约
输入是用户问题、身份、租户、时间和会话历史;输出至少包含答案、引用、置信信息或拒答原因、追踪 ID。内部记录 query、候选、模型版本、索引版本、耗时和 token。
一个合格回答能回答:
- 依据哪一个文档的哪一段?
- 该段在提问时是否对该用户可见?
- 如果删掉这段,答案会不会改变?
- 证据不足时,系统是否会明确说不知道?
责任边界
数据层负责完整、干净、可定位;检索层负责候选中有正确证据;生成层负责只使用证据、表达清楚;应用层负责权限、审计和体验。调试时按阶段日志定位:解析空是原文问题,候选无目标是索引/检索问题,候选有目标但回答错是重排/提示问题。
搜索返回文档列表,RAG 在搜索后增加证据压缩和语言生成。对“找出所有订单”这种要求完整集合、精确聚合、事务一致性的请求,优先使用数据库查询;模型生成不能替代 SQL、权限系统和工作流。
最小闭环
第一版只做 Markdown/HTML、标题感知切分、一个 embedding、持久化索引、top-k 检索、带来源回答和无证据拒答。先用 20 个问题确认链路,再增加混合检索、重排、Agent 或知识图谱。
练习与验收
- 给“报销标准是多少”画出离线和在线路径,标出每一步输入输出。
- 若正确段落排在第 8 位,判断是召回、重排还是上下文预算问题,并提出一个验证。
- 解释为什么“把公司制度微调进模型”仍不能解决新制度生效时间和员工权限。
验收:3 分钟内画出链路;说出至少 5 个必须记录的字段;举出一个不该用 RAG 的请求。
评论
正在加载评论…