聊聊 MOE + LoRA 微调新方式

作者:无恶不作,华为2012实验室 · 软件开发
声明:本文只做分享,版权归原作者,侵权私信删除!
原文:https://zhuanlan.zhihu.com/p/686851113

编辑:青稞AI

1.背景介绍

随着大语言模型(LLMs)的火爆发展,相应的微调技术也随之不断迭代。业界最近接连推出以 MOE(Mixture-of-Experts) + LoRA(Low-Rank Adaptation)组成的高效微调(PEFT)方案。相比于 MOE 通过设立多个独立的专家来学习任务特定的知识,并通过 gating 函数来调节每个专家的贡献;LoRA 技术通常微调一部分参数,同时保持预训练的 LLM 参数不变,通过使用低秩矩阵减少训练参数。可以说两者的结合有效解决了微调领域中多任务集数据冲突问题,在微调效果和成本上做到了新的高度。

2. LLaVA-MoLE

2.1 摘要

LLaVA-MoLE 提出了一种高效的专家混合(MoE)设计,它是一种用于指令微调 MLLM 的稀疏低秩自适应(MoLE)的混合。在 Transformer 层内,我们通过为 MLP 层创建一组专门用于 LoRA 的专家,扩展了 LoRA 方法,并基于路由函数将每个 token 路由到排名第一的专家,允许对来自不同领域的令牌进行自适应选择。由于 LoRA 专家被稀疏激活,与原始的 LoRA 方法相比,训练和推理成本基本保持不变。使用 MoE 设计替换 LLaVA-1.5 的普通 LoRA,最终模型被命名为 LLaVA-MoLE。广泛的实验证明,LLaVA-MoLE 在混合多个不同的指令数据集以及各种配置时,有效地缓解了数据冲突问题,并在强大的普通 LoRA 基线上实现了一致的性能提升。最重要的是,在混合数据集上,LLaVA-MoLE 甚至可以超过使用两倍样本训练的普通 LoRA 基线的性能。

2.2 背景介绍

研究中发现,当前使用普通 LoRA 进行训练的 MLLM 对于训练数据的配置非常敏感。如图1所示,我们采用了来自不同领域的三个指令微调数据集:

  • • 一个包含各种视觉语言指令数据混合的通用多任务数据集;

  • • 一个针对图表、表格和文档理解构建的面向文档的数据集;

  • • 一个由病理图像上的问答对组成的生物医学数据集。

通过对比,当 MLLM 在每个单独的数据集上进行微调时,它在相应的基准测试上取得了合理的性能。但是,当将文档和生物医学数据集与通用数据集混合在一起时,经过训练的LLaVA-Mix 在通用基准测试上的性能从 306.3 下降到 295.8,这意味着添加与通用多任务指令明显不同的数据会导致冲突。这严重阻碍了通过添加来自新领域的训练数据来扩展 MLLM 能力的可能性。

8736c09634dfdd3a0e1666b5288d8e13.jpeg
图1

2.3 解决方法

为了解决上述问题,提出了将稀疏的 LoRA 专家混合应用于 LLaVA-1.5 进行指令微调,从而得到模型 LLaVA-MoLE。重新设计了 LoRA 应用于 LLM 的 Transformer 层中的MLP。不仅仅向原始线性层添加一对低秩分解矩阵,而是引入了一组具有与原始 LoRA 相同结构但不同权重的专家。如图2所示,LLaVA-MoLE 与稀疏的 LoRA 专家混合模型的整体框架。模型基于LLaVA-1.5,其中输入图像经过 CLIP ViT处理,然后通过一个两层 MLP 进行投影。输入文本被 tokenizer 和 embedding 处理,然后与视觉输入连接以输入 LLM。LLM 的每一层都是使用提出的稀疏的 LoRA 专家进行训练的。FFN 根据路由器的输出分布选择并与一个 LoRA 专家进行组合。自注意力也使用 LoRA 进行训练,但不应用MoE(混合专家)技术。

51238615dbecc7dfaadc1e6bfc67ffd7.jpeg

