什么是RAG?
RAG(Retrieval-Augmented Generation,检索增强生成)是一个极其重要且流行的技术框架,它巧妙地结合了你之前问题中提到的向量化模型和普通大语言模型(LLM),解决了LLM的一些核心痛点。
一、核心概念:RAG是什么?
RAG是一种为大语言模型(LLM)提供外部知识源的技术。它的核心思想是:在让LLM回答问题之前,先从一个外部知识库中检索出相关的信息,然后将这些信息和原始问题一起“喂”给LLM,让LLM基于这些检索到的可靠信息来生成答案。
你可以把它想象成一个开卷考试:
- 没有RAG的LLM:像是闭卷考试。模型只能依靠它训练时记忆在参数里的知识来回答问题。如果问题超出了它的记忆范围,或者知识过期了,它就可能会“胡编乱造”(幻觉现象)。
- 有RAG的LLM:像是开卷考试。允许模型在答题前先去查阅指定的参考资料(公司文档、最新新闻、数据库等)。它根据这些确凿的证据来组织答案,因此回答更准确、更可靠。
二、为什么需要RAG?它解决了LLM的哪些问题?
普通LLM虽然强大,但有三个致命弱点:
- 知识滞后(Outdated Knowledge):LLM的训练数据有截止日期(例如,GPT-4是2023年4月)。它无法知道这之后发生的事情,比如最新的新闻、价格、法律法规等。
- 幻觉(Hallucination):当LLM遇到不确定或不知道的事情时,它可能会自信地生成一个听起来合理但完全是错误的答案。
- 无法获取私有/域特定知识(No Access to Private Data):LLM不知道你公司内部的财务报告、产品手册、客户邮件或你的个人笔记。它无法基于这些机密或私有的信息为你服务。
RAG就是为了解决这些问题而生的。
三、RAG的工作流程是怎样的?
RAG的整个过程可以分为两个核心阶段:检索(Retrieval) 和 增强生成(Augmented Generation)。
第一阶段:检索(Retrieval)
- 知识库准备:首先,将你的外部知识源(如公司PDF、Word文档、网页、数据库等)切分成小块(例如段落或章节)。
- 向量化(Embedding):使用向量化模型将每一个文本块转换成对应的数值向量(Embedding),并存入向量数据库中。这个过程为知识库建立了可语义搜索的索引。
第二阶段:增强生成(Augmented Generation)
- 用户提问:用户提出一个问题,例如:“我们公司最新的休假政策有什么变化?”
- 检索相关文档:
- 系统使用同一个向量化模型将用户的问题也转换成向量。
- 然后在向量数据库中搜索与这个问题向量最相似的文本块(即语义上最相关的文档片段)。
- 组合上下文:将用户原来的问题和新检索到的相关文档片段组合成一个新的、增强版的提示(Prompt),例如:
“请根据以下信息回答问题:
[检索到的相关文档片段,例如:‘根据2024年最新规定,年假天数从10天增加至15天...’]问题:我们公司最新的休假政策有什么变化?”
- 生成答案:将这个增强后的Prompt发送给大型语言模型(LLM)。LLM会基于你提供的确凿上下文来生成答案,而不是依赖它可能过时或不存在的内部记忆。
- 返回答案:LLM生成的最终答案返回给用户。例如:“根据公司2024年的最新政策,员工的年假天数已从10天增加至15天。”
四、一个简单的比喻
想象一位律师在准备一场官司:
- 没有RAG的LLM:像是一位只凭自己记忆和法律知识辩护的律师。如果案件涉及最新的判例法,他可能因为不知道而败诉。
- 有RAG的LLM:像是同一位律师,但他有一个专业的法律助理(RAG系统)。在开庭前,助理会快速检索最新的法律数据库(向量数据库),找到与本案相关的所有最新判例和条文(检索到的文档),并把它们整理好放在律师面前。
- 律师(LLM)然后基于这些最新的、准确的文件(检索到的上下文)来撰写他的辩护词(生成答案),从而大大提高了胜诉的几率。
总结
| 特性 | 传统LLM (无RAG) | RAG增强的LLM |
|---|---|---|
| 知识来源 | 训练时记忆的内部参数 | 内部参数 + 外部实时/私有知识库 |
| 准确性 | 可能产生幻觉,答案不可控 | 基于提供的证据,答案更准确、可靠 |
| 时效性 | 知识滞后,无法更新 | 知识可实时更新,只需更新外部数据库 |
| 私有数据 | 无法访问和使用 | 可以高效利用私有或域特定数据 |
| 透明度 | “黑箱”操作,不知道答案来源 | 答案可溯源,可以引用参考文档,增强信任 |
因此,RAG是目前企业级AI应用中最主流的架构之一,它让LLM变得更具实用性、可信度和安全性。

浙公网安备 33010602011771号