为什么 RAG 能让 AI 更 “聪明”? 工作原理深度拆解

  • 2025-07-16 23:35:24
  • 866

在人工智能领域,大语言模型(LLM)的快速发展为自然语言处理带来了革命性的突破。然而,这些模型在处理实时信息、专业领域知识以及确保回答准确性和可靠性方面仍面临挑战。本文将深入探讨一种名为RAG(Retrieval-AugmentedGeneration,检索增强生成)的技术框架,它通过结合信息检索与大语言模型的生成能力,为AI模型提供了强大的外挂支持。

一、为什么要做RAG?

时效性:模型的训练是基于截止某一时间点之前的数据集完成的,这意味着在这之后发生的事情大模型就难以回答。如果需要构建能够推理私有数据或者模型截止日期后引入的数据,则需要使用RAG;

解决模型幻觉问题:传统大模型依赖训练数据,易生成错误信息,比如用户问了一个大模型不知道的东西,它会通过瞎编来回答,其实毫无依据。RAG通过外部知识检索提供实时、可靠的上下文支撑,因此减少“一本正经的胡说八道”现象;

(美国的一位律师,他用大模型去搜集案例,ChatGPT确实给出了几个案例。律师反复去确认这些案例是真实的吗?大模型回复都是真实的,开庭时,经过核实这些案例其实都是AI虚构出来的。)

弥补专业领域知识内容不足:金融领域、医疗领域等有自己专业知识的沉淀,大模型其实是不具备某领域非常专业知识的能力的,那我们就可以把专业知识通过Rag技术让大模型进行知识库检索。例如金融(业务上的专业知识、产品知识、产品手册、优质的用户问答等);

可靠的知识来源与可验证性:来自哪篇文章、哪个文档、哪个网页都有迹可循,可以看到回答的依据来源,使得验证答案准确性变得容易起来;

保障数据安全:可以让大模型调用私有知识库来服务用户,避免数据上传云端或者外部,导致重要信息、敏感数据外泄的情况。

二、RAG到底是什么?

RAG(Retrieval-AugmentedGeneration,检索增强生成)是一种结合信息检索与大语言模型生成能力的技术框架,它由两部分组成:“检索器”和“生成器”

检索器从外部知识中快速找到与问题相关的信息

生成器则利用检索到的信息来生成精确和连贯的答案。

简单来说就是:通过检索的模式,为大语言模型提供强有力的外挂,从而使大模型生成的答案更符合用户想要的答案。

三、RAG的工作原理

步骤一:构建可检索的知识库

如何构建可检索的知识库?

02.数据清洗及格式化:将不同格式的数据内容提取为纯文本

03.内容切分:将文本内容按段落、主体或者逻辑单元切分成较小的知识片段(Chunk);那谁来切呢?Embedding

04.向量化:将每个知识片段转化为向量表示(比如OpenAI的Embedding接口)

知识补充:什么是向量

向量(Vector)是一种将复杂信息转化为计算机可处理的数值形式的核心工具,本质上是“高维空间中的有序数值数组”。它通过将文本、图像、声音等数据映射为特定维度的数字序列,让AI模型能够高效地理解、计算和学习数据背后的规律

通俗来说,向量是AI的「数字身份证」:把万物变成数字串

在AI眼里,图像、文字、声音甚至用户行为,都必须先变成一串数字组成的向量才能处理。

举个栗子:

文本(NLP领域):句子“我喜欢AI”会被转化为向量,比如用Word2Vec技术生成[0.8,-0.3,1.2,…]这样的数字串,向量中的每个数字代表一个隐藏的语义特征(比如“喜欢”的情感强度、“AI”的领域相关性)。

神奇的是:“AI”和“人工智能”的向量在空间中会非常接近,因为它们语义相似。

借助Embedding模型,将切分好的片段转化成向量(数字组成的),这个向量是可以比较相似度

05.关联元数据:给每个向量关联相关元数据(如:文档名称、创建时间、作者、来源等)

06.载入向量数据库并建立索引:向量数据库如FAISS、Pinecone、Weaviate;

07.部署集成:将向量数据库集成到AI产品流程中,生成模型搭配使用。

步骤二:模型调用知识库完成用户任务

将用户的Prompt转化成向量,去向量数据库里比较相似度;

选取相似度较高的1条或者多条知识片段(3条,5条,10条这样的召回),并提取知识片段原文;

将检索出的知识片段与原Prompt合并在一起组成新的Prompt

模型生成最终回复

四、如何提升回答的准确率?

以智能客服举例,比如客服系统无法充分理解用户的真实意图,回答偏离主题时

对用户Prompt进行改写,相同语义的不同问法

可以将用户的问题,通过大模型改写成多个相似语义的问题(具体可能是2个、3个、4个、5个等,根据准确率评估来定)

比如用户问:如何交易美股?

我们将用户问题改写成4个相同语义的问题

Q1我怎么交易美股?对应50个相似片段–通过排序–挑选Top3

Q2我怎么买国外的股票?对应50个相似片段–通过排序–挑选Top3

Q3我怎么买美股?对应50个相似片段–通过排序–挑选Top3

Q4可以买美股吗?对应50个相似片段–通过排序–挑选Top3

将得出的top12再次进行重排序,得到Top3,Top3+用户提问+系统提示词,一起给到大模型,大模型给出回答。准确率也是会有一定的提升;

检索到信息,想要的答案排序靠后

加入排序模型(Rerank模型)

在基础RAG中,准确率大概在66%左右,在加入Rerank之后,准确率提升了12%(重新排序可以增加一定的准确度)

在向量知识库中检索到相应的片段之后,加入排序模型,对这些相关片段进行排序。

比如:检测出60个相关片段,经过Rerank排序之后,挑选出前三个相似度最高的片段+用户提问+系统提示词,一起给到大模型,大模型给出回答。

回答不全面

Chunk切分处优化

知识片段有明确主题、交叠切分、多颗粒度混合切分;

知识片段的上下相邻片段可以一并取出,提高信息完整度

检索不全面

向量+关键词混合检索

方法:关键词匹配和向量匹配相结合的形式

关键词检索,召回简单直接,能快速找到包含特定关键词的文档,速度快;

向量匹配,能更好处理语义层面的匹配,提高召回的全面性。

这两者的结合,可以充分利用各自的优势提高召回率。

这几个小技巧是提升准确率的比较好用的小方法,分享给大家,大家也可结合自己的项目继续探索,多多交流~

五、市面上向量数据库对比