第一个%开源的大模型,的参数,的推理成本
机器之心报道
机器之心编辑部
训练代码、中间checkpoint、训练日志和训练数据都已经开源。
尽管大语言模型(LM)在各种任务上取得了重大进展,但在训练和推理方面,性能和成本之间仍然需要权衡。
对于许多学者和开发人员来说,高性能的LM是无法访问的,因为它们的构建和部署成本过高。改善成本-性能的一种方法是使用稀疏激活混合专家(MoE)。MoE在每一层都有几个专家,每次只激活其中的一个子集(参见图2)。这使得MoE比具有相似参数量的密集模型更有效,因为密集模型为每个输入激活所有参数。
出于这个原因,行业前沿模型包括Gemini-1.5、GPT-4等在内的模型都使用了MoE。
然而,大多数MoE模型都是闭源的,虽然有些模型公开发布了模型权重,但有关训练数据、代码等的信息却很有限,甚至有些研究没有提供这些信息。由于缺乏开放资源和对研究细节的深入探索,在MoE领域无法构建具有成本效益的开源模型,从而接近闭源前沿模型的能力。
为了解决这些问题,第一个%开源的大模型,的参数,的推理成本来自艾伦人工智能研究院、ContextualAI等机构的研究者引入了OLMoE,这是一个完全开源的混合专家语言模型,在类似大小的模型中具有SOTA性能。
特别的,该研究使用5.1万亿个token预训练了OLMoE-1B-7B模型,该模型总共拥有69亿参数,其中每个输入token只激活13亿参数。
结果是与使用具有约1B参数的密集模型(例如OLMo1B或TinyLlama1B)实现了类似的推理成本,只是需要更多的GPU内存来存储约7B的总参数。实验表明,MoE的训练速度比具有等效激活参数的密集LM快2倍左右。
如图1所示,OLMoE-1B-7B显著优于所有开源1B模型,并且与推理成本和内存存储明显更高的密集模型相比表现出了竞争力。
通过指令和偏好调优,该研究还创建了OLMoE-1B-7B-INSTRUCT,它在常见基准MMLU、GSM8k、HumanEval等上超越了各种更大的指令模型,包括Llama2-13B-Chat、OLMo-7B-Instruct(0724)和DeepSeekMoE-16B。
受控实验强调了MoE(见表1)和一般LM的关键设计选择。结果表明使MoE性能卓越的一个关键设计决策是使用细粒度路由和粒度专家(granularexperts):在每一层使用64个小专家,其中8个被激活。
此外,路由算法的选择也很重要:该研究发现无丢弃(dropless)基于token的路由优于基于专家的路由。最后,该研究分析了OLMoE-1B-7B中的路由行为,发现路由在预训练的早期就饱和了,专家很少被共同激活,并且专家表现出领域和词汇的专业化。
最后,作者希望这个完全开源的MoE能够促进更多研究和分析,从而提高对这些模型的理解。训练代码、中间检查点(每5000step)、训练日志和训练数据都已经开源。
论文作者NiklasMuennighoff表示:OLMoE是第一个100%开源的混合专家LLM。
预训练与自适应
预训练架构
OLMoE是由N_L个transformer层组成的语言模型,仅包含解码器。对于OLMo这样的密集模型,原本模型中单一的前馈网络被N_E个小型前馈网络(专家)组成的混合专家网络所替代,对于每个输入tokenx,只有k个专家会被选中并被激活,负责处理这个输入。
预训练数据
训练数据方面,论文作者使用了来自两个不同来源的数据集:DCLM和Dolma1.7。这些数据集包括了多种类型的数据,比如网络爬取的数据、编程问题解答、数学问题解答和学术论文等。他们将这些数据混合起来,创建了一个名为OLMOE-MIX的新数据集。
下表中展示了预训练数据的组成:
对于数据的处理,论文作者使用了过滤器去除了包含太多重复token的内容、GitHub上星标少于2的项目以及某些词出现频率过高的文档。他们将在每轮训练开始前随机混洗数据,总计超过5万亿个token。在「退火」阶段(最后100B个token),他们首先重新混洗整个数据集,然后按照此前OLMo论文中的方法,将学习率线性衰减到0。
自适应
论文作者从指令调优和偏好调优两方面,基于之前的开放模型,构造了OLMoE-1B-7B-INSTRUCT。在指令调优集中,他们增加了更多的代码和数学数据,以提高模型在这些领域的性能。
GPT-4和Llama3在预训练阶段使用了像GSM8k或MATH这样的数学数据集的样本。按照这个思路,论文作者还添加了「NoRobots」和「DaringAnteater」的一个子集。这些数据集不仅质量高还更多样,这是拓展模型适应性的两个关键因素。
下表展示了OLMoE-1B-7B-INSTRUCT所使用的数据:
实验
该研究的评估程序由三部分组成:预训练期间、预训练之后和自适应之后。
预训练期间:如图3所示,该研究在预训练期间使用当前最佳OLMo模型在常用下游任务上对OLMoE-1B-7B的性能进行了基准测试。
研究团队发现,在所有任务中,OLMoE-1B-7B比密集OLMo模型以更少的计算量(FLOP)获得了更好的性能。尽管OLMoE-1B-7B使用了不到一半的FLOP进行训练并且仅使用1B个激活参数,但OLMoE-1B-7B在训练结束时可与OLMo-7B媲美,甚至优于OLMo-7B。
预训练之后:在表4中,该研究在常见的下游任务上对OLMoE-1B-7B进行基准测试。
研究发现OLMoE-1B-7B在使用少于2B个激活参数的模型中表现最好,使其成为许多LM用例中最经济的选择。
如果预算较大,Qwen1.5-3B-14B具有更强的性能,但其激活参数和总参数比OLMoE-1B-7B多一倍以上。
研究发现,尽管每条前向传播所需的计算量减少了约6-7倍,但OLMoE-1B-7B的性能优于一些具有7B参数的密集LM,例如Llama2-7B,但不如其他LM,例如Llama3.1-8B。上图1比较了OLMoE-1B-7B和其他LM的MMLU性能和激活参数,表明OLMoE-1B-7B是其成本范围内最先进的。
自适应之后:在表5中,该研究对OLMoE-1B-7B的指令(SFT)和偏好(DPO)调优进行了基准测试。SFT在所有测量任务上都改进了本文的模型。
DPO在大多数任务上都有帮助,尤其是AlpacaEval,这与先前研究的结果一致。DPO模型(称之为OLMoE-1B-7B-INSTRUCT)在所有基准测试模型中具有最高平均值。