Lory: 推进大型语言模型训练的新篇章

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

随着模型规模的增长,如何有效训练并利用这些模型成为了一个挑战。陈丹琦团队一项新的研究提出了一种创新的预训练方法——Lory,旨在解决大模型在混合专家(MoE)架构中的可微分性和计算效率问题。Lory通过专家合并技术,实现了模型的完全可微分,并通过因果段路由和基于相似性的数据批处理策略,显著提高了训练效率和模型性能。这项工作不仅推动了大模型的研究边界,也为未来更高效、更强大的AI系统的发展奠定了基础。

方法

Lory方法提出了一种可微分的MoE(Mixture of Experts)架构,专门为自回归语言模型设计。这一架构的核心在于专家合并技术,该技术允许模型在保持自回归特性的同时进行有效的训练。Figure 1展示了Lory的整体架构,其中包括两个关键技术:因果段路由策略和基于相似性的数据批处理方法。

因果段路由策略是Lory方法的首个关键技术。这一策略的核心思想是在处理语言模型时,不是对每个标记单独进行专家合并,而是在段级别上进行。这样做的好处是显著减少了合并操作的次数,从可能的L次减少到N次,其中N是将输入序列分割成的段的数量。这种策略不仅减少了计算量,而且通过仅使用前一段的信息来指导当前段的专家合并,有效地防止了信息泄露的问题。在Figure 1中,每个段的专家合并都是基于前一段的平均隐藏表示来计算的,这种设计确保了模型的自回归特性得以保持。

基于相似性的数据批处理方法是Lory方法的第二个关键技术。这一方法的目的是通过构建具有高相似性的段来提高专家在特定领域的专业化能力。在传统的数据批处理方法中,文档通常是随机连接的,这可能导致相邻段之间的标记来自完全不同的文档,从而影响了专家的专业化。Lory方法通过顺序连接相似的文档来构建训练实例,这种方法鼓励了相邻段之间的高相似性,使得专家能够更加专注于特定的领域或主题。在Figure 1基于相似性的数据批处理方法的示意图中,其中相似的文档被有意识地组合在一起,形成了具有高相似性的段,从而促进了专家的专业化。

通过结合这两个关键技术,Lory方法不仅提高了训练效率,还增强了模型在特定领域的专业化能力。

想要掌握如何将大模型的力量发挥到极致吗?2024年10月26日叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。

留言“参加”即可来叶老师的直播间互动,1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

实验

实验设置

模型:实验中训练了两种规模的解码器仅Transformer模型,分别含有0.3B和1.5B个活跃参数。对于每个FFN层,用具有相同架构的MoE层替换,其中E代表专家的数量,取值为8、16或32。模型配置和总参数计数详见附录D。所有模型使用4096-token的上下文窗口进行训练,并且采用因果段路由策略,每段长度设置为T=256。

训练细节:使用AdamW优化器进行训练,其中β1=0.9和β2=0.95,学习率设置为2e-4,并采用余弦学习率调度器。所有模型的批量大小为100万个token。采用ZeRO优化进行分布式训练。训练初期,使用与参数匹配的密集模型,并复制FFN层作为MoE模型的初始化。实验中,使用前5%的训练步骤作为预热来初始化MoE权重。此外,对学习率调度器的前5%训练步骤应用线性预热。训练过程中使用了多达64个A100 GPU。

训练数据集:从Commoncrawl数据集中随机抽取150亿个token作为训练数据。使用基于相似性的数据批处理方法构建所有训练实例。

评估数据集:在从arXiv、Books、Wikipedia、C4和Python代码(Github的Python子集)中抽取的保留评估数据集上,通过测量训练模型的困惑度来评估所有模型在语言建模任务上的性能。每个评估数据集包含1K个样本,每个样本由4096个token组成。此外,还在下游任务中评估了模型的性能,包括常识推理、阅读理解、闭卷问答和文本分类。

结果

训练效率和收敛性:Figure 2(左)展示了密集模型和具有不同模型大小的MoE模型的训练损失曲线。首先,可以发现在相同的训练token数量下,Lory模型明显比密集模型基线有更好的训练损失。对于0.3B和1.5B模型,具有32个专家的模型在训练token数量不到一半的情况下达到了相同的损失水平。这表明Lory方法在相同的训练计算量下实现了更好的性能。还观察到,使用更多的专家可以获得更多的改进。

语言建模:在语言建模任务上的评估表明,MoE模型一致性地优于密集基线,显著降低了所有领域的困惑度。例如,0.3B/32E模型在Books上的困惑度比0.3B密集模型提高了13.9%。值得注意的是,在与训练数据不同的测试领域(例如Python)中,改进最为显著,这表明了强烈的专家专业化,这在第5节中进一步探讨。

