LorRA变体

wen IT资讯 23

本文目录导读:

LorRA变体

  1. LoRA 的核心缺陷(变体试图解决的问题)
  2. 主要 LoRA 变体分类与详解
  3. 总结与选择建议

这是一份关于 LoRA(Low-Rank Adaptation)变体 的全面梳理。

LoRA 通过将权重更新矩阵分解为低秩矩阵(A 和 B)的乘积,显著降低了微调大语言模型(LLM)和扩散模型(如 Stable Diffusion)所需的参数量和显存开销,基于这一核心思想,学术界和工业界衍生出了大量变体,旨在解决 LoRA 在不同场景下的局限性。


LoRA 的核心缺陷(变体试图解决的问题)

  1. 容量与效率的权衡:单一低秩矩阵表达能力有限,而单纯增加秩(Rank)又会导致参数量线性增长。
  2. 收敛速度:某些任务中 LoRA 收敛比全参数微调慢。
  3. 选择困难:如何选择最优的秩(Rank)和哪些权重矩阵(Attention Q/K/V/O)进行适配?
  4. 推理延迟:多 LoRA 切换场景下,如何减少计算开销?
  5. 超出分布:LoRA 在处理全新任务(而非相似任务)时可能表现不佳。

主要 LoRA 变体分类与详解

我将它们分为几大类,便于理解:

量化与内存优化类(旨在降低显存占用)

  • QLoRA (Quantized LoRA)

    • 核心:将预训练模型权重量化为 4-bit(NormalFloat4),冻结后在其上添加低秩适配器,同时引入双重量化(Double Quantization)和分页优化器(Paged Optimizers)。
    • 优势目前最主流的微调范式,可以在单个 24GB 显存的 GPU 上微调 65B 甚至 130B 的模型,且性能几乎无损。
    • 适用:任何显存受限的场景。
  • LoRA-FA (LoRA with Frozen-A_ matrix)

    • 核心:只更新降维矩阵(A 或 B)中的一半,冻结另一半,这样可学习的参数比标准 LoRA 更少。
    • 优势:进一步减少训练时的显存和通信开销。
    • 理论:前向传播的秩不会变化,但反向传播梯度计算更省资源。

动态自适应与结构搜索类(旨在提升表征能力)

  • AdaLoRA (Adaptive Low-Rank Adaptation)

    • 核心:不再对所有权重矩阵使用统一的秩,而是通过设置重要性权重参数,动态调整不同层的秩,在训练过程中,某些层可能会被剪枝到接近零的秩,从而自动保留重要的参数。
    • 优势:比标准 LoRA 性能更好,训练更高效,它解决了“哪些层更重要”的问题。
  • DyLoRA (Dynamic Low-Rank Adaptation)

    • 核心:在训练阶段对不同的秩进行采样训练,而不是固定选择一个秩,训练完成后,用户可以选择一个秩范围(如 1-8),无需重训。
    • 优势解决了 LoRA 对秩(Rank)选择的敏感性,允许在推理时根据精度要求灵活调整秩的大小。
  • SoRA (Sparse LoRA)

    • 核心:在低秩矩阵的中间引入一个可学习的门控向量(gating vector),通过 L1 正则化使其稀疏化,训练后,许多门控值会变为零。
    • 优势:实现真正的参数稀疏化,相比 AdaLoRA 的结构剪枝,SoRA 是元素级别的剪枝,压缩率更高。

