检索增强生成解决了什么问题
大模型再强也有三个绕不开的短板:知识停留在训练截止日期、对私有数据一无所知、容易一本正经地幻觉。检索增强生成(RAG, Retrieval-Augmented Generation)的思路是:不让模型背答案,而是先帮它查资料,再让它基于资料作答。
为什么需要 RAG
- 知识过时:模型不知道训练截止之后发生的事
- 私有知识:公司内部文档、个人笔记从未进入训练语料
- 幻觉:模型凭参数”印象”作答时,可能编造不存在的事实
- 可追溯:业务上要求答案能给出出处,纯生成做不到
RAG 把”记忆”外置到可更新的知识库,模型只负责理解与表达,事实由检索到的文档兜底。
RAG 的基本流程
离线建库:
- 文档切分:按段落或固定长度把长文档切成 chunk(保留适当重叠)
- 向量化:用 Embedding 模型把每个 chunk 转成语义向量
- 入库:向量存入向量数据库(Milvus、pgvector、Elasticsearch 等)
在线问答:
- 把用户问题同样向量化
- 在向量库中检索最相似的 top-k 个 chunk
- 把问题与检索到的 chunk 拼进提示词,交给大模型生成答案
模型回答时”手里有资料”,幻觉率显著下降,且能引用出处。
关键工程点
RAG 看似简单,效果却高度依赖工程细节:
- 切分粒度:chunk 太长短语信息不全,太长掺杂噪声
- 检索质量:纯向量检索对关键词敏感型查询(型号、编号)较弱,常混合 BM25 做混合检索
- 重排序:检索 top-k 后用 rerank 模型精排,把最相关的放到前面
- 上下文窗口:塞入的 chunk 越多越贵,且无关内容会干扰模型
RAG 还是微调
两者常被拿来比较:
- RAG:知识可随时更新、成本低、可追溯,适合”查资料型”需求
- 微调:改变模型的行为风格与领域语言能力,适合”改说话方式/格式”的需求
经验法则:知识问题用 RAG,行为问题用微调,二者也可叠加。RAG 让大模型从”闭卷考试”变成”开卷考试”,是企业落地大模型最主流的第一站。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 非鱼小站!
评论
WalineDisqus







