MoSLoRA
Kimi全文翻译 ⬇️
0. 摘要
在本文中,我们介绍了一种受子空间启发的低秩适应(LoRA)方法,该方法计算效率高,易于实现,并且可以轻松应用于大型语言、多模态和扩散模型。最初,我们将 LoRA 的权重等价地分解为两个子空间,并发现简单地混合它们可以增强性能。为了研究这种现象,我们通过细粒度的子空间视角重新审视它,表明这种修改等同于使用固定混合器融合子空间。为了更加灵活,我们与原始 LoRA 权重一起学习混合器,并称之为子空间混合 LoRA(MoSLoRA)。MoSLoRA 在不同模态的任务上一致性地优于 LoRA,包括常识推理、视觉指令调整和主题驱动的文本到图像生成,证明了其有效性和鲁棒性。代码可在 github 上找到。
1. 引言
大型语言模型(LLMs),如 GPT-4(OpenAI, 2023)、LLaMA 3(AI@Meta, 2024)和 InternLM2(Cai et al., 2024),已在多个学科中展现出卓越的性能(Rozière et al., 2023; Thirunavukarasu et al., 2023)。这种强大的能力通常归因于训练数据和模型参数规模的增加。然而,这也给通过完全微调所有参数来适应这些 LLMs 的下游任务带来了越来越大的挑战。为了解决这个问题,参数高效微调(PEFT)已经发展起来(Hu et al., 2022; Lester et al., 2021; He et al., 2022),以最小化优化参数的数量,同时尽可能地实现相当的性能。在这些方法中,LoRA(Hu et al., 2022)因其简单和有效而越来越受欢迎,它提出了更新额外的低秩分支,并在推理期间将其合并到冻结的原始权重中。如图 1 所示,对于原始权重矩阵
2. 预备知识和动机
2.1 LoRA 和子空间视角
基于模型适应期间权重更新表现出低内在秩的假设,LoRA(Hu et al., 2022)旨在通过两个低秩矩阵来模拟权重更新。对于预训练的权重矩阵
其中
其中
2.2 混合两个子空间
如图 2b 所示,我们可以通过将
3. 方法论
3.1 更细粒度的子空间
受到混合两个子空间可以带来更好性能的观察结果的启发,我们重新审视了更细粒度的子空间(即,秩=1)视角下的两个子空间混合 LoRA。具体来说,我们将
其中
其中
有趣的是,我们可以发现方程 5 和方程 6 共享相同的范式:
其中
3.2 混合器的初始化策略
在提出的 MoSLoRA 中,我们采用可训练的混合器来融合所有可能的子空间。然而,MoSLoRA 的系统是线性的,不良的初始化会妨碍学习(He et al., 2015)。在 MoSLoRA 中,我们遵循 LoRA 中的设置,使用 Kaiming 均匀分布初始化
3.3 与专家混合的关系
专家混合(MoE)方法旨在将一组参数划分为专家,并在训练和推理期间将输入样本路由到特定专家(Fedus et al., 2022a; Shi et al., 2024)。通常,他们采用路由器根据输入为每个专家生成分数,然后选择前
- 在 MoSLoRA 中,混合子空间的权重与输入无关,而 MoE 方法中的门控权重是输入特定的。
- 在 MoSLoRA 中,我们同时适应所有子空间,而 MoE 方法从所有专家中选择前
个。
4. 实验与分析
4.1 常识推理
我们对 LLaMA-3 8B 指令版本模型(AI@Meta, 2024)进行了常识推理问答任务的微调。我们首先使用 170k 训练样本(Hu et al., 2023)训练模型,然后在 8 个常识推理问答基准测试上测试微调后的模型(详见附录 A.1)。170k 训练集是这些基准测试的训练集的混合。除了 LoRA(Hu et al., 2022),我们还比较了 MoSLoRA 与各种基线,包括:1)LoKr(Yeh et al., 2023)使用 Kronecker 积进行矩阵分解的
- MoSLoRA 优于所有基线,证明了混合子空间的有效性。具体来说,MoSLoRA 平均得分为 85.6,比 LoRA 的 82.8 高出 2.8 个百分点。此外,MoSLoRA 优于具有更高秩的 DoRA。
- 与 LoRA 相比,MoSLoRA 需要的额外参数(少于 0.1M)和计算成本(少于 0.2 小时)可以忽略不计。同时,MoSLoRA 可以节省比 DoRA 少 44% 的训练时间,比 LoHa 少 68%。
- 尽管 LoKr 通过 Kronecker 积减少了训练参数,但它需要比 MoSLoRA 多 3 倍的训练时间和 2 倍的 GPU 内存。此外,LoKr 的平均得分为 80.9,比 MoSLoRA 低 4.7 个百分点。
更少的训练样本为了比较在更少样本设置下的性能,我们从原始的 170k 训练集中随机选择 12.5%/25%/50%/75% 的训练样本,并重复实验。如图 4 所示,更多的训练样本会带来更好的性能,MoSLoRA 在所有设置下都优于 LoRA。特别是,使用 50% 样本训练的 MoSLoRA 得分为 83.6,比使用 100% 样本的 LoRA 高出 1.8 个百分点。此外,随着训练样本的增加,MoSLoRA 和 LoRA 之间的性能差距变得更大,显示出 MoSLoRA 由于混合子空间而更好地模拟更复杂信息的优越性。
4.2 视觉指令调整
为了评估在多模态任务上的性能,我们对 LLaVA-1.5(Liu et al., 2023a)系列模型进行了视觉指令调整的微调,然后对模型进行了各种视觉问答基准测试。训练 LLaVA 有两个阶段:1)预训练一个两层 MLP 将视觉特征投影到语言空间,以及 2)优化 LLM 和视觉编码器(可选)进行视觉指令调整。在本文中,我们采用了 XTuner(Contributors, 2023b)提供的预训练投影器,并在 LLM 主干和视觉编码器上同时进行视觉指令调整。对于 LLM 主干,我们采用了 LLaMA3 8B(AI@Meta, 2024)和 InternLM2 7B(Cai et al., 2024),使用现成的投影器 3。对于视觉编码器,我们采用了 ViT 4(Dosovitskiy et al., 2021)大版本。由于资源有限,我们通过 LoRA/MoSLoRA 对 LLM 主干和视觉编码器进行了微调,而不是优化 LLM 中的所有参数。对于 InternLM2,我们采用了 4 位 QLoRA(Dettmers et al., 2023)和相应的 QMoSLoRA(QLoRA+MoSLoRA)。基于表 3 的结果,我们分别将混合器初始化为正交矩阵和 Kaiming 均匀分布。具体超参数,请参考附录 B.2。使用 4 个 Nvidia A100 80G GPU 进行微调大约需要 20 小时。视觉指令调整后,我们在 9 个流行基准测试上评估训练模型,包括 MMBench EN/CN(Liu et al., 2023b)、SEED Bench(Li et al., 2023a)、AI2D(Kembhavi et al., 2016)、SciQA(Lu et al., 2022b)、TextVQA(Singh et al., 2019)、MathVista testmini(Lu et al., 2023)、MM-Vet(Yu et al., 2023)和 MME(Fu et al., 2023)。所有评估都使用 VLMEvalKit(Contributors, 2023a)完成。请参考附录 A.2 以了解数据集和报告指标的详细信息。具体来说,我们将 MME 分数缩放到 100 以计算平均分数。表 5 显示了 9 个基准测试的结果。对于正交和 Kaiming 初始化,MoSLoRA 在各种基准测试上一致性地优于 LoRA。具体来说,MoSLoRA 在 InternnLM2+ViT 上的平均得分为 59.5,比 LoRA 高出 1.7 个百分点。此外,MoSLoRA 也优于与 4 位 QLoRA 结合时的 LoRA。它有效地展示了 MoSLoRA 与 QLoRA 的兼容性。因此,MoSLoRA 可以应用于与量化方法结合的低资源微调场景。总之,提出的 MoSLoRA 在各种设置中一致性地优于 LoRA,证明了其有效性和鲁棒性。
更细粒度的能力此外,我们还在 MMbench EN/CN 测试集上的 6 个能力维度上可视化了标准化分数。如图 5 所示,我们可以观察到 MoSLoRA 在所有能力上的表现优于 LoRA,无论是英语还是中文场景,特别是在推理能力上。推理任务通常被认为更复杂和困难。与 LoRA 相比,MoSLoRA 混合了更多的子空间,因此更擅长处理更困难的任务,如逻辑推理。
4.3 主题驱动生成
我们进一步进行了实验,微调文本到图像扩散模型,进行主题驱动生成任务(Ruiz et al., 2023)。目标是根据给定提示生成遵循特定主题的图像,该主题在一些给定图像中定义。我们首先微调一个文本到图像模型,输入图像与包含唯一标识符的文本提示配对(例如,一张 [V] 猫的照片)。之后,我们可以使用包含唯一标识符的其他提示来生成相应的图像。图 6 显示了来自 DreamBooth 数据集(Ruiz et al., 2023)的一只猫的案例。我们通过 LoRA 和 MoSLoRA 对 SDXL5 模型(Podell et al., 2023)进行了微调。在 MoSLoRA 中,混合器被初始化为正交矩阵。在微调期间,学习率为 1e-4,批量大小为 4。我们训练模型 500 步,使用 1 个 80G A100 GPU 大约需要 16 分钟。在生成过程中,我们为给定提示推断 50 步。与原始 LoRA 相比,我们可以发现我们提出的 MoSLoRA 捕获了更多主题的细节,并更好地符合给定提示。具体来说,MoSLoRA 学习了关于给定猫的更多细节,包括脖子周围毛发的颜色和爪子的形状。同时,来自 MoSLoRA 的图像更符合给定提示,如湿的(因此成簇的)头发和漂浮的姿态(展开的手势)。
人类评估我们还在生成的图像上进行了人类评估。首先,我们从 DreamBooth 数据集(Ruiz et al., 2023)中选择了四个主题(即猫、狗、灰色树懒毛绒玩具和罐头),并分别对 SDXL 模型进行了微调。然后,我们随机选择 8 个提示来生成相应的图像。之后,15 位人类专家被要求独立地为来自 LoRA 和 MoSLoRA 的配对图像评分胜利/平局/失败。在评估期间,我们打乱了这些配对,并且这些专家不知道每张图像的来源模型。我们采用了两个指标,包括 1)主题相似性定义为生成图像与给定图像之间的相似性,以及 2)提示一致性定义为提示与生成图像之间的一致性。表 6 报告了所有图像的平均分数。我们可以发现 MoSLoRA 在两个指标上都优于 LoRA。特别是,MoSLoRA 在提示一致性上的平均获胜比率为 45.1%,比 LoRA 高出 34.3 个百分点。请参考附录 D 以了解更多提示和来自 LoRA 和 MoSLoRA 的相应生成图像。
5. 相关工作
5.1 参数高效微调
参数高效微调(PEFT),旨在更新一小部分参数以适应大型语言模型(LLMs),变得越来越重要。主流的 PEFT 方法可以分为:1)适配器基础方法(Houlsby et al., 2019; Lei et al., 2023),在变换器层之间插入模块;2)前缀调整方法(Li and Liang, 2021; Liu et al., 2021),将可调前缀向量添加到隐藏状态中;3)选择性方法(Zaken et al., 2022),选择部分参数进行更新;以及 4)低秩调整(LoRA)系列(Hu et al., 2022; Yeh et al., 2023),注入可训练的低秩分支来近似权重更新。在 LoRA 中,低秩分支可以在推理期间合并到原始权重中,因此不引入任何延迟。我们请读者参考 Han et al. (2024) 以获得更全面的调查。在本文中,我们专注于 LoRA 方法。
5.2 LoRA 及其变体
LoRA 的核心是更新可合并的低秩分支以模拟权重更新。Hu et al. (2022) 将分支初始化为两个低秩矩阵的乘积。以下变体可以分为:1)引入训练技巧,如设置不同的学习率(Hayou et al., 2024)和添加随机噪声(Lin et al., 2024);2)搜索秩,如 DyLoRA(Valipour et al., 2023)和 AdaLoRA(Zhang et al., 2023);以及 3)分支的新设计,如 LoKr(Yeh et al., 2023)、LoHa(Yeh et al., 2023)、VeRA(Kopiczko et al., 2023)、DoRA(Liu et al., 2024)和 FLoRA(Si et al., 2024)。LoKr 和 LoHa 分别使用 Kronecker 和 Hadamard 积替换原始矩阵乘积。DoRA 将预训练权重分解为其大小和方向分量,并分别微调它们。我们还注意到了一个非常近期的并行工作 FLoRA(Si et al., 2024)。MoSLoRA 和 FLoRA 之间的区别如下:1)初始化方法及其相应的动机:FLoRA 的动机是通过引入核心空间来维持原始高维参数空间的结构完整性(即,二维卷积)。不同地,MoSLoRA 的动机是基于第 2.2 节中的探索性实验观察,我们发现在更细粒度的子空间视角下,两个子空间混合 LoRA 有潜力学习复杂特征。因此,我们引入了一个额外的可训练混合器,初始化为 Kaiming 均匀分布或正交矩阵,我们通过实证(第 3.2 节)发现这对最终性能至关重要。2)分析和推导:我们的混合器设计来自于分析和推导两个子空间混合 LoRA 的过程。我们在更细粒度的视角(秩=1)和组合视角下重新审视两个子空间混合策略,然后我们发现 LoRA 和两个子空间混合 LoRA 等同于插入固定混合器矩阵。基于此,我们提出了 MoSLoRA,它采用可训练的混合器融合更多的子空间,更加灵活。3)模型和数据集:对于视觉指令调整任务,FLoRA 微调了 LLaVA-1.5-7B(基于 Vicuna-1.5-7B(Peng et al., 2023))并在七个视觉语言基准测试上进行评估:VQAv2(Goyal et al., 2019)、GQA(Hudson and Manning, 2019)、VisWiz(Gurari et al., 2018)、SQA(Lu et al., 2022a)、TextVQA(Singh et al., 2019)、POPE(Li et al., 2023b)和 MMBench(Liu et al., 2023b)。不同地,我们选择了 LLaMA3 8B 和 InternLM2 作为语言模型,并在 MMBench EN/CN(Liu et al., 2023b)、SEED Bench(Li et al., 2023a)、AI2D(Kembhavi et al., 2016)、SciQA(Lu et al., 2022b)、TextVQA(Singh et al., 2019)、MathVista testmini(Lu et al., 2023)、MM-Vet(Yu et al., 2023)和 MME(Fu et al., 2023)上评估微调模型。此外,对于语言模型,我们在 LLaMA3 8B 上评估 MoSLoRA,而 FLoRA 专注于 DeBERTaV3(He et al., 2023)。
6 结论
这项工作提出了一种新的 MoSLoRA 方法,用于参数高效微调。我们首先将 LoRA 分解为子空间,并发现简单地混合半秩子空间会带来更好的性能。之后,我们以更细粒度的视角(即,秩=1)重新审视原始 LoRA 和两个子空间混合策略,从而将两种方法统一为采用额外固定混合器。因此,我们提出了 MoSLoRA,它采用可训练的混合器融合更多信息,更加灵活。混合器需要的额外参数和计算成本可以忽略不计。在常识推理任务、视觉指令调整任务和主题驱动生成任务上的实验结果证明了所提出的 MoSLoRA 的有效性和鲁棒性。未来的工作,我们将考虑将 MoSLoRA 应用于更多任务。找到针对任务特定的混合器初始化方法以实现更快的收敛将是另一个有趣的话题。
限制
在本文中,我们在常识推理任务、视觉指令调整任务和主题驱动生成任务上进行了实验。LoRA 可以应用于更多场景,例如在微调稳定扩散模型时混合图像生成任务的风格。我们将这些任务留给未来的工作。
伦理声明
该项目旨在改进 LoRA 方法,并且可以用于主题驱动的文本到图像生成任务,其中用户可以微调稳定扩散模型以生成由输入图像定义的特定主题的图像。在某些情况下,恶意方可能会使用生成的图像误导观众。这是生成模型方法或内容操纵技术中的常见问题。
致谢
我们感谢所有匿名审稿人对提高我们论文的建设性反馈。我们感谢 Zenan Xu、Chaofan Tao、Chenchen Ding、Shuqi Wang 和 Zhengwu Liu 的富有成果的讨论。这项工作得到了香港特别行政区研究资助局(RGC)的主题研究计划(TRS)项目 T45-701/22R 的支持。