前言
随着大语言模型(LLM)技术的飞速发展,如何高效地利用预训练模型解决特定领域任务成为业界关注的核心问题。全量微调虽然效果显著,但计算成本高昂;参数高效微调(PEFT)则通过更新少量参数实现快速适配。本文将系统梳理大模型微调的技术分类、核心原理及实践流程。
图 1. 大模型微调技术分类
一、微调分类
1. 按微调参数规模划分
1.1. 全参微调(Full Parameter Fine-Tuning, FPFT)
全参微调是指使用预训练权重作为初始化权重,在特定数据集上继续训练,更新模型中的所有参数。这种方法能够最大程度地适应新任务的数据分布,但需要消耗大量的显存和算力资源,通常仅适用于拥有充足硬件资源的场景。
1.2. 低参微调(Parameter Efficient Fine-Tuning, PEFT)
低参微调旨在用更少的计算资源完成参数的更新。其核心思想是只更新部分参数,或者通过对参数进行某种结构化约束(如稀疏化或低秩近似解)来降低微调的参数量。PEFT 方法在保持预训练模型通用知识的同时,显著降低了训练成本和显存占用,使得在消费级显卡上也能进行大模型微调。
经典的低参微调方法包括: Adapter(谷歌 2019)、LoRA(微软 2021)、QLoRA(微软 2023)、Prefix Tuning(斯坦福 2021)、Prompt Tuning(谷歌 2021)、P-Tuning(清华 2022)、P-Tuning v2(清华 2022)。以下将对上述多种低参微调技术进行详细整理。
1.2.1. Adapter
Adapter 微调方法涉及向预训练模型中添加小型、任务特定的模块(适配器)。这些适配器被插入到原始模型的层之间(通常在 Transformer 的 Feed-Forward 网络之后),并使用任务特定的数据进行训练。原始模型保持冻结状态,使其具有高效性并保留其通用知识,同时适应特定任务。Adapter 的优势在于模块化设计,便于多任务学习时的参数复用。
图 2. Adapter 微调原理
1.2.2. LoRA
LoRA(Low-Rank Adaptation)是一种基于低秩矩阵分解的微调策略。它假设模型权重的变化具有较低的内蕴维度,因此不直接更新所有参数,而是将权重增量分解为两个低秩矩阵 $A$ 和 $B$ 的乘积($ riangle W = BA$)。这样可以显著减少需要训练的参数数量,并保持原始模型结构不变,以较小的成本实现对下游任务的良好适应。LoRA 是目前应用最广泛的 PEFT 方法之一。
图 3. LoRA 微调原理
1.2.3. QLoRA
QLoRA(Quantized Low-Rank Adaptation)是 LoRA 方法的一种变体,特别针对量化场景设计。它在 4-bit 量化基础上结合了低秩矩阵分解,进一步压缩模型大小并降低计算成本。QLoRA 允许在单张消费级 GPU 上微调 65B 甚至更大的模型,极大地降低了大模型微调的门槛。
图 4. QLoRA 微调原理
1.2.4. Prefix Tuning
该方法为预训练语言模型引入一个可学习的'前缀'向量序列,在生成过程中将其与输入文本拼接作为模型的额外输入。模型只需优化这个固定长度的前缀向量,就能引导模型在不同的下游任务上产生合适的结果,避免了对模型主体参数的大规模更新。Prefix Tuning 保留了离散提示词的可解释性,同时具备连续提示词的灵活性。
图 5. Prefix Tuning 微调原理
1.2.5. Prompt Tuning
Prompt Tuning 专注于对提示(prompt)的微调,即将待解决的任务转化为预训练模型熟悉的格式(如同自然语言问答)。这种方法只更新少量被称为'prompt token'的参数,其余大部分参数保持固定。相比人工设计的硬提示词,Prompt Tuning 学习到的软提示词能更好地捕捉任务语义。
图 6. Prompt Tuning 微调原理
1.2.6. P-Tuning
P-Tuning 是 Prompt Tuning 的一种扩展形式,通过将连续的向量(称为'软提示')插入到模型输入中,替代手工设计的离散提示词。这种连续的提示向量经过训练后,能够更灵活且有效地指导模型处理各种下游任务,同时大幅减少需要更新的参数量。P-Tuning 引入了重参数化编码器来增强表达能力。
图 7. P-Tuning 微调原理
1.2.7. P-Tuning v2
P-Tuning V2 在 P-Tuning V1 的基础上进行了多项改进:
- :在每一层都加入了 Prompts tokens 作为输入,而不是仅仅加在输入层,这与 Prefix Tuning 的做法相同。这样得到了更多可学习的参数,且更深层结构中的 Prompt 能给模型预测带来更直接的影响。


