当前位置: 首页 > news >正文

RAG or 微调

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是办不到的,因为只有大模型训练才可以。

 
http://www.wxhsa.cn/company.asp?id=759

相关文章:

  • 什么是AI CRM(人工智能客户关系管理)
  • 完整教程:WPF WriteableBitmap 高性能双缓冲图片显示方案
  • PHP 性能优化实战 OPcache + FPM 极限优化配置
  • 多校 3 - 1001. 求和
  • cache的基本原理
  • 【办公自动化】如何使用Python脚本自动化处理音频?
  • 如何用 vxe-table 实现2个树表格可以互相拖拽数据
  • CSP 初赛必背
  • 最新安卓版16音轨简谱编辑器软件使用说明
  • 【URP】Unity超分辨率优化实践
  • 0125_命令模式(Command)
  • 通过 GitHub 仓库下载微信 Mac Windows 历史版本(Rodert 提供)
  • CSP 初赛整理
  • 使用GoLang执行Shellcode的技术解析
  • 【GitHub每日速递】想提升技术?这 些开源项目涵盖编程、服务器管理,别错过
  • cidr Not Available
  • 读人形机器人08制造行业
  • 现代Web应用渗透测试:JWT攻击实战指南
  • 分享10 个百度资源网盘搜索的网站大全
  • RST报文段的意义
  • Delphi TStringGrid控件学习笔记
  • 你可能不需要WebSocket-服务器发送事件的简单力量
  • JS 定时器 点击简书 button 加载更多 控制台触发
  • Oops! internal error 1341 occurred.
  • navicat查看mysql数据库大小
  • MyNetty Normal 规格池化内存分配在高并发场景的应用探讨
  • mongodb 慢查询模拟
  • Java第一次实验
  • HCIP回顾— BGP经典实验详解
  • 逆波兰表达式求值+滑动窗口最大值