论文题目:OLMoE: Open Mixture-of-Experts Language Models
论文链接:
Weights:
Data:
Code:
Logs:
论文开源了OLMoE-1B-7B和OLMoE-1B-7B-INSTRUCT,包括模型、数据、代码和日志。OLMOE-1B-7B领有7B参数,但每个输入token仅经常使用1B参数。论文在5T token上对其启动预训练,并进一步Adaptation以创立OLMoE-1B-7B-INSTRUCT。
论文的模型在一切具备相似生动参数的可用模型中体现最佳,甚至逾越了Llama2-13B-Chat和DeepSeekMoE-16B等更大模型。
论文分享了各种训练试验,并定义和剖析了路由器饱和度、专家协同激活、畛域和词汇专业化。经过论文的齐全开源颁布,论文宿愿协助该畛域构建更好的专家混合模型。论文对OLMoE的新迭代感到兴奋,以增加前沿模型与齐全开源模型之间的差距。
图1:开明式MoE和密集LMs的性能、老本和开明水平。模型称号蕴含四舍五入的参数计数:MoE为model-active-total,密集LMs为model-total。#ckpts是可用的两边审核点数量。论文突出显示MMLU作为全体性能的总结;更多结果见S3。OLMOE-1B-7B在具备相似生动参数计数的模型中体现最佳,是最开明的MoE。
二、论文的便捷引见
2.1 论文的背景
高性能的言语模型对许多学者和开源开发者来说是很难接触,由于它们的构建和部署老本过高。改善老本色能掂量的一种方法是经常使用稠密激活的专家混合(Mixture-of-Experts,MoEs)模型。MoEs在每一层都有多个专家,每次只激活其中的一个子集(见图2)。这使得MoEs比具备相似总参数数量的密集模型愈加高效,由于密集模型须要为每个输入激活一切参数。出于这个要素,行业前沿模型经常使用MoEs,包括Gemini-1.5和据报道的GPT-4。
但是,大少数MoE模型都是闭源的:虽然有些模型地下颁布了模型权重,但它们提供的关于训练数据、代码或配方的消息有限或没有(见图1)。虽然之前有一些致力使言语建模钻研齐全可访问,但它们关键局限于密集LMs。这种状况产生的要素是,MoEs须要更多的开明性,由于它们为LMs参与了复杂的新设计疑问,例如经常使用多少总参数与生动参数,是经常使用多个小专家还是少数大专家,专家能否应该共享,以及经常使用什么路由算法。缺乏关于这些细节的开明资源和发现,阻碍了该畛域构建凑近闭源前沿模型才干的高效开明MoEs。
为了处置这些疑问,论文引入了OLMOE,一个齐全开明的专家混合言语模型,在等同规模的模型中具备最先进的性能。详细来说,论文预训练了OLMOE-1B-7B,总共训练了5.1T token,总参数为6.9B,其中只要1.3B参数为每个输入token激活。这造成推理老本与经常使用约1B参数的密集模型(如OLMo 1B或TinyLlama 1B)相似,但须要更多GPU内存来存储其7B总参数。
论文的试验标明,MoEs的训练速度比具备相反生动参数数量的密集LMs快约2倍。在图1中,论文展现了OLMOE-1B-7B清楚优于一切开明的10亿参数模型,并展现出与推理老本和内存存储清楚更高的密集模型相当的性能(例如,在MMLU评分上与Llama2-13B相似,后者的老本约为前者的10倍)。经过指令和偏好微调,论文创立了OLMOE-1B-7B-INSTRUCT,论文发现它在经常出现基准测试(MMLU、GSM8k、HumanEval等)上超越了各种更大的指令模型,包括Llama2-13B-Chat、OLMo-7B-Instruct (0724)和DeepSeekMoE-16B。
论文片面的对如试验突出了MoEs(见表1)和LMs的关键设计选用。使MoEs性能杰出的一个关键设计决策是经常使用细粒度路由和细粒度专家:论文在每层经常使用64个小专家,其中8个被激活。路由算法的选用也很关键:论文发现无摈弃的基于token的路由优于基于专家的路由。论文的发现还包括一些应战先前上班的结果,例如共享专家的有效性,以及将预训练的密集LM稠密地更新为MoE的有限优势,除非在小规模计算估算下。最后,论文剖析了OLMOE-1B-7B的路由行为,发现路由在预训练早期就饱和了,专家很少被独特激活,并且专家体现出畛域和词汇专门化。
图2:密集型言语模型(LMs)与OLMoE等MoE模型的架构对比。图中省略了一些细节,例如,OLMOE-1B-7B还经常使用了QK-Norm。
表1: MoE的关键设计选用及基于论文试验的OLMOE-1B-7B设置
表2:OLMOE-1B-7B预训练数据的组成。StarCoder、peS2o和Wikipedia局部来自Dolma 1.7 。
表3:OLMOE-13.7的Adaptation训练数据。
2.2 预训练和Adaptation(Pretraining and Adaptation)
预训练架构 OLMOE是一个仅有解码器的言语模型,由NL个transformer层组成。在像OLMo这样的密集模型中的前馈网络(FFN)被交流为一个MoE模块,该模块由NE个较小的FFN模块组成,这些模块被称为专家。关于每个处置的输入token x,会激活其中的k个专家子集(另见图2):
其中 r,称为路由器,是一个从输入logits映射到所选 k 个专家的学习线性层。softmax运行于路由器输入,以计算一切 N_E个专家的路由概率。每个选定的专家 E_i 处置输入 x,其输入随后与其相应的路由概率相乘。而后将一切选定的Top- k 专家的结果相加以造成MoE模块的输入,该模块是模型 N_L层中的一层。设计MoE模型的关键决策包括确定激活和总参数的数量、专家的设计(例如,粒度,能否蕴含共享专家)以及路由算法的选用。此外,训练MoE模型或许触及从密集模型(稠密更新)初始化并更改训练指标,例如包括辅佐负载平衡和路由z-losses;表1显示了论文的最终决策。
总结来说,论文经常使用了总共6.9B参数中的1.3B生动参数,每层激活了8个专家,总共64个专家。论文驳回了无摈弃的token选用路由[58]:关于每个输入token,学习到的路由网络选择由8个专家来处置。论文从零开局训练OLMOE-1B-7B,经常使用了两个辅佐损失:负载平衡损失( L_LB) 和路由z-损失( L_RZ) 。论文将它们区分乘以各自的损失权重alpha和beta,并与交叉熵损失(L_CE )线性相加,获取最终的训练损失:
OLMOE-1B-7B的完整预训练性能在附录B中。
预训练数据 论文经常使用了来自DCLM [89]和Dolma 1.7 [161]的混合数据,包括以下内容:
(1) 经过品质过滤的Common Crawl子集,称为DCLM-Baseline;
(2) 在DCLM和Dolma 1. 7中都经常使用的StarCoder、Algebraic Stack和arXiv;
(3) 来自Dolma 1.7的peS2o和Wikipedia。论文将预训练数据集称为OLMOE-MIX。
关于上述一切起源,论文运行了一个过滤器,移除一切蕴含32个或更多重复n-gram的文档,其中n-gram是恣意1到13个token的跨度。关于StarCoder子集,论文还移除了任何来自GitHub上少于2颗星的仓库的文档,或许其最频繁词占据文档超越30%的内容,或许其前两个最频繁词占据文档超越50%的内容。
论文在每个epoch开局时随机打乱一切样本,并总共训练5.133T个token(依据Muennighoff等人[120]的方法,训练1.3个epoch)。在论文的退火阶段(最后100B个token),论文首先从新打乱整个数据集,而后依照先前的上班64, 89,将学习率线性衰减到0。论文的预训练数据统计如表2所示。
Adaptation(Adaptation) 论文经过遵照规范的Adaptation配方创立了OLMoE-1B-7B-INSTRUCT,该配方分为指令微和谐偏好微调,基于先前的开源模型。在论文的指令微调数据集中,论文参与了更多的代码和数学数据,以优化下游编码和数学运行的性能。其余模型,如GPT-4和Llama 3,在预训练时期蕴含了来自GSM8k或MATH等数学数据集的样本。论文还蕴含了No Robots和Daring Anteater的一个子集,由于它们品质高且参与了多样性,这是完成Adaptation的两个关键要素。论文在表3中形容了论文的Adaptation数据集。
2.3 结果
论文的评价程序包括三个局部:预训练时期、预训练后和Adaptation后(After adaptation)。
图3: OLMOE-1B-7B和最佳OLMo模型在预训练时期的评价。OLMOE-1B-7B与OLMo模型在MoE架构、几个训练超参数和训练数据集方面有所不同。更多结果、日志和性能:
预训练时期(During pretraining) 在图3中,论文对比了OLMOE-1B-7B在预训练时期与最佳OLMo模型在罕用下游义务上的性能体现。论文发现,在一切义务中,OLMOE-1B-7B都以更少的计算量(FLOPs)到达了比密集OLMo模型更好的性能。
虽然OLMOE-1B-7B在训练中经常使用的FLOPs不到一半,且只经常使用了1B的生动参数,但在训练完结时,它的体现与OLMo-7B相当或更优。这或许是由于论文对OLMo设置启动的数据集和建模变卦,包括MoE关系的扭转、稳固性和性能改良,这些在附录B中有详细说明。
表4: 预训练后的OLMOE-1B-7B与更大的MoEs和密集LMs的比拟。论文将其与在生动参数(1B,近似速度和老本)或总参数(7B,近似内存需求)上与OLMOE-1B-7B相似的密集LMs启动比拟。模型称号蕴含四舍五入的参数计数:MoEs的格局为model-active-total,密集LMs的格局为model-total(这造成与官网称号有些差异,例如,虽然被称为"Gemma2-2B",但它实践上有26亿生动和总参数[175])。Chall. = Challenge(应战)。论文自己经常使用5个少样本示例启动一切评价
预训练后(After pretraining) 在表4中,论文对OLMoE-1B-7B在经常出现的下游义务上启动了基准测试。论文发现,在经常使用的生动参数少于2B的模型中,OLMoE-1B-7B体现最佳,使其成为许多言语模型经常使用场景中最经济的选用。对估算更大的状况,Qwenl.5 3B-14B的性能更强,但其生动参数和总参数数量是OLMoE-1B-7B的两倍以上。论文发现,虽然每次前向传递所需的计算量增加了6-7倍,OLMoE-1B-7B仍优于一些具备7B参数的密集模型,如Llama2-7B ,但在其余模型如Llama3.1-8B背地稍显无余。图1比拟了OLMoE-1B-7B与其余言语模型在MMLU性能与生动参数(作为模型老本的代理)上的体现。OLMoE-1B-7B在其老本范围内处于上游位置。
Adaptation后(After adaptation) 在表5中,论文基准测试了OLMoE-1B-7B的指令(SFT)和偏好(DPO)调优。SFT在一切测量的义务上优化了论文的模型性能。论文在GSM8k上观察到>10×的增益,这或许归因于论文在预训练时期参与了额外的数学数据,以补偿相对较少的数学数据(S2)。DPO在大少数义务上都有协助,尤其是在AlpacaEval上,这与先前的上班[186,75,121]中的发现分歧。
论文的DPO模型,论文称之为OLMoE-1B-7B-INSTRUCT在一切基准模型中具备最高的平均分。论文发现它优于Qwen1.5-3B-14B的聊天版本,虽然Qwen的参数量超越2倍,并且在表4中其预训练模型优于OLMoE-1B-7B。在AlpacaEval上的84%得分也优于排行榜上更大的密集模型,例如Llama2-13B-Chat。
表5:OLMOE-1B-7BAdaptation后与其余模型的比拟。论文发现JetMoE聊天模型( )存在疑问,造成随机评分,因此论文将其扫除。称号蕴含四舍五入的参数计数:模型-生动-总参数(关于MoEs)和模型-总参数(关于密集LMs)。论文自行运转一切评价。模型经常使用不同的Adaptation混合,例如,OLMoE是在用于OLMo模型的改良管道上训练的。
本文转载自,作者: