RAG:让AI能查资料的魔法
AI会编故事?给它一个知识库,让它先"查资料"再回答
你有没有遇到过这样的情况:问ChatGPT一个问题,它给你一个听起来很真实但其实是编的答案?
比如你问:"2024年世界杯冠军是谁?"它可能自信地告诉你一个队伍,但实际上2024年没有世界杯。这就是AI的幻觉(Hallucination)。
怎么办?一个办法是给它一个知识库。当它要回答问题时,先从知识库里检索相关信息,然后基于这些信息回答。
这就是RAG(Retrieval-Augmented Generation,检索增强生成)。
1从"闭卷考试"到"开卷考试"
❌ 没有RAG:闭卷考试
问题
"OpenAI的CEO是谁?"
回答
"OpenAI的CEO是Sam Altman。"
(可能是对的,也可能已经变了)
问题
• AI的训练数据可能过时
• AI可能记错或编造
• 无法验证答案真实性
✓ 有RAG:开卷考试
问题
"OpenAI的CEO是谁?"
检索结果
找到相关文档:
"2024年11月,Sam Altman担任OpenAI CEO..."
回答
"根据2024年11月的报道,OpenAI的CEO是Sam Altman。"
(有据可查,可信度高)
💡 类比
传统AI就像学生闭卷考试——只能靠记忆,可能记错。RAG就像学生开卷考试——可以翻书查阅,答案更准确。这就是RAG的威力。
2RAG的核心流程
RAG分两个阶段:知识库构建(离线)和检索增强生成(在线)。
📚 阶段一:知识库构建(离线)
文档分块
把长文档切成小块(如每块500字)
向量化
把每个文档块变成向量(用Embedding模型)
存入向量数据库
Pinecone、Milvus、Chroma等
🔍 阶段二:检索增强生成(在线)
问题向量化
把用户问题变成向量
相似度搜索
在向量数据库中找最相似的Top-K个文档块
构建Prompt
问题 + 检索到的文档块 → 组成Prompt
LLM生成回答
基于检索到的信息生成答案
3为什么RAG这么受欢迎?
✅ 减少幻觉
AI基于检索到的真实文档回答,不再是"瞎编"。答案有据可查,可信度高。
✅ 知识可更新
不用重新训练模型,只需更新知识库。新知识可以立即生效,成本低、速度快。
✅ 可溯源
可以告诉用户"这个答案来自哪些文档",用户可以验证。增加了透明度和信任度。
✅ 领域适配
给AI加上企业内部文档、专业知识库,就能让通用AI变成领域专家,无需微调。
✅ 成本低
不需要微调大模型(很贵),只需要向量化文档(便宜)。适合中小企业和个人。
✅ 数据隐私
知识库可以本地部署,敏感数据不离开企业。满足数据合规要求。
4RAG有哪些坑?
⚠️ 挑战1:检索质量
如果检索不到相关文档,或者检索到无关文档,AI的回答质量会很差。
解决:优化分块策略、使用混合搜索、重排序
⚠️ 挑战2:上下文窗口限制
LLM有上下文窗口限制(如GPT-4是128K token),不能检索太多文档。
解决:只检索Top-K最相关文档、文档压缩、摘要
⚠️ 挑战3:文档分块策略
分块太小:丢失上下文;分块太大:包含太多噪声。没有万能方案。
解决:根据文档类型调整分块大小、重叠分块
⚠️ 挑战4:延迟
检索 + 生成,比纯生成慢。用户可能要等几秒才能看到答案。
解决:缓存热门查询、异步检索、流式生成
⚠️ 挑战5:知识冲突
检索到的文档可能互相矛盾,或者与AI的预训练知识冲突。AI该信哪个?
解决:提示AI"优先使用检索到的知识"、多源验证
5如何让RAG更好?
🔄 查询改写
把用户问题改写成更适合检索的形式
原问题:"怎么修?"
改写:"iPhone无法开机如何维修"
📚 多轮对话记忆
记住对话历史,结合上下文检索
用户:"它多少钱?"
系统:结合上文"iPhone 15"→ 检索"iPhone 15价格"
🎯 重排序
先用向量检索Top-100,再用更精确的方法重排序
向量检索:快但不够准
交叉编码器:慢但准
结合:又快又准
📊 文档压缩
检索到文档后,只保留与问题相关的部分
长文档(5000字)→ 提取相关段落(500字)→ 喂给LLM
🔀 多查询检索
把一个问题拆成多个子问题,分别检索再合并
"比较iPhone和华为的优缺点"
→ "iPhone优点" + "iPhone缺点" + "华为优点" + "华为缺点"
🧠 知识图谱增强
不仅检索文档,还检索实体关系
文档:"Sam Altman是OpenAI CEO"
知识图谱:Sam Altman --CEO--> OpenAI --开发--> GPT-4
→核心总结
🎓 一句话总结
- ①定义:RAG = 检索增强生成,让AI先"查资料"再回答
- ②流程:问题向量化 → 检索相关文档 → 构建Prompt → LLM生成
- ③优势:减少幻觉、知识可更新、可溯源、成本低、保护隐私
- ④挑战:检索质量、上下文限制、分块策略、延迟、知识冲突
→下一篇预告
RAG需要知识库,知识库从哪来?
RAG的核心是知识库。但知识库怎么构建?如何把各种文档(PDF、Word、网页、数据库)变成向量?如何保证知识库的质量?
下一篇,我们就讲讲知识库——AI的"参考书"。
✏️ 手绘图解 · AI Catch 出品
第 52 篇 / 共 84 篇 · 第六阶段:检索与知识增强