其中作者推导一个多模态大型语言模型(MLLM)可以表示为:

49a755abeaf30726c92b762fe5e6a786.jpeg

作者提出的方法的目标是在混合不同类型的指令数据时减轻冲突。为此,我们引入了一组 LoRA 专家和每个 Transformer 层的路由器。在每个输入标记处,路由器学习选择最合适的专家进行激活,以便模型具有处理不同类型输入的额外能力。假设每层有 K 个专家,选择具有最高路由函数值的专家:

06a01e340ee77e8e3b1a9cda6bc4e055.jpeg

为了更具体,现代 LLMs 中的 FFN 层通常是多层的。在这种情况下,FFN 的每个线性层都有一个独立的 MoE,但它们共享同一个路由器,即这些层的专家选择是相同的。通过仅激活排名第一的专家,实际计算成本与使用普通 LoRA 的原始 FFN 大致相同。(这部分公式含义可以参见论文,不展开介绍了)

2.4 负载均衡

如前一节介绍的,通过将每一个 token 路由到单个专家,MoE 模型的总计算量基本接近于普通的 LoRA 模型。然而,如果专家分配严重不平衡,低负载的专家将会有浪费的空闲时间。与之前的稀疏 MoE 方法类似,引入 MoE 层引入了负载平衡损失,其公式为:

cded87e5f4e71c4c694d70c262d10177.jpeg

每层的损失取平均,并乘以一个常数因子 α=1∗e−2 ,然后加到语言建模损失中。由于 c 向量是不可微的,梯度只通过 p 向量流动,并优化路由器权重。随着 LIb 的减小,专家分配趋向于均匀。之前的研究设置了专家容量,确保每个专家不能处理超过给定容量的 tokens 数量(溢出的tokens 将被丢弃),从而严格限制了每个专家的计算负载。在论文的场景中,由于指令数据相对于之前的研究中使用的文本语料库来说相对较小,决定将专家容量提高到 LLM 的最大上下文长度,以便不丢弃任何标记,并确保专家接收到足够的训练。

2.5 实验

实验配置,作者将 PathVQA 用作生物医学领域的指令数据。它包含来自 4,998 张病理图像的32,799 个问题。训练集有 19,755 个问答对,测试集有 3,370 个开放式问题和 3,391 个闭合式问题。我们在开放式和闭合式问题集上报告结果。

对于这两个阶段,我们使用 Deepspeed ZeRO-2 优化在64个 NVIDIA A100 80GB GPU 上进行模型训练。在三个数据集的混合上微调一个 LLaVA-MoLE 模型大约需要16小时。采用 AdamW 优化器进行训练,并进行学习率预热。在图3中列出了训练配置的重要参数。

a7c3b91e36bf167a2e319ab3561700f6.jpeg
图3
b0d0b6ecae52d6b93d486bf11ee6ef5d.jpeg
图4

图 4 中使用不同数据和 MoE 配置训练的模型的实验结果。λG、λD 和 λM 分别是用于一般多任务数据、文档数据和生物医学数据的采样频率。采样频率为 0 表示未使用该数据集。VR、VP、VKA、VC 和 OH 分别代表粗略能力类别的视觉推理、视觉感知、视觉知识获取、视觉常识和物体幻觉。∗表示官方发布的模型,†表示我们复现的模型,×2表示模型训练了两个周期。LLaVA-Mix 和 LLaVA-MoLE 是使用不同的数据集混合配置进行训练的,通过追加数据配置来区分它们。LaVA-MoLE 可以成功解决多任务数据存在的冲突问题。

2.6总结

本文的贡献总结如下:

  • • 基于先进的 MLLM 模型和大规模数据集,发现在将 MLLM 在明显不同的指令数据集混合上进行指令微调时存在数据冲突问题。

  • • 提出了 LLaVA-MoLE,它是通过稀疏的 LoRA 专家混合进行指令微调,以解决数据冲突问题,而不会显著增加训练计算或内存。允许调整混合中每个数据集的采样比例,以在特定任务上实现更高的性能,而不影响其他任务。

  • • 广泛的实验证明,与使用普通 LoRA 微调相比,LLaVA-MoLE 在多个基准测试上对于各种数据配置都实现了一致的性能提升。

