RAG(Retrieval-Augmented Generation,检索增强生成)解决的是一件很朴素的事:模型记不住你公司内部的最新文档、你刚写的笔记、或闭源知识库里的细节——但它很会组织语言。RAG 的做法是:先检索相关片段,再把这些片段塞进提示里,让模型基于材料回答。
没有 RAG 时会发生什么
用户问:「我们团队上周定的接口错误码规范是什么?」纯 LLM 只能凭训练数据猜,轻则过时,重则编造。
有了 RAG,系统会先从你的文档库里捞出相关段落,再让模型「只依据这些段落」总结或回答。
典型流程(概念级)
- 切分与索引:把 PDF、Markdown、网页等切成小段,用向量模型变成向量,存入向量数据库。
- 检索:用户提问同样转向量,做相似度搜索,取 Top-K 段文本。
- 生成:把检索结果作为上下文,提示模型:先引用要点,再回答;若材料不足则说明。
工程上还要处理:重排序(rerank)、权限、引用溯源、防提示注入等——这里不展开,只建立心智模型即可。
和「微调」怎么分工(粗线条)
- RAG:适合知识常更新、需要可解释「依据来自哪段文档」的场景。
- 微调(Fine-tuning):更适合固定风格、固定任务格式、或把领域术语「刻进权重」——成本与数据准备通常更高。
很多产品会 RAG + 轻量微调 一起用:检索解决「说什么」,微调解决「怎么说得更像你们公司」。
若你正在搭建个人知识库,先从「把笔记向量化 + 本地小工具问答」试起,比一上来追大架构更实在。