概念●●○4 分钟 · +30 XP
RAG(检索增强生成)
RAG 会在生成回答之前从数据库中检索相关文档——这样 AI 就能使用训练数据中不包含的知识。
问题所在
LLM 只了解训练时融入其权重中的内容。最新事件、公司内部文档或你的私人知识库,它并不知道——除非你在 prompt 中提供。但如果有成千上万份文档,这些内容根本装不进一个 context window。
解决方案:Retrieval-Augmented Generation(检索增强生成)
RAG 将搜索与文本生成结合起来。它不是把所有知识都塞进模型,而是在每次请求时自动执行以下流程:你的问题会被转换成一个 embedding 向量,然后用它从数据库中检索出最相似的文本片段(retrieval),只有这几段相关内容会连同你的问题一起放入 context window。LLM 随后基于这些提供的材料来组织答案。
为什么这很有用
- 无需重新训练模型,就能使用最新的和私有的知识
- 减少 hallucination(幻觉),因为答案基于真实提供的来源,而不是纯粹的死记硬背
- 回答可以附上来源出处
一种改进
Anthropic 提出了一种叫 "Contextual Retrieval" 的技术:在对每个文本片段做 embedding 之前,先为其添加来自整篇文档的额外上下文——这能显著提高检索到正确片段的可靠性。
示例
一个客服聊天机器人收到问题'我该如何取消订阅?'。RAG 首先从帮助文档中检索出相关段落,并将其提供给 LLM——这样答案就基于文档中真实、最新的文本,而不是靠猜测。
小测验
在 LLM 组织答案之前,RAG 做了什么?
来源
- AWS: What is Retrieval-Augmented Generation (RAG)? ↗ aws.amazon.com
- Anthropic: Contextual Retrieval ↗ www.anthropic.com
- Wikipedia: Retrieval-Augmented Generation ↗ de.wikipedia.org