多 LoRA 融合与组合类(旨在提升推理效率与可扩展性)

  • LoRAHub

    • 核心:多个独立训练好的 LoRA 模块,通过一个可学习的组合器(类似元学习)进行加权融合。
    • 优势:不需要访问原始训练数据即可实现新任务的零样本或小样本泛化,类似于“LoRA 的超级英雄联盟”。
  • MoRA (Mixture-of-Rank-1 Adapters)

    • 核心:每个适配器是一个特殊的秩-1 结构,但通过混合多个这样的结构(类似 Mixture of Experts, MoE)来增加容量,且不显著增加整体参数量。
    • 优势:在参数量相同的情况下,表现优于标准 LoRA,推理速度也较快(因为每次只激活部分专家)。
  • LoRA-Switch / Multi-LoRA Serving

    • 核心:针对推理场景,当需要切换不同任务的 LoRA 时,不重新加载整个模型,而是将多个 LoRA 的矩阵乘法结果合并,然后一次性计算。
    • 优势:极大降低了多用户、多任务场景下的推理延迟和显存占用(显存基本与单个 LoRA 相同)。

扩展至特定架构或任务类

  • DoRA (Weight-Decomposed Low-Rank Adaptation)

    • 核心:将预训练权重分解为幅度(Magnitude)方向(Direction),LoRA 只学习方向的更新(即低秩矩阵),而将幅度作为可学习向量单独优化。
    • 优势:更接近全参数微调的学习模式(因为权重更新本质上就是幅度和方向的改变),在多项 NLP 任务中,DoRA 的性能显著优于标准 LoRA(在相同秩下)。
    • 注意:这是目前(截至 2024 年中)被认为最有效的 LoRA 变体之一。
  • LoRA+

    • 核心:针对 LoRA 收敛慢的问题,提出了给低秩矩阵 A 和 B 使用不同的学习率,B 的学习率比 A 大得多(3-10 倍)。
    • 优势:理论上证明并实践验证了能加快收敛速度
  • PiSSA (Principal Singular Vectors and Singular Values Adaptation)

    • 核心:不随机初始化 LoRA 的 A 和 B 矩阵,而是对原始权重矩阵进行奇异值分解(SVD),将主奇异值及其对应的左右奇异向量提取出来初始化 LoRA。
    • 优势初始化质量极高,训练开始时,LoRA 就已经在逼近原模型的行为,这导致收敛极快,且最终性能普遍优于标准 LoRA,甚至有些场景超越全参数微调。
  • Delta-LoRA

    • 核心:不仅更新低秩矩阵,还更新冻结的预训练权重(通过梯度累积或低秩近似),它认为 LoRA 的潜在空间应该与模型的残差空间相互作用。

面向特定应用:扩散模型(Stable Diffusion)

  • LyCORIS (LoRA and other Kronecker-based/adapters)
    • 核心:一个框架,包含多种变体,如 LoHa (Hadamard Product)LoKr (Kronecker Product)
    • 区别:标准 LoRA 是矩阵乘法(外积求和);LoHa 是逐元素乘积(更密集的交互);LoKr 是克罗内克积(更擅长捕捉全局结构)。
    • 优势:在图像生成任务中,这些变体往往比标准 LoRA 能捕捉更丰富的视觉风格和细节

总结与选择建议

变体名称 核心思想 主要优势 适用场景
QLoRA 4-bit 量化 + LoRA 降低显存 任何显存受限的 LLM 微调
DoRA 分离幅度与方向 性能最强(目前主流) 追求极致的 NLP 微调效果
PiSSA SVD 初始化 收敛极快 需要快速迭代或训练初期表现
AdaLoRA 动态调整层秩 自动超参搜索 不想手动调 Rank,追求最优结构
LoRA+ 不同学习率 加速收敛 所有 LoRA 训练的基础优化
LoRE (Kronecker) 克罗内克积 增强表达力 图像生成(Stable Diffusion)

未来趋势

  • 多模态化:将 LoRA 变体用于视觉-语言模型(如 LLaVA)。
  • 正交化:研究如何让多个 LoRA 模块之间的更新方向更加正交,以减少干扰。
  • 硬件协同设计:专门为 GPU/TPU 优化的低秩矩阵乘法(利用 Tensor Core 的稀疏性)。

希望这份梳理对你有帮助!如果你对某个特定变体有深入兴趣,我们可以继续探讨。

上一篇串行适配器

下一篇Compacter

抱歉,评论功能暂时关闭!