下游任务:Table 1展示了模型在下游任务上的性能。可以观察到在所有任务上都有显著的性能提升。例如,0.3B/32E模型在常识推理上平均提高了3.7%,在阅读理解上提高了3.3%,在闭卷问答上提高了1.5%,在文本分类上提高了11.1%。

消融研究和分析

在前缀路由策略中,仅根据第一个段来执行整个序列的专家合并,然后使用合并的FFN来处理序列的其余部分,而不再进行更新。Figure 3显示,仅使用前缀进行路由会导致性能大幅下降,与因果段路由相比,后者在每个段级别上提供更强大的训练信号,从而获得更好的性能。

为了研究基于相似性的数据批处理方法的重要性,比较了使用和不使用这种方法的MoE模型相对于密集模型的性能提升。Figure 4(左)展示了使用相似性批处理(sim batch)和随机批处理(rand batch)数据的密集(0.3B)和MoE模型(0.3B/8E)的训练损失。在两种设置中,MoE模型均优于密集模型。然而,使用相似性批处理时,损失改进(即密集模型和MoE模型之间的损失差异)更大,并且随着训练数据的增加,这种效果更加明显(Figure 4(右))。这些结果强烈支持了基于相似性批处理对于有效训练MoE模型的重要性。

将Lory方法与现有的Expert Choice (EC) MoE方法进行了比较,EC方法通过让每个专家根据路由权重选择top-k输入来确保训练期间的均衡负载。在推理期间,为了避免利用全局信息进行路由,每个标记被路由到top-k专家中。Figure 5展示了Lory方法与EC方法(包括段级别和标记级别路由)的训练损失曲线。Lory方法在相同的路由设置下显著优于段级别的EC,表明完全可微分的架构比使用相同路由策略的稀疏MoE更有效。与标记级别的EC模型相比,尽管Lory使用方法使用段级别路由且不需要任何高级训练技术,但Lory取得了有竞争力的结果。这些结果突出了Lory方法的显著潜力。

在分析中还探讨了专家利用率和专业化问题。利用率方面,尽管没有使用任何辅助损失来平衡负载,Lory方法仍然能够实现高专家利用率,防止MoE模型退化为密集模型。专业化方面,通过研究0.3B/8E模型在不同层的平均路由权重,发现即使在没有额外的领域级监督的情况下,训练出的MoE模型中也存在清晰的领域级专家专业化。例如,第11层的专家7专门处理arXiv领域的输入。此外,还观察到arXiv和Python代码的路由权重更为相似,而与Books和Wikipedia的相似度较低,这可能是因为LaTex代码和Python代码与自然语言的差异较大。

Figure 6 展示了0.3B/8E模型在不同领域(Books、arXiv、Python、Wikipedia)上的第0层、第11层和第23层的平均路由权重。观察到MoE模型中的专家学习到了领域级专业化,尤其是在中间和更高层次的层中。

随着未来研究的深入,这种方法有望在更广泛的应用场景中发挥重要作用,为人工智能领域带来新的突破。

https://arxiv.org/pdf/2405.03133

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

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

相关文章

主机加固的关键要素:服务器防病毒

在数字化浪潮中,网络安全已成为企业不可忽视的一环。尤其是安全运维人员,他们肩负着保护企业数据不受侵害的重任。MCK主机加固解决方案,正是为了应对这一挑战而生。 网络安全的严峻现实 不久前,一家知名企业因勒索病毒攻击而被迫…

2024 kali虚拟机安装教程,分两大步骤,图文讲解(1)

