Fine-tuning大模型微调指的是在预训练模型的基础上,使用特定的数据对模型进行再训练,以适应特定应用场景的需求。
常见的微调方法分为全量微调、参数高效微调以及量化与混合微调这三类。
全量微调
全量微调是直接对预训练模型中的所有参数进行再训练,使模型适应特定任务或者领域的需求,这种方式可以获得最佳的任务性能,不过缺点也很明显,因为是对所有参数再次训练,所以计算和存储的开销极大。
参数高效微调(Parameter-Efficient Fine-tuning,PEFT)
参数高效微调只更新少量的参数,从而大幅度降低训练和存储的成本。
有以下6种方法:
-
Adapter Tuning
是在Transformer`每层中插入小模块,只训练Adapter。 -
LoRA(Low Rank Adaptation)为每层添加低秩分解矩阵,然后只对这些 矩阵进行训练,是目前最流行的一种PEFT方法。 -
Prefix Tuning在输入前加入可训练的prefix tokens,模型本体权重完全冻结。 -
Prompt Tuning只训练用于任务提示的嵌入向量,不改变模型的内部结构,以提示的形式引导模型的行为。 -
P-Tuning通过可学习的伪提示目标来优化。 -
BitFit只更新bias参数,训练参数占比通常小于0.1%。
量化与混合微调
QLoRA结合了4-bit量化、LoRA、双量化和分页优化器,利用低精度存储与低秩适配,单卡就能对百亿级模型进行微调。
IR -QLoRA在量化阶段引入信息保留机制与弹性联结,进一步减少了量化带来的性能损耗。