一个通用大模型什么都能聊几句,但让它在某个专业领域表现得像专家,就需要做微调。微调的原理是:在已经训练好的模型基础上,用少量专业数据继续训练一小段时间。
微调和从头训练的区别很大。从头训练相当于让一个婴儿从零开始学所有东西,需要海量数据和巨额算力。微调则相当于送一个大学毕业生去参加两周的职业培训——他已经会说话了、会阅读了、会逻辑推理了,只需要教会他行业术语和工作流程。
技术上,微调通常只更新模型的一小部分参数,或者使用较小的学习率(比如从头训练学习率的十分之一)。这样做的目的是防止模型“忘记”之前学到的通用知识,这种现象叫灾难性遗忘。如果一个模型先在互联网数据上训练,再用法律文书微调,微调过度的话,它可能就不再理解“猫和狗的区别”这种常识问题了。
参数高效微调是一种更节约的方法。它不修改原模型的任何参数,而是在旁边添加一小块可训练的新参数(比如LoRA方法添加的低秩矩阵)。微调时只更新这块新增参数,原模型保持冻结。最终效果接近全参数微调,但需要训练的参数量只有原来的万分之一。