RAG技术:为AI配备外部记忆系统
检索增强生成(Retrieval-Augmented Generation)深入解析
你是否也有过这样的体验——考试时大脑一片空白,但允许查阅资料时却能迅速作答?这其实体现了RAG的核心机制。
首先明确一点:大语言模型(LLM)本质上是“闭卷答题高手”。
它在训练过程中学习了海量的文本数据,将知识“压缩”到神经网络参数中。这就像一个人花时间背下了整本百科全书——看似强大,但问题也很明显:
它的知识有明确的截止时间。如果你问它“今天A股是否上涨”,它只能告诉你它的训练数据截止到某年某月。
它可能会“编造”。当它不知道答案时,不会坦诚说“不知道”,而是会一本正经地胡说——学术上称这为“幻觉”(Hallucination)。
它不了解你的私有数据。比如你公司的内部文档、个人笔记、行业专属知识——这些它一概不知。
那怎么办?总不能每次有新知识就重新训练模型吧?那可是成本数百万美元的活。于是,RAG应运而生。
RAG = Retrieval-Augmented Generation = 检索增强生成。
通俗来说,就是让AI在回答问题前,先去查资料,再作答。
从“闭卷考试”升级为“开卷考试”。就是这么简单?就是这么简单。但细节决定成败。
试想你是一个客服经理,新招了一个聪明但一无所知的实习生(即大模型)。你会如何做?
图1:RAG整体工作流程——从提问到生成的五步流程
你把公司的所有文档——产品手册、常见问题、操作指南——整理好,放进文件柜。在RAG中,这一步叫索引。
收集文档:把PDF、Word、网页、数据库内容全部收集。
切块(Chunking):把长文档切成小段。就像把一本书拆成一张张卡片,每张卡片只讲一个知识点。
向量化(Embedding):这是关键一步。用嵌入模型把每段文字转换成高维向量——一串数字。这串数字编码了文本的“语义”。语义相近的文本,它们的向量在空间中会更接近。
存入向量数据库:将这些向量连同原文一起存入向量数据库(如Pinecone、Milv0s、ChromaDB等)。这就是你的“知识库”。
图2:向量嵌入与语义空间——语义相近的文本在空间中距离更近
用户提了一个问题。系统先把问题转换成向量,然后去数据库中搜索最相关的几段文本。
这就像实习生接到客户电话后,先去文件柜里找出最相关的资料。常用的相似度计算方法包括余弦相似度(Cosine Similarity)和点积(Dot Product)。不需要精确匹配关键词,语义相近就能检索到。
把检索到的文本和问题一起打包,塞进大模型的提示词(Prompt)中。大模型现在不是凭记忆回答,而是“看着资料”回答。
请根据以下参考资料回答用户的问题。
如果资料中没有相关信息,请如实告知。
[参考资料]
[检索到的文档片段1]
[检索到的文档片段2]
[用户问题]
我们公司的退货政策是怎样的?
大模型拿到这些资料后,凭借强大的语言理解和生成能力,把资料中的信息整合、提炼、组织成一段流畅的回答。
你可能会问:直接把所有文档塞进Prompt里不就行了?何必多此一举先检索?好问题。原因有三:
第一,上下文窗口有限。把所有文档一股脑塞进去,不仅速度慢、成本高,还会出现“大海捞针”的问题——模型在海量文本中反而找不到关键信息。
第二,检索是一种“注意力聚焦”。只把最相关的信息喂给模型,就像考试前老师划重点。重点划得好,答题就准。
第三,知识更新零成本。新的文档来了?往向量数据库里一扔就完事。不需要重新训练模型,不需要花一分钱的GPU费用。
图3:闭卷vs开卷效果对比& RAG进阶优化手段
说了这么多好话,也得泼点冷水:
1.检索质量是天花板。如果检索这一步找错了资料,模型拿着错误的资料照样会给你一本正经的错误答案。这叫“垃圾进,垃圾出”。
2.切块策略很讲究。切太细,上下文信息丢失了;切太粗,检索精度下降了。怎么切是一门手艺。
3.语义鸿沟依然存在。用户可能用口语问“东西坏了咋整”,但文档里写的是“产品故障处理流程”。Embedding模型需要足够好才能跨越这种表述差异。
4.多跳推理是弱项。如果答案需要综合多个文档的信息进行推理,简单的RAG可能搞不定。
工程师们当然不会止步于基础版。以下是一些让RAG更强的常见手段:
混合检索(Hybrid Search):把向量搜索和传统的关键词搜索(BM25)结合起来。语义理解和精确匹配两手都要抓。
重排序(Re-ranking):先用向量搜索粗筛出一大批候选文档,再用一个更精细的模型对它们重新排序。有点像海选之后再来一轮复赛。
查询改写(Query Rewriting):用大模型先把用户的问题改写得更清晰、更利于检索。
递归检索/多步检索:对于需要多跳推理的问题,让系统分多步检索,层层递进。
知识图谱加持(Graph RAG):把文档不只是切成片段,而是抽取出实体和关系,构建知识图谱。检索的时候不仅找相似文本,还能沿着知识图谱的边进行推理。
如果把大模型比作一个绝顶聪明的大脑,那RAG就是给这颗大脑配了一个图书馆和一位尽职的图书管理员。
大脑(大模型)负责理解问题、组织语言、生成回答。
图书管理员(检索模块)负责根据问题快速找到最相关的资料。
图书馆(向量数据库)负责存储和管理所有知识。
大脑再聪明,如果只靠记忆,也会遗忘、会出错、会过时。但如果随时能翻阅最新、最准确的资料,它就能持续给出靠谱的答案。
这就是RAG——一个看起来朴素,但用起来真香的技术方案。它没有重新发明轮子,只是在合适的时候,把正确的知识送到了正确的地方。
下次当你看到某个AI助手能准确回答你公司内部的问题时,别急着惊叹“AI真懂我们公司”——多半是背后的RAG在默默翻书呢。