news 2026/8/28 13:17:00

通俗易懂的RAG,RAG到底做了什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通俗易懂的RAG,RAG到底做了什么?

提示是在教我们如何更好的跟大语言模型进行对话。那参数高效微调方法,像lora方法,是为了得到一个更好的大模型。那么今天我们来学习RAG技术。RAG是如何让大模型回答的更好(how to make LLMs answer better)。

RAG实际解决的问题是解决了大模型的知识局限性,缓解了幻觉问题。一定程度上也保证了数据的安全性。

它利用额外的知识库解决了知识性的局限,只要你的知识库足够丰富,就可以跟进上实时性的非公开的离线数据。对于幻觉问题,无法完全解决,但是可以有一定程度的缓解。对于数据安全角度,大模型本身有可能会造成数据信息的泄露。但它大多数泄露的是它在预训练过程中的一些数据。因此,我们把知识库和大模型看成相互独立的两个部分,知识库只是每次抽取相应的知识,其实对于大模型来讲,它不会有那么明显的一个数据泄露的问题,这也是使用RAG的一个好处。

RAG流程,分为数据准备,数据检索两个部分。

数据准备阶段:数据的爬取,对爬取的数据进行处理,切分和向量化。

数据检索也叫应用阶段:用户给了一个问题,进入我们的数据库,利用某种方法调用数据库中的某些和用户问题相关的数据,把这个数据拿出来。这个数据和问题会一起以提示的形式最终输入到大语言模型中,然后让大语言模型生成最后的答案。

向量化:我们肯定还是要判断它对应的一些其他特征方面的一些相关性。然后我们再把这些句子提取出来。所以这一步叫做向量化,向量化一个比较常见的方法:我们知道大语言模型,它都是一个一层一层的模型,它每一层输入到下一层,它都是一个768乘以768位的向量,那么我们把最后一层最终得到的向量,一般我们讲是一个得到深层语义的一个向量,还是一个768乘以768位的。我们把这个称为这个句子的向量化。下面是可以调用的模型,输入端是句子,输出端是向量。

爬取的数据没那么大可以保存在python,大的话可以放在数据库里。

下图,在应用阶段最关键的就是数据检索和注入prompt这两个部分。

针对数据检索采用相似性检索即可。比如说你有20万条数据?我们先用全文检索的方式把问题中的关键字和你知识中的关键字提取出来,这个关键字提取是非常快的。然后20万数据我们提取到了前100条。然后这100条再进行与弦相似度的计算。我们提取前十条。相当于第一个很大的知识库,通过先全文检索,把它压缩到一个小范围,我们再进行精检索。

提示注入。我们其实注入一般干什么。假如你是一个专业的积极客人,请根据什么背景知识回复。然后,我们把检索出来的背景知识直接给你,再把问题写上去。然后让他回答就行了。如下图所示。


所以RAG学完之后,你会发现数据提取是爬虫的事情。文本分割是token的事情。向量化其实是大语言模型的事情,它变成特征向量。那数据入库是内存的事情,用户提问不用我们管。注入提示,我们之前章节很详细的介绍了提示。答案生成这是大模型本身。我们之前也讲了如何得到更好大模型通过微调大模型。所以,RAG其实本质在干一个事就是数据检索。

RAG的本质它就是在玩这一块。怎么检索更精确?三种比较常见,你可以直接上手的,也是偏策略的东西。
第一种反复检索。比如说用户给个问题,我们先检索之后先让模型再回答一个问,他回答可能没有那么好。我们再把回答放进去,再检索新的知识,再让他进行重新生成,再检索再回答,然后直到大概做个三到五轮。然后我们觉得ok我们检索知识可能比较合适了,然后我们再去得到这个response就是最终的给用户的一个回复。这是第一种策略,也可以叫做N轮检索策略。

第二种策略用户给一个问题,模型会先把这个问题分解成几个小问题。分解这几个小问题之后,先分别针对几个小问题先做知识的检索。把这几个小问题全部回答完之后,我把所有的知识、所有的小问题的回答和所有的小问题一起交给大模型,得到最终的结果。但其实这是个比较强的假设。实话讲语义相似,就一定能更有益于解决问题吗?不一定吧!如果一个复杂的问题,它是不是要根据很多步的一个推理的?不一定你语义跟我完全一致。我就能回答你这个问题。我跟你这个问题的语义相关,不一定我就能解决你的问题。因此,我们把问题大问题分解成几个小问题,它包含的一些回答和都是比较直接的。通过小问题去检索知识,它可能会更加精准。

