什么是 RAG?
RAG(Retrieval-Augmented Generation),即“检索增强生成”,是一种将检索系统(如搜索引擎、向量数据库)与生成式模型(如GPT)相结合的技术架构。
-
检索:先从知识库中找到相关文档或片段
-
生成:再让模型基于检索到的内容生成回答
为何要用 RAG?
-
知识覆盖更广:无需将所有知识都塞进模型参数里
-
易于更新:只需更新外部知识库,无需重新训练大模型
-
回答更准确:模型可直接引用检索到的事实
RAG 的核心流程
1. 检索(Retrieval)
-
输入查询:用户问题(如“2025 年奥斯卡获奖名单?”)
-
向量化/索引查询:将问题转成向量或关键词
-
相似度检索:在知识库中找到 top-k 个最相关的段落
🔍 常用工具:FAISS、ElasticSearch、Weaviate
2. 生成(Generation)
-
拼接提示(Prompt):将检索到的片段与原始问题拼成一个“增强提示”
-
调用生成模型:让模型基于增强提示输出回答
-
后处理:可选的答案抽取、格式化、校验
┌───────────┐
│ 用户输入 │
│ “什么是RAG?”│
└─────┬─────┘
│
▼
┌───────────┐
│ 检索模块 │───► 从知识库取出 Top-k 文档片段
└─────┬─────┘
│
▼
┌───────────┐
│ 生成模块 │───► 基于检索结果生成最终回答
└───────────┘
│
▼
┌───────────┐
│ 输出答案 │
└───────────┘
优点 | 缺点 |
---|---|
知识库可独立更新 | 检索库质量依赖很高 |
提升回答准确度 | 增加系统复杂度 |
降低模型微调成本 | 拼接长度受限 |
通俗来讲,RAG 比“单纯从数据库里搬资料”多了以下几个关键好处:
-
降低“胡说八道”风险
-
纯生成模型在没有足够上下文时容易“编造”答案(hallucination)。
-
RAG 先检索,再生成,把生成模型的答案都“钉”在真实文档上,答案更可靠。
-
-
知识可实时更新
-
只要把新的文档加到知识库里,立刻就能被检索到,无需重新训练模型。
-
相当于给助手机器人配了一本可随时增订的“活教材”。
-
-
模型体积更小、成本更低
-
不用把所有知识都塞进大模型权重,模型规模可以更轻量。
-
查询时主要耗费检索和一次生成调用,整体算力 & 存储成本更省。
-
-
可解释性更好
-
你可以看到它用的是哪几段文档来回答,便于追根溯源、校对 & 审计。
-
类似学生交作业时同时提交参考书页码,老师能直接查证。
-
-
分工更清晰、易于扩展
-
检索模块专注“找资料”,生成模块专注“组织语言”。
-
将来想换更好的检索(如更快的向量库)或更强的语言模型,都能单独升级,不互相捆绑。
-
小结
RAG 通过“先检索、再生成”的方式,让生成模型既能利用外部海量知识,又保持灵活性与可更新性。对于需要实时、专业或海量领域知识的应用场景,RAG 是一种非常实用的解决方案。
暂无评论内容