RAG 检索增强生成入门:让大模型用上你的知识库
发布于 2026-10-23
为什么需要 RAG
大语言模型有两个老问题:知识有截止日期,且不知道你的私有数据。RAG(Retrieval-Augmented Generation,检索增强生成)的思路很直接——先从知识库里检索相关内容,再让模型基于检索结果回答。相比微调,它成本低、可溯源、知识可热更新。
标准流程五步走
- 文档加载与切分:把 PDF、网页、表格转成文本,再按语义切成几百字的块。切分策略直接决定检索质量,注意保留标题、表格结构等上下文。
- 向量化(Embedding):用嵌入模型把文本块变成向量。Sentence Transformers 是开源界最常用的嵌入模型库,中英混合场景要选对多语言模型。
- 存入向量数据库:开源方案可看 Qdrant,托管服务有 Pinecone 等。小规模 demo 用 FAISS 或 sqlite-vec 也完全够。
- 检索与重排:先用向量相似度召回候选块,再用交叉编码器重排,把最相关的内容放进上下文。
- 生成与引用:把检索结果连同问题一起交给 LLM,并要求给出处。OpenAI Cookbook 里有大量可复制的示例代码。
效果评测不能省
“感觉答得还行”不是评测。RAGAS 提供了忠实度、答案相关性、上下文召回等指标,改一版切分策略就跑一次,用数据说话。想深入了解原理,建议读 RAG 综述论文 与 Pinecone 的 RAG 入门文章。
常见坑
- 切分过大或过小:块太大稀释相似度,太小丢失上下文,200–500 字是常见起点。
- 只做向量检索:关键词+向量的混合检索通常明显更稳。
- 忽略查询改写:用户口语化提问时,先让模型改写成检索友好的查询。
- 没有兜底:检索不到相关内容时,应明确回答“不知道”,而不是硬编。