优化大型语言模型微调:MoLA层级专家分配策略

news2024/9/26 3:28:00

人工智能咨询培训老师叶梓 转载标明出处

大模型(LLMs)的微调过程中,计算资源的需求巨大,这促使研究者们探索参数高效微调(PEFT)技术。低秩适应(LoRA)和专家混合模型(MoE)的结合显示出了提升性能的潜力,但大多数现有方法只是简单地在MoE框架下用LoRA适配器替换专家,并且每一层都分配相同数量的专家。这种方法可能会导致一些问题,比如由于表示崩溃或学习到的路由策略过拟合,导致专家之间的冗余。来自美国西北大学、Mineral Research和Google DeepMind的研究人员提出了一种新颖的参数高效MoE方法,通过层级专家分配(MoLA)来优化Transformer模型的性能。

论文链接:https://arxiv.org/pdf/2402.08562

项目链接:https://github.com/GCYZSL/MoLA

方法

MoE-LoRA与层级分配(MoLA)的新方法不仅结合了LoRA和MoE技术,还通过智能的层级专家分配来优化模型。在这种方法中,不是给Transformer的每一层分配相同数量的专家,而是根据每一层的需求分配不同数量的专家。

Figure 1 展示了MoLA架构的总览。在这种架构下,LoRA-MoE被应用于预训练的Transformer模型,并且每个模型层可以采用不同数量的专家。在训练过程中,预训练的权重被冻结,只有LoRA专家被调整作为权重的适配器。这种设计允许模型在保持预训练权重不变的同时,通过调整LoRA专家来适应特定的任务或数据集。

在训练预训练的LLM时,不是将每个密集线性层的权重矩阵分解成一对低秩矩阵,而是创建多对低秩矩阵,每对称为一个LoRA专家。通过学习一个路由模块来为每个输入令牌指定不同的LoRA专家。对于具有m层的Transformer模型,为第j层分配Nj个专家,并有个专家总计。对于第j层模块t中的预训练权重矩阵,创建Nj对低秩矩阵{​}和{}。每个矩阵从随机高斯分布初始化,将设置为零。然后,使用具有可训练权重矩阵​的路由器为输入x指定不同的LoRA专家。MoLA选择顶部K个专家进行计算,并在每一层应用负载平衡损失。

研究者提出了四种基于不同假设的层级专家配置(Figure 2):MoLA Triangle (MoLA-△)、MoLA Inverted-Triangle (MoLA-▽)、MoLA Hourglass (MoLA-▷◁) 和 MoLA Rectangle (MoLA-□)。每种配置都基于不同的假设,显示了如何在不同层级分配专家。

  • MoLA Triangle (MoLA-△):基于假设,较低层次学习更多词级特征,如词义、语法,而高层次捕获更抽象的高级信息。因此,假设较低层次需要更多的专家来区分细微的意义,而高层次需要较少的专家进行泛化。
  • MoLA Inverted-Triangle (MoLA-▽):与MoLA-△相反,假设处理词级信息的更多专家可能会在信息处理中引入冗余。由于高层次学习更抽象和高级的信息,这些特征用于下游任务,可能需要更多的专家。
  • MoLA Hourglass (MoLA-▷◁):第三种模型假设,由于较低和较高层次都专注于处理基本特征和抽象特征,它们需要更多的专家。中间层次在聚合基本特征和将它们映射到高维空间进行抽象推理方面发挥作用,需要较少的细粒度特征。
  • MoLA Rectangle (MoLA-□):最后一种配置是MoE的原始设计,其中每个Transformer层都有相同数量的专家,用作基线。

通过这些方法,MoLA旨在提高LLMs微调的效率和效果,同时减少训练过程中的计算资源需求。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

实验包括了指导微调(instruction-tuning)后进行微调(fine-tuning),以及直接微调两种不同的设置。为了确保比较的一致性和清晰性,研究者们为大模型设计了四种MoLA的专家分配配置,他们采用了含有32层的LLaMA2作为基础模型,并为不同的层分配了不同数量的专家。

实验设置:

  • MoLA-△:在前8层每层分配8个专家,接下来的8层每层分配6个专家,17-24层每层分配4个专家,最后8层每层分配2个专家,表示为8642。
  • MoLA Inverted Triangle:在较低层次分配较少的专家,而为更高层次分配更多的专家,表示为2468。
  • MoLA Hourglass 和 MoLA Rectangle:分别采用8228和5555的分配方式。所有变体的总专家数保持一致,即具有相同数量的可训练参数。

在实验的第一阶段,研究者们在指导微调数据集上使用PEFT方法进行指导微调,随后对下游任务进行微调。在直接微调设置中,研究者们直接对下游任务进行微调,不经过指导微调阶段。

MoLA旨在对下游任务进行LLMs微调,研究者们评估了包括自然语言处理(NLP)任务和常识推理(CR)任务在内的多个数据集。这包括:

  • Microsoft’s Research Paraphrase Corpus (MRPC):用于判断句子对是否为同义句。
  • Recognizing Textual Entailment (RTE):用于判断句子间是否具有蕴含关系。
  • Corpus of Linguistic Acceptability (COLA):用于判断英语句子是否符合语法规范。
  • ScienceQA:用于评估模型对科学知识的理解和常识推理能力。
  • CommonsenseQA 和 OpenbookQA:用于评估常识推理能力。