然后就是第三种策略,也就是把前面两种策略结合起来。既然有多轮的检索生成,又有小问题的分解,这两点显然是可以结合起来的。我们可以一边让模型进行多轮检索,一边让它对问题进行多个小问题的分解。你从这张图也可以看出来,在多轮的时候,我们要设计一个轮数。首先,我们可以设定一个总的轮数上限,比如最多进行五轮;同时,每一轮中也可以把当前的问题分解成多个小问题。这样一来,整个流程就变成了一个多轮、多分支的检索与生成过程。

在这个流程中,我们会多了一个 judge (判断)的东西,也就是一个评判器。这个 judge 的作用是什么呢?它用来自主判断我是否还要继续进行多轮检索,以及是否还需要对问题进行进一步的分解。换句话说,整个流程是一个完全自动化的东西,听起来很厉害,但实现起来其实并不复杂。我们直接去问大模型就可以了。比如,我们可以问它:你觉得我还要再进行下一轮的检索吗?或者,你觉得现有的材料足够解决当下的问题吗?如果它回答“是”,那就直接生成最终答案;如果它回答“不是”,那就继续检索新的知识,再对问题进行分解。每次进入一个循环的时候,我们还会再问一下大模型:你觉得这个问题分得足够细了吗?如果还不够细,就继续分解;如果已经足够细了,就进入下一轮检索。

不过,这里有一个需要特别注意的问题:当有更多的模型参与、有更多的轮次时,就势必会带来一个代价。你的时间会越来越长。我们刚刚说过,你检索一次,可能就要面对上万条数据,需要先做全文检索,再做相似性检索来计算相似度。这还只是一轮的情况。何况现在要做 N 轮检索,还要把问题分解成 N 个小问题,每个小问题再分别进行 N 轮检索,那复杂度就是 N 乘以 N,会非常高。所以,这种组合策略虽然效果可能更好,但计算成本和时间开销也会显著增加。具体要不要采用这种策略,以及轮数和问题分解的粒度怎么设置,都需要根据你实际项目的需求、数据规模和时间预算来权衡决定。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 13:15:00

回归分析实战:从Matlab regress函数到美国人口预测模型

1. 项目概述:从回归分析到人口预测 最近在整理数学建模的实战案例,发现很多同学对回归分析的理解还停留在“调用一个函数出结果”的层面,尤其是像Matlab里的 regress() 这类工具,用起来简单,但背后的门道和坑却不少。…

作者头像 李华
网站建设 2026/8/28 13:13:49

蓝桥杯Scratch国赛真题解析:镜像画笔实现原理与优化技巧

1. 项目概述与核心价值 “镜像画笔”这个题目,乍一听像是某个绘图软件里的特效功能,但在第13届蓝桥杯Scratch国赛的舞台上,它是一道检验选手逻辑思维、坐标运算和事件驱动编程能力的经典真题。这道题通常要求选手操控一个角色(画笔…

作者头像 李华
网站建设 2026/8/28 13:13:38

BitTime算力配额系统:用计量与额度管理约束AI

大家有没有发现,最近关于“如何约束AI”的讨论越来越多了。但大多数人聊的是算法层面的对齐、安全护栏、内容审核,很少有人把一个更底层的问题放在桌面上: 算力到底该由谁来支配? 一个AI Agent能连续调用多少次模型?…

作者头像 李华
网站建设 2026/8/28 13:11:40

写一条自定义规则并落地:andrej-karpathy-skills 完整实操手册

写一条自定义规则并落地:andrej-karpathy-skills 完整实操手册 【免费下载链接】andrej-karpathy-skills A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls. 项目地址: https://git…

作者头像 李华
网站建设 2026/8/28 13:10:32

andrej-karpathy-skills:CLAUDE.md 完整拆解

andrej-karpathy-skills:CLAUDE.md 完整拆解 【免费下载链接】andrej-karpathy-skills A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls. 项目地址: https://gitcode.com/GitHub_T…

作者头像 李华
网站建设 2026/8/28 13:09:42

996引擎-实战笔记:双击类道具触发之●盟重回城石●

996引擎-实战笔记:双击类道具触发之●盟重回城石● 问题 解决方案 补充:回城卷 摘自:996M2引擎帮助文档 参考资料 问题 今天添加了个新地图,怎么搞都回不到新地图的回城点。 (由于这个版本只有盟重回城石没设计回城卷。当时也是懵逼了把它当回城卷用了半天) 分析 先看一…

作者头像 李华