博客园-大模型微调别上来就全量微调
大模型微调别上来就全量微调,90%的场景用LoRA就够了
这两年大模型微调很火,很多团队一上来就说:"我们要微调一个自己的大模型。"然后找个全量微调的方案,租一堆GPU,跑半个月,最后效果还没人家用RAG的好。
我自己做过几个微调项目,踩了不少坑,今天就聊聊一个最常见的误区:很多人觉得微调就得全量微调,其实90%的场景,用LoRA就够了。
一、全量微调的成本,你根本扛不住
先算笔账。现在开源大模型基本都是7B、14B参数起步,你要是做全量微调:
- 14B模型全量微调,至少要4张A100 80G才能跑起来
- 训练数据就算准备了1万条,跑一轮也要好几天
- 电费+GPU成本,一次实验就要小几万
这还是最顺利的情况。真做过的人都知道,微调很少一次就成功,要调参数、要换数据、要反复试,光实验成本可能就十几万出去了。
关键是,花了这么多钱,效果还不一定好。
很多团队第一次做微调,准备了几千条数据,就敢全量微调,结果出来的模型啥也不会,还不如原来的开源模型。为什么?因为数据量太少了,全量微调直接把原来模型的能力给破坏了,也就是大家常说的"灾难性遗忘"。
二、LoRA到底是个什么东西?
简单说,LoRA就是不全量改模型参数,只在模型旁边加一点点小的可训练参数,原来的大模型参数不动。
这么做的好处是什么?
- 成本极低:原来全量微调要4张A100,用LoRA一张消费级显卡就能跑
- 速度极快:原来要跑3天,LoRA可能几个小时就跑完了
- 不会破坏原模型能力:原来大模型会的东西还在,只是加了你想要的那点能力
- 部署方便:LoRA的权重就几十MB,原来的基础模型不动,换不同的LoRA权重就能切换不同的功能
现在工业界做领域微调,基本都是用LoRA,很少有人上来就全量微调了。全量微调那是大厂有几万张卡、几千万条数据才玩得起的东西,中小团队真没必要凑这个热闹。
三、什么场景该用微调,什么场景该用RAG?
很多人分不清什么时候该微调,什么时候该用RAG,上来就微调,其实很多场景根本不需要。
用RAG就能解决的问题:
- 你的知识经常更新(比如产品参数、价格、最新政策)
- 你需要让大模型知道最新的信息
- 你需要答案有准确的来源,不能胡说八道
这种场景根本不用微调,做RAG就行,把资料塞给大模型,让它基于资料回答,简单又便宜。
真的需要微调的场景:
- 你要改大模型的输出风格(比如要它像某个专家说话)
- 你要改它的思考方式(比如要它按照特定的流程做判断)
- 你的任务是非常固定的领域任务,RAG怎么调都效果不好
就算真要微调,也先用LoRA试,别上来就全量。LoRA效果不好,再考虑要不要上全量。
写在最后
大模型微调不是什么高深的技术,现在工具链已经很成熟了,LoRA、QLoRA这些方法,一个工程师几天就能把整个流程跑通。
但越是成熟的东西,越容易让人产生错觉:觉得微调是万能的,只要微调了,什么问题都能解决。实际上不是的,大部分业务场景,RAG就够了,真的需要微调的时候,用LoRA也就够了。
做工程的核心是性价比,能用便宜方法解决的问题,就别花冤枉钱上重方案。
浙公网安备 33010602011771号