3. MOELoRA

3.1 摘要

最近在大型语言模型(LLMs)领域出现了一股热潮,引起了许多领域的重视。为了将 LLM 定制到特定领域,如基于网络的医疗保健系统,需要使用领域知识进行微调。然而,在为医疗应用进行LLM微调时会出现两个问题。

  • • 第一个问题是任务多样性,真实世界的医疗场景中存在许多不同的任务。这种多样性通常导致微调不够优化,因为存在数据不平衡和摇摆问题。

  • • 此外,微调的高成本可能会阻碍 LLM 的应用。LLMs 中的大量参数导致在微调过程中需要消耗巨大的时间和计算资源,这很难合理解释。

作者提出了一种新颖的用于多任务医疗应用的参数高效微调框架,称为 MOELoRA。该框架旨在充分利用 MOE 进行多任务学习和 LoRA 进行参数高效微调的优势。为了验证所提方法的有效性和实用性,作者在一个公开的多任务中文医学数据集上进行了全面的实验。实验结果表明,MOELoRA 优于现有的参数高效微调方法。

3.2 背景介绍

由于大型语言模型(LLMs)在语言理解和生成方面的卓越能力,如 ChatGPT 和ChatGLM,它们在学术界和工业界引起了广泛的关注。许多工作致力于研究 LLMs 在各个领域的潜在应用。对于 LLMs 而言,医疗领域是一个特别适合的领域,因为 LLMs 的应用可以使患者和医生受益。对于患者而言,基于LLM的在线聊天机器人可以提供方便的医学知识获取途径;对于医生而言,基于 LLM 的临床决策支持系统(CDSS)可以减轻他们的工作负担并提高诊断效率。

将 LLMs 用于医疗领域的微调通常涉及两个主要挑战:

  • • 任务多样性问题:在真实世界的临床环境中,LLMs 可以应用于各种任务,如医生推荐、诊断预测、药物推荐、医学命名实体识别、临床报告生成等。由于这些任务的输入和输出非常不同,很难为所有任务微调一个统一的模型。

  • • 高调整成本:在 Bert 时代,微调所有模型参数是一种标准方法,但对于 LLMs 来说,由于其庞大的规模,这变得具有挑战性。LLMs中大量的参数可能导致实际中的时间和计算开销非常高。因此,迫切需要参数高效的微调方法。

3.3 解决方法

041d48a229db3102001acac90b70b438.jpeg
图5

在当代基于网络的医疗保健环境中,智能医疗系统越来越普遍。许多研究试图通过定义一致的输入和输出模式来标准化医疗任务,从而简化模型设计过程。以医学命名实体识别(NER)为例,如图 5 所示,传统模型通常处理医学文本(表示为 IM ),并生成实体 Ohead和 Otail 。然而,将 LLMs 整合到医疗任务中引入了一种独特的范式。由于 LLMs 的输入和输出通常都是语言性质的,因此需要重新制定医疗任务以与 LLMs 兼容。增加相应的指令结构体:

2767a789c436635bcd5a36c66cfa0a5e.png

在为 LLMs 进行任务重构之后,我们可以使用纯语言数据对基础大型语言模型进行微调,例如LlaMA,ChatGLM等。然后,微调后的模型通过生成规范化的答案来完成医疗任务。

2b58e49313a9bc4ab7da054ffe9715f6.jpeg
图6

图 6 提供了使用 MOELoRA 对 LLMs 进行参数高效微调的过程的可视化表示。在参数高效微调领域,LoRA 仅引入了两个低秩矩阵作为密集层的替代。在此基础上,作者的方法将 MOELoRA 层集成到每个密集层中,使它们能够获取键、查询和值,并促进前馈过程。此方法的一个重要优势是,只微调 MOELoRA 层的参数,保持原始 LLM 的其余参数不变。这种方法大大降低了微调的成本。

