全微调(FT)通常用于针对特定的下游任务定制通用预训练模型。为了降低训练成本,我们引入了参数高效微调(PEFT)方法,以使用最少的参数微调预训练模型。其中,低阶适应(LoRA)及其变体因避免了额外的推理成本而备受欢迎然而,这些方法与全微调之间仍然存在准确性差距。
NVIDIA 中国台湾研究院与NVIDIA 学习和感知研究小组共同开发了权重-分解低阶适应 (DoRA),可作为 LoRA 的默认替代方案。DoRA 既能提高 LoRA 的学习能力,又能提高稳定性,且不会产生任何额外的推理开销。
DoRA 在各种大型语言模型 (LLM) 和视觉语言模型 (VLM) 任务中的表现始终优于 LoRA,例如 common-sense 推理 (+3.7/+1.0 在 Llama 7B/13B 上,+2.9 在 Llama 2 7B 上,和 +4.4 在 Llama 3 8B 上)、Multi-Turn (MT) 基准测试 (+0.4/+0.3 在 Llama/Llama 2 7B 上),图像/视频文本理解 (+0.9/+1.9 在 VL-BART 上) 和视觉指令调整 (+0.6 在 LLaVA 7B 上)。DoRA 还在其他任务中得到了演示,包括压缩感知 LLM 和文本转图像生成。这项工作已作为口头论文被 ICML 2024 接受 (1.5% 接受率)。
DoRA 的工作原理是什么?
DoRA 首先将预训练权重分解为其 大小 和 方向 分量,然后对两者进行微调。由于方向分量在参数方面的尺寸较大,DoRA 利用 LoRA 进行方向适应,以实现高效的微调,如图 2 所示。最后,在推理前可以将 DoRA 与预训练权重合并,从而避免引入额外的延迟。
DoRA 如何影响模型训练
为研究 DoRA 对模型训练的影响,图 3 显示了 DoRA 权重 W` 与预训练权重 W0 之间的大小和方向差异 (∆D, ∆M) (以 FT 和 LoRA 形式呈现)。根据 DoRA 和 FT 的 (∆D, ∆M) 的回归线,DoRA 和 FT 具有明显的负斜率特征,而 LoRA 显示的却是清晰的正相关性。不同的标记表示不同训练步骤的矩阵,不同的颜色表示每层的矩阵。
DoRA 展示了在大小或反向变化相对较小的情况下仅进行重大方向调整的能力,同时显示了更接近于 FT 的学习模式,这表明其优于 LoRA 的学习能力。有关更多定性和数学分析,请参阅 DoRA:权重分解低阶适应。
性能
DoRA 在各种模型 (包括 LLM、VLM、压缩 LLM 和扩散模型) 中的性能优于 LoRA。
大型语言模型
就整体普通推理能力而言,DoRA 的表现明显优于 LoRA,如表 1 所示。此外,DoRA 还可以提供比 LoRA 更好的对话和指令遵循功能,如表 2 中的 MT 基准测试所示。
Model | # Params (%) | BoolQ | PIQA | SIQA | HellaSwag | WinoGrande | ARC-e | ARC-c | OBQA | Avg. |
ChatGPT-3.5 | – | 73.1 | 85.4 | 68.5 | 78.5 | 66.1 | 89.8 | 79.9 | 74.8 | 77.0 |
Llama-LoRA | 0.83 | 68.9 | 80.7 | 77.4 | 78.1 | 78.8 | 77.8 | 61.3 | 74.8 | 74.7 |
Llama-DoRA (Ours) | 0.84 | 69.7 | 83.4 | 78.6 | 87.2 | 81.0 | 81.9 | 66.2 | 79.2 | 78.4 |
Llama 2-LoRA | 0.83 | 69.8 | 79.9 | 79.5 | 83.6 | 82.6 | 79.8 | 64.7 | 81.0 | 77.6 |
Llama 2-DoRA (Ours) | 0.84 | 72.0 | 83.1 | 79.9 | 89.1 | 83.0 | 84.5 | 71.0 | 81.2 | 80.5 |
Llama 3-LoRA | 0.83 | 70.8 | 85.2 | 79.9 | 91.7 | 84.3 | 84.2 | 71.2 | 79.0 | 80.8 |
Llama 3-DoRA (Ours) | 0.84 | 74.6 | 89.3 | 79.9 | 95.5 | 85.6 | 90.5 | 80.4 | 85.8 | 85.2 |
表 1.LoRA 和 DoRA 在普通推理基准测试中的比较
Model | # Params (%) | Score |
Llama-LoRA | 2.31 | 5.1 |
Llama-DoRA (Ours) | 2.33 | 5.5 |
Llama-VeRA | 0.02 | 4.3 |
Llama-DVoRA (Ours) | 0.04 | 5.0 |
Llama 2-LoRA | 2.31 | 5.7 |
Llama 2-DoRA (Ours) | 2.33 | 6.0 |
Llama 2-VeRA | 0.02 | 5.5 |
Llama 2-DVoRA (Ours) | 0.04 | 6.0 |
表 2.MT-Bench 上 LoRA 和 DoRA 的比较(按 GPT-4 评分)。DVoRA 是通过在 VeRA 上集成 DoRA 获得的。
视觉语言模型
除了纯自然语言处理(NLP)之外,DoRA 在图像文本理解(表 3)、视频文本理解(表 4)和视觉指令调整(表 5)能力方面也优于 LoRA。
Model | # Params (%) | VQAv2 | GQA | NVLR2 | COCO Cap. | Avg. |
VLBART-LoRA | 5.93 | 65.2 | 53.6 | 71.9 | 115.3 | 76.5 |
VLBART-DoRA (Ours) | 5.96 | 65.8 | 54.7 | 73.1 | 115.9 | 77.4 |
表 3.图像文本理解任务中 LoRA 和 DoRA 的比较
Model | # Params (%) | TVQA | How2QA | TVC | YC2C | Avg. |
VLBART-LoRA | 5.17 | 75.5 | 72.9 | 44.6 | 140.9 | 83.5 |
VLBART-DoRA (Ours) | 5.19 | 76.3 | 74.1 | 45.8 | 145.4 | 85.4 |
表 4.视频文本理解任务中 LoRA 和 DoRA 的比较
Model | # Params (%) | VQAv2 | GQA | Vis-Wiz | SQA | VQAT | POPE | MMBench | Avg. |
LLaVA-LoRA | 4.61 | 79.1 | 62.9 | 47.8 | 68.4 | 58.2 | 86.4 | 66.1 | 66.9 |
LLaVA-DoRA (Ours) | 4.63 | 78.6 | 62.9 | 52.2 | 69.9 | 57.0 | 87.2 | 66.1 | 67.6 |
压缩感知 LLMs
为了进一步降低 PEFT 微调的显存需求,QLoRA 建议将预训练模型量化为 4 位,并在冻结的低位主干上微调 LoRA。借助 DoRA 缩小 LoRA 和 FT 之间差距,自然还可以探索 DoRA 是否可以在 QLoRA 框架中增强 LoRA 的准确性。
最近,我们的团队与Answer.AI的几位研究人员合作开展了 QDoRA 项目,该项目将 QLoRA 中的 LoRA 组件替换为 DoRA。结果表明,在 Llama 2 和 Llama 3 上,QDoRA 的性能分别优于 FT 和 QLoRA(图 4)。
文本到图像生成
使用 Hugging Face 开发的高级训练脚本,还可以在 DreamBooth 上应用 DoRA,以实现文本到图像的个性化对具有挑战性的 3d_icon 和 lego_set 数据集的测试结果表明,在相同的训练配置下,DoRA 可以获得明显优于 LoRA 的个性化结果(图 5)
总结
DoRA 是一种通常高效且有效的训练技术,很快将得到各种 NVIDIA 服务、平台和框架的支持。DoRA 是一种与 LoRA 及其变体兼容的微调方法,并且显示出与 FT 学习行为更加相似。DoRA 在各种微调任务和模型架构中的表现始终优于 LoRA。此外,DoRA 可以被视为 LoRA 的无成本替代产品,因为其分解的大小和方向组件可以在训练后重新合并到预训练权重中,确保不会产生额外的推理开销。我们希望 DoRA 能够帮助 NVIDIA 有效地调整各种基础模型,以适应NVIDIA Metropolis、NVIDIA NeMo、NVIDIA NIM、NVIDIA TensorRT、音视频、机器人、生成式 AI 等领域的各种应用。
查看以下资源以了解详情: