第二部分:LLM微调技术详解
第8期 参数高效微调:LoRA与QLoRA技术详解
2.4 参数高效微调:LoRA与QLoRA技术详解
随着大型语言模型规模的不断增长,全参数微调整个模型变得越来越不经济,甚至在消费级硬件上变得不可能。参数高效微调(PEFT, Parameter-Efficient Fine-Tuning)技术应运而生,允许研究人员和开发者在有限资源下高效微调大模型。本文将详细介绍最流行的PEFT技术之一——LoRA(低秩适应)及其改进版本QLoRA。
参数高效微调的必要性
传统全参数微调面临的挑战:
- 计算资源需求高:大模型(如7B+参数)的全参数微调需要多个高端GPU
- 内存消耗巨大:存储梯度、优化器状态等需要数倍于模型大小的内存
- 微调效率低下:大部分参数可能不需要显著调整
- 存储成本高:每个微调任务都需要保存完整的模型权重
- 部署复杂性:多个微调模型的部署和管理复杂
LoRA的基本原理
LoRA(Low-Rank Adaptation)是由微软研究院提出的参数高效微调技术,其核心思想是通过低秩分解减少需要训练的参数数量。
工作原理:
- 冻结预训练模型的原始权重
- 为关键层(通常是注意力层的权重矩阵)添加可训练的低秩适应模块
- 这些模块使用两个低秩矩阵A和B的乘积来模拟完整权重矩阵的更新
- 训练过程中只更新这两个低秩矩阵的参数
- 推理时,将低秩矩阵的乘积与原始权重相加,保持相同的计算图
数学表达:
对于原始权重矩阵W ∈ ℝ^(m×n),LoRA通过以下方式表示权重更新:
W = W₀ + ΔW = W₀ + A·B
其中:
- W₀是预训练权重矩阵
- A ∈ ℝ^(m×r)和B ∈ ℝ^(r×n)是低秩矩阵,r << min(m,n)
- r是秩,控制适应模块的容量和参数数量
LoRA的关键参数
- 秩r:控制低秩矩阵的容量,通常设置为4、8、16或32
- α:缩放因子,通常设置为2r以稳定训练