此外,每个 MOELoRA 层都包含多个共享的专家。这些专家被设计用于捕捉不同医学领域的多样化知识。引入了一个任务驱动的门函数,以确保为每个任务学习到独特的参数集。该函数确定了所有 MOELoRA 层中专家的贡献权重,使得可以生成针对不同任务定制的不同更新参数。值得注意的是,作者为所有 MOELoRA 层使用单个 gating 函数,而不是在 gating 和MOELoRA 层之间建立对应关系。这种设计选择是有意的,旨在减少可调参数的数量,并减轻过参数化的风险。

3.4 MOELoRA

在原始的 LoRA 中,所有任务的参数都进行微调,导致难以学习医学知识的各个方面。解决这个挑战的一个潜在解决方案是将整个参数集分割成几个部分,并推导出各种组合。多任务专家模型(MOE),使用多个专家网络来捕捉多任务信息的不同方面,与组合概念相吻合。这一观点引导作者设计了 MOELoRA,无缝地整合了 LoRA 和 MOE 的优势。为了使 LoRA 和 MOE 的不同前向过程协调一致,我们引入了一组专家,表示为 {Ei}i=1N 。

为了确保不同任务学习到不同的参数,每个专家的贡献应该是任务特定的。在下图 7 中,项 ωji 调节了任务 $\tau_{j}$的这些贡献权重。(细节参考论文原文)

6ecbc9ece85c8ca15182ed34818e7b2f.jpeg
图7

MOELoRA 的训练和推理过程如下图 8 所示。

6f35e3d8394385062bb03d2aff9c0925.jpeg
图8

3.5 推理和优化

优化:作者讨论 MOELoRA 的优化和推理过程。如上算法过程中总结了整个过程,首先根据 LLM 中指定的层和几个超参数配置 MOELoRA(第1-3行)。然后,为了进行参数高效的微调,LLM 中的所有预训练参数都被冻结(第4行)。在优化过程中,代地随机从所有任务中抽取一批数据,而不是像一些多任务研究那样将来自同一任务的样本分组成一批。作者选择随机抽样的批次进行性能比较实验。使用数据批次,可以进行前向过程并计算训练损失(第6-7行)。在参数更新方面,值得注意的是,作者只微调 MOELoRA 和任务驱动的门函数的参数。

推理:MOELoRA可以通过方程(6)为每个任务恢复微调的参数矩阵。在推理过程中,首先为每个任务恢复训练好的 LLM 参数(第10-13行),这意味着每个任务都有自己的 LLM 参数。然后,可以应用相应的 LLM 来完成指定的任务。

3.6 实验

在本节中,作者对一个多任务的中文医学数据集进行了全面的实验。通过对实验结果的详细分析,试图回答以下研究问题(RQ):

  • • RQ1:在性能方面,MOELoRA 与其他参数高效微调策略和跨任务泛化方法相比如何?

  • • RQ2:MOE 架构和 gating 函数对微调过程有何影响?此外,不同的训练策略如何影响MOELoRA 的性能?

  • • RQ3:专家数量和MOELoRA的秩如何影响性能结果?

  • • RQ4:专家是否专门捕捉特定知识方面的信息?

通过回答这些问题,可以深入了解 MOELoRA 的性能、架构和训练策略对于多任务学习的影响,并探讨专家的特化程度以及它们在捕捉特定知识方面的能力。这些实验结果将有助于我们评估 MOELoRA 的优势和适用性,并为进一步改进和应用提供指导。

数据集:作者的实验是在 PromptCBLUE 数据集上进行的,该数据集包含16个不同的医学任务,每个任务都使用特定的提示转换为纯文本格式,以确保与 LLM 兼容。

基准线:在实验中,作者与三个不同的基准线组进行了对比,分别是:

  • • 无微调的LLM

  • • 微调的LLM

  • • 跨任务泛化。后两组利用 ChatGLM 6B 进行微调

