模型微调是指利用特定领域的数据集对已预训练的大模型进一步训练,以提升其在特定任务的性能。预训练模型通常在大规模的无标签数据集上训练,掌握语言的统计特性和基础知识。微调模型则是在此基础上,通过输入特定领域的数据集、使模型学习该领域的知识,从而优化其在特定任务中的表现。
微调方法:
1.LoRA(Low-Rank Adaptation)
LoRA通过在模型的权重矩阵中引入低秩矩阵,实现模型行为的微调,而无需对整个模型结构进行大幅度修改。这种方法在不显著增加计算负担的前提下,能够有效的微调模型。LoRA的操作流程,
(1)确定微调目标权重矩阵。
(2)引入两个低秩矩阵A和B。
(3)计算低秩更新。
(4)结合原始权重。
2.适配器调整(Adapter tuning)
适配器调整是在模型的每个层或选定层之间插入小型神经网络模块,称为“适配器”。这些适配器是可训练的,而原始模型的参数保持不变。
3.前缀调整(Prefix Tuning)
前缀调整是在预训练的语言模型输入序列前添加可训练、任务特定的前缀,从而实现针对不同任务的微调。这种方法不需要调整模型的所有权重,而是通过在输入中添加前缀来调整模型的行为。
4.提示调整(Prompt Tuning)
提示调整是在预训练语言模型输入中引入可学习嵌入向量作为提示的微调方法。这些可训练的提示向量在训练过程中更新,以指导模型输出更适合特定任务的响应。
5.P-Tuning
是指使用一个可训练的LSTM模型来动态的生成虚拟标记嵌入,允许根据输入数据的不同生成不同的嵌入,提供更高的灵活性和适应性。
6.P-Tuning v2
是指在多层插入连续提示,增加可学习参数数量,对模型预测产生更直接影响。
微调的应用
微调可以通过全量调整所有参数以充分使用新任务,或采用参数高效微调技术仅优化部分参数以实现快速且低成本的迁移学习。例如:LoRA和Adapter Tuning适用于计算资源有限的情况,而P-Tuning v2 使用需要细粒度控制的复杂任务。通过选择合适的微调策略,可以使大型预训练模型更好的适应特定的任务和应用场景,从而实现高效且有效的模型性能。