LoRA: Low-Rank Adaptation of Large Language Models

下载 PDF

LoRA: Low-Rank Adaptation of Large Language Models - 中文验证版

英文原文卡片:lora_2021.md

状态:已翻译。

元数据

计算设置

论文明确在实验中使用 NVIDIA Tesla V100 GPU,并在 NVIDIA Quadro RTX8000 上测量 adapter 推理延迟。GPT-3 175B 吞吐量脚注报告了在相同数量的模型并行的权重分片下每 V100 的 token 每秒数:全量微调达到 32.5 tokens/s/V100,而 LoRA 达到 43.1 tokens/s/V100。这对一个内存和模型并行主导适配的模型给出了设备级别的吞吐量。

最大的设置是 GPT-3 175B。使用 Adam 的全量微调约需 1.2 TB 训练显存,而 LoRA 将其降至 350 GB。当仅适配查询和值投影且 rank r = 4 时,检查点存储从 350 GB 变为 35 MB。对于延迟,表 1 在 RTX8000 上测量 GPT-2 medium;在 batch size 1 和序列长度 128 下,Fine-Tune/LoRA 为 19.8 ms,而 adapter 基线升至 23.9 ms 和 25.8 ms。

瓶颈

瓶颈是适配。全量微调为每个下游任务更新所有权重,重复完整模型的优化器状态和检查点占用。对于 GPT-3 175B,这意味着为每个任务将 175B 参数视为可训练的。Adam 状态使硬件障碍类似于预训练时的内存占用,而存储许多任务专用的 350 GB 检查点造成了严重的 IO 和存储瓶颈。

现有的参数高效方法可能引入推理延迟。Adapter 层在已有层之间插入模块,这些模块与基础路径串行处理。这在在线推理中最为明显,此时 batch size 较小;在较大 batch 或序列长度下,硬件并行性隐藏了更多开销。

方法适配

LoRA 适配的是权重更新结构,而非插入一个新的推理模块。对于预训练的权重矩阵 W0,它将适配表示为 W0 + BA,其中 B 为 d × r,A 为 r × k,且 r 远小于原始矩阵维度。在训练期间,W0 冻结,仅有 A 和 B 接收梯度更新。论文主要适配的是注意力权重,尤其是 Wq 和 Wv。

这在三个方面是计算感知的。冻结大多数权重移除了基础模型的优化器状态和梯度计算。低秩矩阵使任务切换变为在 MB 级别而非数百 GB 级别的 IO 操作:100 个经过适配的 GPT-3 模型在使用 LoRA 时需要约 354 GB 加上 350 GB 基础模型,而不是全量检查点约 35 TB。在部署时,BA 可合并进 W0,保持与全量微调模型相同的密集 matmul 路径。

批处理权衡源于这种合并。如果一个 batch 内不同请求需要不同的 LoRA 模块吸收进 W,每个任务需要一个不同的有效权重。论文指出,在这种合并、无延迟的形式下,批处理不同任务并不简单。

证据

摘要总结了最大规模的结果:与 GPT-3 175B 使用 Adam 全量微调相比,可训练参数量减少了 10,000 倍,GPU 内存减少了 3 倍。详细数字为:训练显存从 1.2 TB 降至 350 GB,r = 4 的 Wq/Wv 检查点从 350 GB 降至 35 MB。V100 吞吐量注释报告全量微调为 32.5 tokens/s/V100,而 LoRA 为 43.1 tokens/s/V100。

RTX8000 延迟表显示了为什么合并后的权重很重要。在 batch size 32、序列长度 512 下,Fine-Tune/LoRA 为 1449.4 ms,而 AdapterL 和 AdapterH 仅慢了几个百分点。在 batch size 1、序列长度 128 下,Fine-Tune/LoRA 为 19.8 ms,AdapterL 为 23.9 ms,AdapterH 为 25.8 ms,分别对应 +20.7% 和 +30.3%。更大的 batch 和序列长度通过更好地利用硬件并行性来缓解延迟。

质量证据支持了这一权衡。RoBERTa-base LoRA 使用 0.3M 可训练参数并报告平均 GLUE 为 87.2,高于所列的 86.4 全量微调基线。RoBERTa-large LoRA 使用 0.8M 可训练参数并报告 89.0,接近 88.9 的基线。

历史影响

LoRA 使参数高效微调成为一种部署原语。其重要的计算贡献不仅仅是低秩作为一个数学先验;而是适配可以合并进已有的密集权重矩阵。这保持了服务路径与优化的 Transformer 推理内核兼容,并避免了 adapter 使用的额外串行模块。

它还改变了模型专用化的存储经济学:一个大的基础模型可以保持常驻,而大量任务更新小到足以廉价地交换或归档。LoRA 的计算结构将训练内存、检查点 IO 和延迟结合在一个适配方法中。

局限

论文对一个部署限制是明确的:如果 LoRA 权重合并进基础矩阵以消除延迟,则在一次前向中对不同任务的输入进行批处理并不简单。服务多个任务因此需要模块管理、权重交换,或在延迟可容忍的场景下接受未合并的动态模块。该方法在部署时仍然需要基础模型;GPT-3 示例保留 350 GB 预训练模型并添加小的任务增量。

实证研究主要聚焦于 Transformer 的注意力投影。作者将 MLP 层、LayerNorm 层和 bias 的适配留待未来工作。低秩也是一个经验拟合,而非针对每个任务的定理:论文研究了秩不足,发现非常低的秩在其设置中已足够,但最优秩因模型、任务和所适配的权重而异。

链接

  • 计算范式:history/compute_regimes/efficient_edge_inference/README.md
  • 源 PDF 和抽取文本已在上方元数据中列出。
  • 队列状态:read_complete
  • 方法索引:参数高效微调
  • Ledger 更新:计算瓶颈