大模型参数量庞大,全参数微调(Full Fine-Tuning)在计算和存储上成本极高,因此研究者提出了多种高效微调(Parameter-Efficient Fine-Tuning, PEFT)方法,在仅更新少量参数的前提下实现良好适配效果。这些方法大致可分为三类:低秩适配、前缀/提示调优、插入式模块,以及近年来兴起的基于偏好的直接优化方法。
全参数微调(Full Fine-Tuning)是最直接的方式,即在目标任务数据上对所有模型参数进行端到端训练。它通常能获得最佳性能,但需要大量 GPU 显存(用于存储梯度和优化器状态),且每个任务都会产生一个完整大小的模型副本,部署和存储成本极高。因此,主要适用于资源充足、追求极致性能的场景。
LoRA(Low-Rank Adaptation)是目前最主流的高效微调方法。其核心思想是:权重更新矩阵具有低秩特性,因此可将其分解为两个小矩阵的乘积。训练时冻结原始模型参数,仅学习这两个低秩矩阵;推理时将增量与原权重合并,实现零延迟。LoRA 通常作用于注意力机制中的 Query、Key、Value 投影层,可将可训练参数减少 90% 以上,同时保持接近全微调的性能,广泛应用于多任务适配、社区模型共享等场景。
Prefix Tuning 和 Prompt Tuning 属于“软提示”方法。它们不在输入前添加离散 token,而是在每层或仅输入层注入可学习的连续向量(称为 prefix 或 prompt embeddings)。这些向量作为任务特定的上下文引导模型行为,原始模型参数完全冻结。Prompt Tuning 仅在输入层添加提示,结构更简单;Prefix Tuning 在每一层 Transformer 中都加入前缀,表达能力更强。这类方法特别适合生成任务,但在小模型上效果有限,对大模型(如十亿级以上)更有效。
Adapter 方法在 Transformer 层中插入小型神经网络模块(通常为两层 MLP),位于 FFN 或注意力之后。训练时仅更新 Adapter 参数,主干冻结。虽然引入一定推理延迟(因需额外计算),但其模块化设计便于多任务切换。后续变体如 Parallel Adapter、Compacter 等进一步优化了效率与性能平衡。
QLoRA 是 LoRA 的量化扩展,先将预训练模型权重量化为 4-bit,再在其上应用 LoRA 微调。这使得在单张消费级 GPU 上微调数十亿参数模型成为可能,极大降低了大模型微调门槛,已成为开源社区的事实标准之一。
除了上述基于梯度的微调方法,DPO(Direct Preference Optimization)等新范式绕过了传统 RLHF 中奖励模型和 PPO 的复杂流程。DPO 利用偏好数据直接构造监督目标,通过隐式 KL 约束优化策略,实现更稳定、高效的对齐。虽然严格来说 DPO 属于对齐方法而非传统微调,但它常被用作 SFT 后的替代优化步骤,且可与 LoRA 结合(如 DPO+LoRA),形成轻量高效的全流程。
在实际应用中,选择哪种微调方法取决于任务复杂度、数据规模、硬件资源和部署需求。例如,资源受限时优先 QLoRA;多任务共享底座时选 LoRA;追求极致性能且资源充足时仍可考虑全微调。当前工业界趋势是:以 LoRA 或 QLoRA 为主力,结合高质量 SFT 数据和 DPO 对齐,构建高性价比的大模型适配 pipeline。