MoLA与三种参数高效微调方法进行了比较:prompt tuning、LLaMA-Adapter和LoRA。还评估了全参数微调的性能。

实验使用了LLAMA2-7B作为基础语言模型。在指导微调设置中,对采样的指导微调数据集进行了3个epoch的训练。在两种设置中,对下游任务微调的epoch数量进行了网格搜索,包括10、15和20个epoch。优化器采用AdamW,学习率为3e-4,截断长度设为256,批量大小为128。

Table 1 展示了直接微调设置的结果,其中MoLA-▽在所有基准测试中均优于其他变体或基线,即使在参数数量减少近40%的情况下,也能与MoLA-□ (8888) 竞争或表现得更好。

Table 2 展示了指导微调及下游微调设置的结果,MoLA-▽在所有数据集上均显著优于LoRA,显示出MoLA在传递学习能力方面的优势。

研究者们观察到在更高层次分配更多的LoRA专家可以带来更多的性能提升。基于这一假设,他们进一步研究了不同层次专家的冗余性。Figure 3 展示了通过抽样指导微调数据集训练的MoLA-□(8888)和MoLA-□(5555)模型中,每层自注意力模块中任意两个不同LoRA专家的权重矩阵之间的Frobenius范数平均值。从图中可以看出,从较低层次到更高层次,专家之间的平均Frobenius范数逐渐增加,表明较低层次的专家相似度更高,因此冗余性更大。这一发现支持了研究者的假设,即在总专家数量一定的情况下,为更高层次分配更多的专家可以更有效地提高模型性能。

研究者们还分析了每层专家的平均路由权重和被选择次数。分析显示,大多数专家被选择进行类似的工作负载并得到了充分的利用。在具有相似选择权重和次数的情况下,较低层次由于专家间更相似而具有更高的专家冗余性,再次支持了研究者的论断。

研究者们还探讨了基于MoE的架构在持续学习环境下的表现。他们选择了ScienceQA数据集中训练样本最多的五个主题:生物学、物理学、化学、经济学和地球科学,对MoLAs进行了持续微调,并研究了在先前领域上的性能下降情况。根据Chaudhry等人(2018)的方法,他们计算了整体性能(OP):

其中,t 是领域数量,R_t,i​ 表示在连续训练领域t后模型在领域i上的准确率。他们还提出了一个性能下降分数来衡量领域遗忘,通过计算持续学习过程中的性能下降来得出,如下所示:

Table 3 展示了在持续学习环境中不同MoLA模型的整体性能和性能下降分数。结果显示,MoLAs能够实现比LoRA更好的整体性能。特别是,MoLA-▽通过具有-0.47的性能下降分数显示出避免领域知识遗忘的优越能力,这与研究者们关于更高层次具有较少专家冗余的洞察一致。

通过这些分析和实验,研究者们进一步验证了MoLA模型的有效性,并展示了其在处理更复杂下游问题时的潜力。这些发现为未来LLMs的微调和优化提供了有价值的参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超分 Real-ESRGAN 使用笔记

效果图 目录 依赖项: 视频推理入口: 图片推理入口文件: RealESRGAN_x4plus 12g显存不够 RealESRGAN_x4plus_anime_6B 的效果 树枝之间产生了蒙版 RealESRNet_x4plus 有点模糊 2022年开源的 GitHub - xinntao/Real-ESRGAN: Real-ESRGAN aims at developing Practical…

操作系统 --王道计算机考研--学习笔记

文章目录 前言第一章 引言1.1 什么是操作系统?1 操作系统作为虚拟机2 操作系统作为资源管理者3 为上层提供服务-- 系统调用 2.操作系统特征与发展分类2.1 操作系统特征1.并发2.共享3.虚拟4.异步 2.2 操作系统发展和分类 3.操作系统的的运行机制和中断异常、系统调用…

vue脚手架的创建

一、安装node环境 切换阿里云镜像 npm config set registry https://registry.npm.taobao.org 2、全局安装vue-cli和webpack 已经安装过node.js之后和淘宝镜像的话,vue的运行环境基本上就搭建好了,只需再安装全局的webpack(命令行&#…

【大模型理论篇】RoPE旋转位置编码底层数学原理分析

1. 位置编码对于NLP模型的作用 位置编码(Positional Encoding)在大模型(例如Transformer架构)中起到了非常重要的作用。没有位置编码的信息,模型会丧失序列的顺序信息,导致模型退化成一个简单的“词…

物品租赁​​​​​​​|基于SprinBoot+vue的物品租赁​​​​​​​系统(源码+数据库+文档)

物品租赁系统 基于SprinBootvue的物品租赁系统 一、前言 二、系统设计 三、系统功能设计 5.1 系统功能模块 5.2 管理员功能模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大…

【单片机原理及应用】实验:数码管的中断控制