实现细节:使用PyTorch 1.12.0 和 Python 3.6. 5。在Tesla V100 GPU上运行代码以加速计算。LLM ChatGLM 6B 选为微调的基础模型。其他配置如下:

  • • 模型层:对于所有 LoRA 微调基准线和提出的 MOELoRA。

  • • 输入/输出长度:最大输入长度和输出长度分别配置为1,024和196。

  • • 参数:我们将 batchsize 大小设置为 64,最大训练步数为 8,000。LoRA 的秩 r 固定为16,LoRA 的 dropout α = 0.1。对于 MOELoRA,专家数量设置为 8。

如图 9 所示,基线和 MOELoRA 在 PromptCBLUE 上的整体结果。粗体表示最高分数,下划线表示基线的最佳结果。"*"表示相对于最佳基线的统计显著改进(即,双边 t 检验,p < 0.05)。

f390e9ed89da4ca79831e9aa3a170cd9.jpeg
图9

MOELoRA 和竞争基准线的综合实验结果如图 9 所示。分析所有任务的平均分数,可以明显看出MOELoRA 始终优于所有其他方法。

2ff9266ac5ee171f7563f23d5e45bad8.jpeg
图10

为了更深入地探讨 RQ2 并了解 MOELoRA 中每个组件的贡献,作者在图 10 中展示了消融研究结果。去除 MOE的 变体(实质上回到LoRA(Full))排除了 MOE 架构。它表现出较差的性能,与完整的 MOELoRA 相比,突出了 MOE 架构的重要性。同样,去除 gating 函数的变体,它使用均匀的专家权重绕过门函数,也落后于 MOELoRA,突显了gating 函数的有效性。多个 gating 函数的变体为每个 MOELoRA 层使用独特的 gating 函数。可以看到,它在几个任务上实现了可比较的结果,但由于过度参数化而略逊于单个门函数设计。此外,多个门函数还会导致更高数量的可训练参数,与单个门函数设置相比效率降低。

765a2e509ca74f6a2f85f40f271e5661.jpeg
图11

为了回答 RQ3,作者深入研究了超参数对 MOELoRA 性能的影响。从图 11b 中观察到,虽然 r的增加始终提高性能,但也会导致可训练参数的相应增加。考虑到效率和性能之间的平衡,r 的一个实际选择是 16。

d9bd2d32f08836c544661676616c65fb.jpeg
图12

对于RQ4,在图 12 中呈现了四个任务中的专家权重的可视化。对于每个任务,不同颜色的条的长度表示相应专家的权重。由于专家权重被归一化为1,因此每个任务的条的长度相同。在宏观层面上,明显可以看出每个专家的贡献差异很大,突显了不同专家在医学知识的不同方面专长的观点。此外,权重在不同任务之间的显著差异突出了医学应用的多样性。仔细观察 CHIP-CDN 和KUAKE-QIC 任务,可以看到它们的专家权重在很大程度上是一致的,只有专家 3 和 4 有些例外。鉴于 CHIP-CDN 可以被视为 KUAKE-QIC 的前身——因为诊断词归一化可以增强查询分类——专家权重的相似性表明 MOELoRA 擅长利用共享知识来使内在相关的任务受益。

3.7 总结

在本文中,作者首先迈出了一步,探索了 LLM 驱动的医学应用的多任务参数高效微调方法。为了满足微调的效率要求和多任务的有效性要求,作者提出了一种新颖的多任务微调框架。具体而言,设计了 MOELoRA 架构,它由多个低秩专家组成,作为可训练参数来学习与任务相关的知识并保持高效性。此外,我们设计了一种任务驱动的 gating 函数,用于为不同任务生成不同的微调参数。通过对一个多任务的中文医学数据集进行全面的实验,验证了所提出的MOELoRA 的有效性。在未来,作者将进一步探索如何通过微调将显式的医学知识(如知识图谱)与 LLM 相结合。

4. 参考

[1]https://arxiv.org/pdf/2401.16160.pdf
[2]https://arxiv.org/pdf/2310.18339.pdf
[3]https://github.com/liuqidong07/

备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

7e56f5f3def6483926b1b42d5de3ccc0.png

id:DLNLPer,记得备注呦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值