从零训练一个大模型代价高昂,多数人其实只是在已有模型上做小幅调整。本文解释预训练模型学到的通用能力为何能迁移到新任务,并介绍冻结层、小学习率微调等常见做法的取舍与风险。
核心要点
- 预训练模型已学会通用特征,可以直接作为新任务的起点。
- 数据量小时常冻结底层,只训练新加的输出层或分类头。
- 微调通常用很小的学习率,避免破坏模型原有的通用能力。
通用能力可以搬家
学会骑自行车的人学电动车会快很多,读过大量中文的人学古文也比外国人省力。模型同样如此:在海量数据上训练出来的模型已经掌握了大量通用能力——识别边缘、理解语法、捕捉常见模式,这些能力往往能直接搬到新任务上,不必从头学起。
这样做的好处非常实际。从零训练一个大模型需要海量数据和昂贵算力,多数团队负担不起;而在现成模型的基础上做调整,可能只需要几千条标注、一张消费级显卡就能跑起来。这也解释了为什么开源预训练模型的生态会如此繁荣。
冻结还是全调
迁移有几种力度。最轻的是把预训练模型当作特征提取器:固定住它的全部参数,只在后面接一个新的小模块,用新数据训练这个模块。数据量少、或者新任务和原任务很像时,这种做法最稳妥,因为可调整的参数少,几乎不存在过拟合的风险。
数据多一些、任务差别大一些时,可以解冻部分层一起训练。通常底层保持不变,只让靠近输出的几层跟着调——底层学的是边缘、词形这类通用特征,顶层学的是更贴近具体任务的抽象。解冻多少层,本质是在保留通用能力和适应新任务之间找平衡。
微调的风险
微调最容易犯的错是学习率太大。预训练模型的参数处在一个精心收敛的状态,用训练新模型时的较大学习率去更新,很可能几步之内就破坏原有能力,表现为模型在原有任务上明明会做的事突然不会了。因此微调通常用很小的学习率慢慢调整。
另一个风险是灾难性遗忘:模型过度适配新数据后,把预训练阶段学到的通用能力丢掉了。缓解办法包括保留一部分原始数据混合训练、只更新部分参数、或者在参数变化幅度上加约束。微调完成后,务必在与新任务无关的旧任务上抽查一遍,确认能力没有退化。
常见问题
数据很少时还能微调吗?
可以,而且往往比从零训练好得多,这正是迁移学习的主要价值。数据极少时建议只训练新加的输出层,其余参数冻结,并配合较强的数据增强。也可以考虑只调整少量额外参数的方法,用极小的代价让大模型适配新场景。
本文为 AI 科普内容,仅用于知识普及,不构成任何技术选型、投资或职业决策建议。