虽然低秩适应(LoRA)提供了一种强大且高效的微调大型语言模型(LLMs)的方式,但它主要通过低秩更新来修改现有权重矩阵。其他参数高效微调(PEFT)方法,例如适配器调优或前缀调优,以不同的方式干预模型的架构或激活路径。这引发了一个有趣的问题:将LoRA与其他PEFT技术结合使用,能否产生更好的结果,或与单独使用某一种方法相比,提供不同的权衡?
结合这些方法的动机源于一个假设:不同的PEFT技术可能捕获任务适应的互补方面。LoRA侧重于调整现有层内的内在表示,而其他方法可能擅长注入新的计算路径(适配器)或引导模型的注意力机制(前缀/提示调优)。
LoRA与适配器模块结合
适配器调优包括在预训练Transformer模型的层内插入小型、可训练的神经网络模块(适配器),通常是在注意力或前馈子层之后。原始模型权重保持不变,只训练适配器参数。
一种可能的结合方式是,将LoRA应用于标准权重矩阵(例如,注意力中的查询、键、值、输出投影以及前馈层),同时插入并训练适配器模块。
架构:
设想一个标准Transformer块。
- 注意力机制的权重矩阵(Wq,Wk,Wv,Wo)可以使用LoRA修改:Wq→Wq+ΔWq,其中 ΔWq=αrBqAq。
- 适配器模块可以插入到注意力块(及其层归一化)之后。
- 同样,前馈网络的权重矩阵(Wffn1,Wffn2)也可以接收LoRA更新。
- 另一个适配器模块可以插入到前馈块(及其层归一化)之后。
图示说明了LoRA(修改现有MHA和FFN层)和适配器模块在Transformer块内的集成。
潜在优势:
- 互补适应: LoRA可以为现有权重提供广泛的适应,而适配器则添加局部、可能非线性的计算,这些计算专门针对任务定制。
- 灵活性: 允许调整LoRA的秩 r 和缩放因子 α,以及适配器的架构和参数,提供更多自由度。
挑战:
- 复杂性增加: 管理两组可调参数(LoRA矩阵 A,B 和适配器权重)增加了实现和超参数调整的复杂性。
- 参数预算: 尽管与完全微调相比仍然参数高效,但与仅使用LoRA或仅使用适配器相比,可训练参数的总数会增加。
- 优化: 寻找同时适用于LoRA更新和适配器训练的最佳学习率和调度可能需要仔细的实验。训练期间两种更新类型之间可能存在干扰。
LoRA与前缀调优或提示调优结合
前缀调优和提示调优引入可训练参数,这些参数间接影响模型,通常通过在注意力层中向键和值状态添加连续向量(前缀),或者通过在输入序列前附加可调嵌入。
将LoRA与这些方法结合意味着同时训练修改内部权重的LoRA矩阵(A,B)和前缀/提示向量。
联动:
- LoRA: 修改内部权重矩阵 Wq,Wk,Wv,Wo,Wffn1,Wffn2,如前所述。
- 前缀调优: 在计算注意力分数之前,向注意力机制内计算出的键和值添加可训练的前缀向量 Pk,Pv。经LoRA修改的 Wk,Wv 将处理原始输入以生成键/值,然后这些键/值与学到的前缀拼接。
- 提示调优: 在它们进入第一个Transformer层之前,向输入序列嵌入添加可训练的提示嵌入 Eprompt。这些修改后的嵌入随后由LoRA适应的层处理。
潜在优势:
- 正交控制: LoRA调整模型内部处理信息的方式,而前缀/提示调优调整模型操作的有效输入或上下文。这种分离可能允许对适应进行更精细的控制。
- 定向干预: 可以假设使用前缀/提示调优来引导模型的关注点或高级行为,而LoRA则微调较低级别的表示。
挑战:
- 训练动态: 同时优化低秩矩阵因子(LoRA)和连续向量嵌入(前缀/提示)可能具有挑战性。它们可能需要不同的学习率或优化策略。
- 可解释性: 精确理解这两种方法如何共同作用以产生最终输出变得更加困难。
- 回报递减: 存在一种可能性,即一种方法的优势可能盖过另一种,或者将它们结合并不能带来显著优于经过良好调优的单一PEFT方法的性能,同时还增加了复杂性。
LoRA与量化结合(QLoRA)
虽然QLoRA常被视为一种独特技术(并且之前已详细介绍),但从根本上,它可以看作是一种结合方式:
- 量化: 基础模型的权重被大量量化(例如,到4位NormalFloat, NF4),以大幅减少内存占用。这是一种在微调之前应用的模型压缩技术。
- LoRA: 标准LoRA适配器(通常以BFloat16等更高精度进行训练)被添加到量化后的基础模型中。只训练LoRA参数。
这种特殊的结合直接解决了微调大型模型的内存限制,使其非常实用。QLoRA的成功表明,即使底层基础权重的精度已显著降低,LoRA也能有效适应模型。这或许是涉及LoRA的最广泛采用和验证的结合方式。
结合方法的一般考虑
在考虑将LoRA与其他PEFT技术结合时,请记住以下几点:
- 任务依赖性: 任何结合方式的有效性都可能取决于具体任务。某些任务可能通过增加非线性适配器能力获得更多好处,而其他任务可能对前缀调优与LoRA结合带来的上下文引导效果反应更好。
- 超参数调优: 超参数的搜索空间显著扩大。需要协调地调整LoRA参数(r, α, 目标模块)、适配器参数(维度、激活函数)或前缀/提示参数(长度、初始化)。这需要仔细的方法,可能使用如序列优化或在结合超参数空间中搜索等技术。
- 计算开销: 尽管参数数量保持较低,但训练期间的计算图可能变得更复杂,可能影响训练速度,具体取决于结合方式和实现。
- 实证验证: 理论上的好处需要通过实证来验证。必须将结合方法与经过良好调优的基准PEFT方法(包括仅使用可能更高秩的LoRA)在相关评估指标上进行比较。
将LoRA等PEFT方法与适配器或前缀调优结合是一个活跃的研究领域。这些结合方式虽然可能提供增强的灵活性和性能,但在实现、调优和分析方面增加了复杂性。QLoRA作为一种非常成功的结合方式脱颖而出,主要侧重于内存效率,证明了在修改(量化)后的基础模型上训练LoRA适配器的可行性。与许多先进技术一样,需要仔细的实验和评估来确定特定任务和计算预算的最佳方法。