切换阅读主题
用 RAG 连接自己的知识
如果想让模型回答与你的个人笔记有关的问题,直接提问可能不够:模型没有自动读过那些笔记。RAG,也就是检索增强生成,提供了一种常见思路——先找出相关资料,再把资料和问题一起交给模型。
可以先把它想成开卷回答
面对一个问题,系统先到资料集合中找出可能相关的内容,再要求模型结合找到的片段作答。检索负责找资料,生成负责组织答案。
这和把所有文档重新训练进模型不同。很多 RAG 流程可以在不改变模型参数的情况下,让模型使用当前检索到的材料。
一条基础流程
text
准备阶段
原始笔记 → 清理与分块 → 建立可检索的索引
回答阶段
用户问题 → 检索相关片段 → 组合问题与资料 → 模型生成答案检索可以使用关键词、向量或二者结合。向量检索是常见方式之一,但并不是所有 RAG 系统都必须使用向量数据库。
每一步都可能影响结果
分块太碎,可能丢掉上下文。 一段话的定义与限定条件被拆开以后,检索结果可能只留下结论,没有留下前提。
检索到的内容可能并不相关。 相似的词句不一定回答了同一个问题。需要检查片段是否真的支持当前任务。
模型仍可能超出资料作答。 即使提供了材料,也需要检查答案是否正确引用,以及资料不足时是否明确表达不确定。
先用一个很小的实验开始
可以先选十篇熟悉的笔记,再写五个能从笔记中找到答案的问题,以及两个资料里没有答案的问题。
逐个记录:检索到了哪些片段、答案依据在哪里、有没有出现无依据的补充。对比修改前后的结果,比单纯更换模型更容易看出问题发生在哪一步。
| 观察项目 | 想确认的问题 |
|---|---|
| 检索结果 | 关键资料有没有被找到? |
| 资料支持 | 回答中的事实能否对应到来源? |
| 无答案问题 | 资料不足时是否明确说明? |