RAG or 微调

现在基于大模型开发应用时,相信很多人都有这种疑问,到底对大模型进行微调还是外接RAG呢?因为两者在一定层面上有很多相似的地方,下面让我给大家从各个层面进行分析,结合具体的业务场景,看哪种方式更适合你的。

 

大模型微调和RAG的区别

RAG:本质上没有改变大模型,只不过是在大模型之外添加了额外的知识而已,所以RAG又被称作大模型外挂的知识库。使用流程上,当我们进行提问时,首先问题先会从RAG知识库中进行检索,然后将检索的结果和原始问题组成新的prompt,再交给大模型,最后由大模型给出结果。

image

大模型微调:微调是指在一个已有大模型的基础上,将一些知识给这个大模型进行训练,此时训练后新的大模型就具备了那些知识,这个过程叫做微调。比如上面说的在RAG知识库的内容,我们可以给已有的大模型进行训练,那样训练后的大模型就具备RAG知识库的内容了,当用户进行提问时,直接跟大模型进行交互给出反馈。

image

所以两者完全不同,简单理解就是微调需要对大模型进行训练,训练后新的大模型对外直接提供服务;而RAG则不需要,只是大模型外挂的一个知识库,RAG+大模型两者合起来对外提供服务。

 

微调 or RAG?

通过上面的介绍,两者属于完全不同的方式对外提供的丰富,但是可以达到同样的效果,那我们应该如何选择呢?

1、风格与个性:你的大模型需不需要具备一些特殊能力,也可以说是特殊定制的大模型。比如回答问题的方式,模型本身所具备的“性格”等。举个具体的场景,你的大模型的应用场景是新闻播报员,当你向他提问时,大模型就会以专业官方正式的口吻来回答问题。或者你的场景是一个智能客服,那大模型回答的口吻可能是礼貌、平易近人的语气回答问题。而这种需求必须通过对大模型进行特殊的训练,通过微调的方式去实现,RAG方式很难做到。

2、数据时效性:数据是否经常变化。如果你的数据经常变化,比如企业内的一些业务数据变化频繁,而且有些需要及时更新作出反馈,那实际上选择RAG是最合适的方式。因为如果我们使用微调的话,每次数据的更新我们都需要重新去微调大模型,这个显然是不现实的。但是RAG知识库则不同,因为是外挂的,本质上是去更新背后向量数据库的数据,操作简单,就类似于我们业务更新数据库mysql一样容易。

3、解决幻觉问题:RAG优于大模型微调。大模型的幻觉问题不可避免,并且大模型本身就是一个黑盒,当我们提出一个问题时,不清楚内部解析细节给出的反馈过程,出现了幻觉也难以追踪。但是RAG可以通过在外部添加专业知识,降低大模型出现幻觉的概率,并且可以对出现的具体幻觉通过加强RAG知识内容去解决,同时大模型之前的检索RAG知识库的步骤和结果是可以进行追踪的。

4、成本:这个我认为是特别重要的一点,使用RAG的成本要远低于微调一个大模型的成本。因为微调那我们需要收集和处理数据,然后做进行微调,如果微调的效果不好,我们还要接着去做迭代,所以它的成本是很高的。 

5响应延时:反馈的延迟性。如果对大模型的反馈速度有要求,那很明显我们要选择微调。因为微调后的大模型没有其他东西,直接与其交互即可。但是RAG很明显是在大模型之外又新加的环节,并且RAG本身的步骤里就包含了检索、聚合prompt等步骤,都比较费时。

6、深度专业化:专业垂直领域大模型场景,毫无疑问,只能是微调。这种场景下,我们的关注点是大模型只要某个专业领域很强就可以,通用领域则不是我们关注的重点,例如编码大模型的场景,我们只需要用微调的方式,在编码层面对其进行专业的训练,使大模型成为编码领域的专家。这种场景下,RAG是办不到的,因为只有大模型训练才可以。

7、部署环境:智能设备,微调。

 

示例:

AI产品经理

   处理动态数据  RAG

   超级对话能力  RAG

   业务能力        RAG

AI程序员

   很强规范阅读能力(模型定制能力)  微调
   代码编写分析能力                          微调
AI销售机器人

   商品数据/动态     RAG

   销售技巧/语气     微调

 
 转自:https://blog.itpub.net/70041290/viewspace-3031631/
https://www.douyin.com/user/self/search/%E5%BE%AE%E8%B0%83?aid=6331fe27-f652-4f1c-96cd-6807b25d0397&modal_id=7509115192224058624&type=general
posted on 2025-09-11 08:52  duanxz  阅读(39)  评论(0)    收藏  举报