目录 一、实验目的 二、实验内容 三、实验步骤 四、记录与处理 五、思考 六、成果文件提取链接 一、实验目的 掌握外部中断的工作原理,学习中断编程与程序调试方法。 二、实验内容 【参照图表】 (1)创建一个包含80C51固件,采用…

汽车乘客热舒适度大挑战,如何利用仿真技术提高汽车环境舒适度

舒适性在人们选择汽车的决定性方面占比越来越重,而汽车乘员舱环境的舒适性是指为乘员提供舒适愉快便利的乘坐环境与条件,包括良好的平顺性、车内的低噪声、适宜的空气环境以及良好的驾驶操作性能。 舒适性 经济性 安全性、动力性 典型的乘员舱热舒适性模…

git常见命令行及分支规范

文章目录 GIT常见命令行原理图基本设置初始化和克隆仓库文件管理提交更改查看状态和历史分支管理远程仓库交互高级功能GIT常见分支风格1. 单一主干分支(Single Main Branch)//极少使用优点:缺点:2. 多主干分支(Multiple Main Branches)//个人小型项目采用优点:缺点:3. …

OpenCV Jet颜色映射和HSV颜色空间对比

目录 一、概述 二、Jet颜色空间映射 2.1优势 2.2颜色变化范围 2.3应用场景 三、HSV 颜色空间 3.1优势 3.2颜色分布 3.3应用场景 四、Jet与HSV区别 4.1对比总结 4.2选择建议 OpenCV图像处理与应用实战算法汇总地址: OpenCV 图像处理应用实战算法列表汇总…

H264编码原理(二)帧内预测

假设你去了一家餐厅吃饭,这家餐厅提供了一个有趣的点餐方式。服务员会根据餐厅最近最受欢迎的菜品组合,推荐九个套餐给你。你的任务是从这九个套餐中找到一个最接近你心中想要的菜品组合的套餐,然后告诉服务员你想替换哪些菜,以得…

PS快速如何抠图章?

1、选择--色彩范围--颜色选择(反相)--确定 2、选中范围后--按delete删除非选中内容--就能得到图章 3、图层叠加来加深颜色和补全缺失点

合宙低功耗4G模组Air780EQ——开发板使用说明

CORE-AIR780E 开发板是合宙通信推出的基于 Air780E 模组所开发的, 包含电源,SIM 卡,USB,天线,音频等必要功能的最小硬件系统。 以方便用户在设计前期对Air780E模块 进行性能评估,功能调试,软件…

Python__面向对象__多态学习

目录 一、多态 1.多态定义理解 2.实例属性和类属性 3.类相关的函数 (1) 实例方法 (2)类方法 (3)静态方法 一、多态 1.多态定义理解 在Python中,多态是一种特性,类似于一个接口,允许在一个对象中的一个操作可作用在不同类型的对象上…

OpenGL3.3_C++_Windows(36)

PBR_IBL镜面部分 镜面部分并不能像漫反射部分一样将BRDF部分像常量一样提取出来,因为它整个积分上不是常数,因为它受到wi和w0的影响,就比如一个x的等式,不能把x部分提取出来一样,他是随着等式变化的如果试图解算所有入…

uni-app开发日志:将schema2code生成的新增页和修改页整合成一页

有没有想过,add和edit页面其实没多大差别? 我之前自研的系统add和edit都是一个页面,只要判断一下当前有没有id传递来,为空来就是新增。 这样如果页面修改时,才能尽量少改动代码,少出错。 对比add.vue和edit…

企业海外新闻稿发布的转型之路:从纸媒到数字化

在全球化进程加速的今天,企业的传播渠道和方式也在经历着深刻的变革。曾经占据主导地位的纸质媒体,逐渐被灵活高效的海外媒体网站所取代。企业新闻稿发布形式的转变,不仅体现了技术进步和媒体环境的变化,也标志着企业全球传播战略…

日结兼职零工平台小程序系统开发制作方案

目前在大学生和自由职业者群体中,对短期兼职零工的需求日益增长。同时,企业与个人雇主也面临着季节性和临时性用工的需求。 日结兼职零工小程序系统为寻求日结工作的求职者和需要短期劳动力的企业提供一个快速匹配的平台。实现快速发布日结兼职工作信息…

5年经验社招后端面试经历分享

这是一位读者去年的面经,他在 2023 年在百度毕业,后面拿到了快手、滴滴和京东的 offer,最终选择了京东,薪资总包是 51w。 下面是正文。 背景介绍 大家好,本人 2018 年毕业于一所普通 211 学校,专业是软件…

【Redis】Redis 的消息队列 List、Streams—(六)

目录 一、消息队列二、List 方案三、Streams 方案 一、消息队列 我们一般把消息队列中发送消息的组件称为生产者,把接收消息的组件称为消费者,下图是一个通用的消息队列的架构模型: 消息队列在存取消息时,必须要满足三个需求&…

基于yolov10的PCB检测算法研究

内容:项目将YOLOV10创新后的PCB检测算法成功部署到GD32H757上,实现PCB缺陷的工业产线实时检测。 项目主要支持开源代码:HomiKetalys/gd32ai-modelzoo: Provide deployable deep learning models on gd32 (github.com) (想了解将…