第二步链接: 2024 kali虚拟机安装教程,分两大步骤,图文讲解(2)-CSDN博客 准备工作 1.kali的iso镜像文件 2.VMware Workstation Pro 虚拟机软件 正式开始 1.创建新的虚拟机,勾选自定义(高级…

ssm基于SSM框架的餐馆点餐系统的设计+VUE

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 摘要 I Abstract II 1绪论 1 1.1研究背景与意义 1 1.1.1研究背景 1 1.1.2研究意义 1 1.2国内外研究…

【AGC005D】~K Perm Counting(计数抽象成图)

容斥原理。 求出f(m) ,f(m)指代至少有m个位置不合法的方案数。 怎么求? 注意到位置为id,权值为v ,不合法的情况,当且仅当 v idk或 v id-k 因此,我们把每一个位置和权值抽象成点 ,不合法的情况之间连一…

Docker容器简介及部署方法

1.1 Docker简介 Docker之父Solomon Hykes:Docker就好比传统的货运集装箱 2008 年LXC(LinuX Contiainer)发布,但是没有行业标准,兼容性非常差 docker2013年首次发布,由Docker, Inc开发 1.1.1什么是Docker Docker是管理容器的引…

数据结构-LRU缓存(C语言实现)

遇到困难,不必慌张,正是成长的时候,耐心一点! 目录 前言一、题目介绍二、实现过程2.1 实现原理2.2 实现思路2.2.1 双向链表2.2.2 散列表 2.3 代码实现2.3.1 结构定义2.3.2 双向链表操作实现2.3.3 实现散列表的操作2.3.4 内存释放代…

Java后端面试----某团一面

美团一面 1.介绍一下你的第一个项目 这个就不多说了,主要是根据自己的简历上面的项目进行一个简短的概括使用的技术栈和什么背景解决了什么问题等等。 2.线程安全的类有哪些,平时有使用过哪些,主要解决什么问题 在Java中线程安全的类比如…

vue使用table实现动态数据报表(行合并)

<template><div class"previewTable"><h2>***项目研发数据报告</h2><table id"previewTable" width"100%"><tr><th>项目名称</th><td colspan"6">{{ resultData.proName }}<…

【D3.js in Action 3 精译_030】3.5 给 D3 条形图加注图表标签(下):Krisztina Szűcs 人物专访 + 3.6 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

一键将表格嵌入ppt作为附件!2个做ppt必知的技巧分享!

怎样把表格作为附件放入ppt&#xff1f; 众所周知&#xff0c;微软推出的Office套件包含了Powerpoint和Excel这两款软件&#xff0c;如果想在Powerpoint中插入表格&#xff0c;且表格数据量比较大&#xff0c;此时最好的呈现方式&#xff0c;是在Excel中来展示这些数据&#x…

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题 一句话省流&#xff1a; 确保项目地址没有任何中文&#xff0c;重新申请个许可证&#xff0c;然后该咋就咋&#xff0c;完事。 ——————————————————————————————…

华为云应用侧Android测试APP

05.华为云应用侧Android测试APP 本APP在填写或修改部分参数后能够完成token获取&#xff0c;影子消息读取&#xff0c;命令下发。APP共包含三个界面&#xff1a;主界面获取token、影子消息获取界面、命令下发界面。 实现过程参见&#xff1a;华为云应用侧Android Studio开发-…

企业如何制定适合自己的专利布局策略

在竞争激烈的市场环境中&#xff0c;专利布局对于企业的发展和竞争优势的建立至关重要。以下将分要点解析企业如何制定适合自己的专利布局策略。 1、明确企业的发展战略和市场定位 企业首先需要深入了解自身的长期发展规划和短期业务目标。明确是要通过技术创新来开拓新市场&am…

微服务之间的相互调用的几种常见实现方式对比

目录 微服务之间的相互调用的几种实现方式 一、HTTP HTTP/RESTful API调用工作原理 二、RPC 设计理念与实现方式 协议与传输层 RPC远程调用工作原理 应用场景与性能考量 特点 三、Feign 设计理念与实现方式 协议与传输层 Feign调用的基本流程 Feign调用的工作原理…

python爬虫 - 深入requests模块

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、下载网络文件 &#xff08;一&#xff09;基本步骤 &#xff08;二&…

Windows下MYSQL8.0如何恢复root权限

误操作把root权限清掉导致数据库无法登录&#xff08;确实很难受&#xff09;&#xff0c;在网上找了很多方法&#xff0c;发现没有很行之有效的方法&#xff0c;在多方尝试终于找到了适合敏感宝宝体质的方法。 C:\Users\Administrator>mysql -u root -P3307 ERROR 1045 (2…

数据结构——遍历二叉树

目录 什么是遍历二叉树 根据遍历序列确定二叉树 例题&#xff08;根据先序中序以及后序中序求二叉树&#xff09; 遍历的算法实现 先序遍历 中序遍历 后序遍历 遍历算法的分析 二叉树的层次遍历 二叉树遍历算法的应用 二叉树的建立 复制二叉树 计算二叉树深度 计算二…

Redis 高可用方案

Redis 高可用性&#xff08;High Availability&#xff09;是指在 Redis 系统中实现持续的可用性&#xff0c;即使在发生硬件故障或其他意外情况下&#xff0c;系统仍能保持运行。 1 常用方案 为了实现 Redis 的高可用性&#xff0c;以下是几种常用方案&#xff1a; 1.1 使用…

小猿口算自动PK脚本

大家好&#xff0c;我是小黄。 近期&#xff0c;众多大学生炸鱼小猿口算APP,把一众小学生都快虐哭了&#xff0c;小黄听闻后&#xff0c;也跃跃欲试。对此小黄也参考网上的资料写了一个自动Pk的脚步。 首先大家需要安装一个pytorch环境过程中&#xff0c;如果小伙伴对此不熟悉的…

软考《信息系统运行管理员》- 4.3 信息系统软件运维的过程

4.3 信息系统软件运维的过程 文章目录 4.3 信息系统软件运维的过程日常运维日常运维的内容日常运行例行测试维护例行测试流程的关键点例行维护流程的关键点 定期测试维护 缺陷诊断与修复信息系统软件缺陷的概念信息系统软件缺陷的分类信息系统软件缺陷诊断与修复流程缺陷诊断与…