DenseLoRA: Dense Low-Rank Adaptation of Large Language Models¶
会议: ACL 2025
arXiv: 2505.23808
代码: https://github.com/mulin-ahu/DenseLoRA
领域: 模型压缩
关键词: 参数高效微调, LoRA, 低秩适配, 表示微调, 参数冗余
一句话总结¶
本文提出DenseLoRA,通过引入跨层共享的Encoder-Decoder进行隐藏表示的压缩与重建,用一个稠密的小型低秩矩阵替代LoRA中两个冗余的低秩矩阵来进行适配,仅用0.01%可训练参数在LLaMA3-8B上达到83.8%准确率,超越了LoRA用0.70%参数达到的80.8%。
研究背景与动机¶
LoRA通过低秩矩阵分解(\(\Delta W = BA\))大幅减少了可训练参数量,是目前最流行的参数高效微调方法。但研究发现LoRA低秩矩阵中存在大量冗余权重:许多参数在训练过程中增量接近零,并未对适配做出有意义的贡献。
现有LoRA变体(如AdaLoRA、DoRA等)试图通过选择性地识别重要权重来解决冗余问题,但仍然受限于传统的双低秩矩阵框架。本文提出一个根本性的问题:能否开发一种利用更稠密结构、用更少参数实现更好性能的低秩适配方法?
核心idea是:不仅修改权重矩阵,还对隐藏表示本身进行精炼。受表示微调(Representation Fine-tuning)的启发,将低秩适配与表示压缩相结合。
方法详解¶
整体框架¶
DenseLoRA的适配过程分为三阶段流水线:(1) Encoder压缩隐藏表示;(2) 稠密低秩矩阵M对压缩表示进行适配;(3) Decoder将适配后的表示重建回原始维度。关键创新点在于Encoder-Decoder是跨所有适配层共享的,而每层拥有独立的适配矩阵M。
关键设计¶
-
Encoder压缩模块:
- 使用全连接网络 \(W_e \in \mathbb{R}^{r \times k}\) 将隐藏表示 \(h \in \mathbb{R}^k\) 压缩为低维表示 \(h' \in \mathbb{R}^r\)
- 后接激活函数 \(\sigma(\cdot)\)
- 用Kaiming初始化
- 跨所有适配层共享,减少参数冗余
-
稠密低秩适配矩阵:
- 每层使用独立的方阵 \(M \in \mathbb{R}^{r \times r}\) 进行适配
- 与LoRA的 \(B \times A\)(两个矩阵乘积)不同,DenseLoRA使用一个小的稠密方阵
- 虽然是 \(r \times r\) 的小矩阵,但由于共享了Encoder-Decoder的压缩和重建功能,实际学到的是更有效的适配
- Kaiming初始化
-
Decoder重建模块:
- 使用 \(W_d \in \mathbb{R}^{d \times r}\) 将适配后的表示重建回原始维度
- 后接激活函数
- 零初始化(确保初始时不干扰前向传播)
- 与Encoder共享,跨层共享
-
参数量分析:
- LoRA: \(|\Theta| = l \times (d+k) \times r\)(l为适配层数)
- DenseLoRA: \(|\Theta| = (d+k+l \times r) \times r\)
- 实际对比:LLaMA2-7B, r=16时,LoRA需28M参数,DenseLoRA仅需0.9M,30倍压缩
损失函数 / 训练策略¶
整体适配公式:\(\hat{h} = W_0 h + Decoder(M \cdot Encoder(h))\)
使用标准的交叉熵损失进行微调。Encoder用Kaiming初始化,Decoder用零初始化确保训练初始稳定。训练在4×NVIDIA 3090 24GB GPU上完成。
实验关键数据¶
主实验 - 常识推理(LLaMA3-8B)¶
| 方法 | 参数量(%) | BoolQ | PIQA | HellaS. | WinoG. | ARC-e | ARC-c | OBQA | Avg. |
|---|---|---|---|---|---|---|---|---|---|
| LoRA | 0.70 | 70.8 | 85.2 | 91.7 | 84.3 | 84.2 | 71.2 | 79.0 | 80.8 |
| VeRA | 0.01 | 62.2 | 81.6 | 54.5 | 6.18 | 84.4 | 67.2 | 64.6 | 67.7 |
| LoKr | 0.01 | 65.1 | 81.6 | 92.0 | 82.1 | 89.2 | 76.7 | 80.9 | 80.9 |
| DoRA | 0.71 | 74.6 | 89.3 | 95.5 | 85.6 | 90.5 | 80.4 | 85.8 | 85.2 |
| DenseLoRA(r=16) | 0.01 | 72.3 | 87.5 | 93.5 | 85.2 | 89.8 | 78.2 | 84.0 | 83.8 |
| DenseLoRA(r=32) | 0.02 | 74.3 | 88.0 | 94.5 | 86.0 | 89.7 | 78.7 | 85.6 | 84.6 |
| DenseLoRA(r=64) | 0.06 | 74.1 | 88.9 | 95.0 | 87.0 | 90.0 | 79.2 | 85.6 | 85.0 |
数学推理(LLaMA3-8B)¶
| 方法 | 参数量(%) | GSM8K | AQUA | AddSub | SVAMP | Avg. |
|---|---|---|---|---|---|---|
| LoRA | 0.70 | 47.1 | 18.1 | 90.6 | 71.9 | 56.9 |
| DenseLoRA(r=32) | 0.02 | 45.5 | 20.5 | 73.5 | 92.1 | 57.5 |
| DenseLoRA(r=64) | 0.06 | 47.2 | 19.7 | 92.4 | 74.5 | 58.5 |
消融实验¶
| 配置 | 关键指标(Avg.) | 说明 |
|---|---|---|
| DenseLoRA仅QKV模块 | 82.3 | MHA层适配 |
| DenseLoRA仅UD模块 | 83.8 | MLP层适配效果更好 |
| DenseLoRA QKVUD | 84.6 | 最佳配置 |
| LoRA QKVUD + DenseLoRA无 | 80.8 | 传统LoRA |
| 10%训练数据 DenseLoRA | 81.1 | 超过LoRA 100%数据(80.8) |
关键发现¶
- DenseLoRA用1/70的参数量(0.01% vs 0.70%)就超越了LoRA 3个百分点(83.8% vs 80.8%)
- r=64时DenseLoRA达到85.0%,接近DoRA(85.2%)但参数量仅为其1/6
- 在低资源场景下优势更明显:10%数据训练的DenseLoRA(81.1%)就超过了100%数据训练的LoRA(80.8%)
- MLP层的适配比注意力层更重要:仅适配UD模块就能达到83.8%
- 数学推理任务上同样有效:r=64时58.5% vs LoRA的56.9%
亮点与洞察¶
- 将表示微调与低秩适配结合的思路很有创意,跳出了传统的"优化AB矩阵"思维框架
- Encoder-Decoder跨层共享的设计非常巧妙:既减少了参数量,又让压缩表示保持一致性
- 参数效率的提升是惊人的:30-70倍的参数压缩且性能更好
- 在低资源场景下(10%数据)仍然表现出色,说明DenseLoRA的泛化能力更强
- MLP层适配比注意力层更重要的发现与直觉不完全一致,值得进一步研究
局限与展望¶
- 实验主要集中在常识推理和数学推理,缺少NLG任务(如摘要、翻译等)的验证
- 跨层共享Encoder-Decoder可能在层间差异大的深层模型上不够灵活
- Decoder的零初始化意味着训练初期适配信号很弱,可能影响收敛速度
- 只在7B/8B模型上验证,缺少对更大模型(70B+)的实验
- 研究idea:可以探索自适应的每层rank分配,而非所有层用相同的r
- 推理时DenseLoRA无法像LoRA那样合并到原始权重矩阵(因为有Encoder/Decoder和激活函数),会引入额外推理延迟,这是一个重要的实际限制
相关工作与启发¶
- 与ReFT(Representation Fine-tuning)家族相关,但DenseLoRA将表示微调和低秩适配深度集成
- LoKr使用Kronecker积分解但计算成本更高,DenseLoRA的计算成本与LoRA相当
- VeRA也使用共享矩阵但性能差距大(67.7% vs 83.8%),说明DenseLoRA的三阶段设计更有效
- NoRA采用嵌套结构和SVD,思路不同但目标相似
评分¶
- 新颖性: ⭐⭐⭐⭐ 将表示微调与低秩适配结合的思路新颖,但Encoder-Decoder架构本身不新
- 实验充分度: ⭐⭐⭐⭐ 消融实验详尽,多种rank配置和模块组合,但任务类型和模型规模覆盖不够广
- 写作质量: ⭐⭐⭐⭐ 方法描述清晰,参数分析到位,但可以更突出推理延迟的讨论
- 价值: ⭐⭐⭐⭐ 参数效率的显著提升有很大的实际价值,但推理延迟问题限制了部分应用场景
相关论文¶
- [ACL 2025] TableLoRA: Low-rank Adaptation on Table Structure Understanding for Large Language Models
- [ACL 2025] TeamLoRA: Boosting Low-Rank Adaptation with Expert Collaboration and Competition
- [NeurIPS 2025] Gated Integration of Low-Rank Adaptation for Continual Learning of Large Language Models
- [NeurIPS 2025] Data Efficient Adaptation in Large Language Models via Continuous Low-Rank Fine-Tuning
- [NeurIPS 2025] C-LoRA: Contextual Low-Rank Adaptation for Uncertainty Estimation in Large Language Models