每个token只需要5.28%的算力,精度就能全面对标Llama 3。
开源大模型,再添一位重量级选手——
来自浪潮信息的32专家MoE模型,源2.0-M32。
不仅拥有极高的回报投入比,而且全面开放,训练代码和模型权重都可任意下载,商业使用也免费、无需授权。
那么,这到底是怎样的一款模型?
1/19算力消耗,性能对标Llama 3
首先了解一下模型的基本信息,源2.0-M32模型采用MoE架构,专家数量为32,总参数量40B,激活专家数为2,激活参数量3.7B。
精度上,源2.0-M32在多个测评数据集上全面对标Llama3(70B,以下同),在MATH(数学竞赛)和ARC-C(科学推理)榜单还上超越了Llama3。
图片
举个例子,在求解一道中文数学题目时,源2.0-M32能够用中文进行完整、准确作答,而Llama3虽然能理解中文题目,但回答时还是用了英文。
而且看一下Llama3的答案,虽然前面的过程也没什么问题,但最终得到的结果错得离谱,硬生生把一堆整数的和算出了小数点。
图片
在实现与业界领先开源大模型性能相当的同时,在模型的训练、推理和微调过程中,源2.0-M32的资源消耗也都显著更低。
在训练阶段,使用2万亿token对源2.0-M32进行预训练,计算量只有同参数规模稠密模型的9.25%。
图片
在推理阶段,在达到相当精度的条件下,源2.0-M32平均每个token消耗的算力为7.4GFLOPS,Llama3则需要140GFLOPS,前者的消耗仅为后者的1/19,即5.28%。
换言之,源2.0-M32每Token算力下的平均精度是Llama3的18.8倍,拥有更高的模算效率。
微调上,使用1万条平均长度为1024 token的数据进行微调,Llama3-70B消耗为0.05PD(PetaFLOPs/s-Day),源2.0-M32只用0.0026PD,仅为Llama3的5.2%。
当然不得不说的是,虽然源2.0-M32的微调消耗已经降低到了Llama3的5.2%,但微调本身对于一些用户来说就是无法负担的成本。
而得益于源2.0-M32强大的少样本学习能力,让用户即使没有条件进行微调,也能快速构建大模型应用。
以代码生成为例,仅需很少量的样本引导,源2.0-M32在HumanEval上获得的精度就能从74.4提升到78.1,增幅达到了4.97%。
图片
浪潮信息提供了预训练、微调和推理服务脚本,开发人员可以高效完成部署。
模型部署可端可云,可以在自有的云服务上部署,也可以在浪潮信息推出的企业大模型开发平台EPAI中快速构建,还可以通过浪潮信息开源的本地大模型对话工具YuanChat,在PC端完成快速部署。
而且源2.0-M32模型激活参数量仅3.7B,算力需求只有2B模型(单专家)的1点多倍,用笔记本就能带动。
总之,浪潮信息始终追求更高效的智能涌现——本次发布“源2.0-M32”大模型,就是希望资源有限的条件下,实现能耗更低、推理和训练效果更优的大模型开发。
那么,浪潮信息是如何实现用更少的算力开销,对标行业领先模型的呢?
算法、算力、数据的全面创新
自浪潮信息涉足AI领域以来,一直将“算法、算力、数据”视为AI应用的“三驾马车”。
实际上,整个“源”系列大模型的研发过程亦是如此,所有的相关研究,都是围绕着这三个维度展开的。
在算法上,源2.0-M32选择了MoE架构,解决了稠密模型训练成本过高、数据和算力不足的问题。
从Llama1(65B)、Llama2(70B)到Llama3(70B)的迭代过程可以看出,三代模型的参数量接近,但随着训练Token数从1.4T增加到了15T,模型表现也随之显著提升。
数据来自Llama1与Llama2的论文
大模型的扩展率揭示出:增大模型的参数量与增大训练的token数对模型能力提升的作用类似,如果按照Llama3的训练数据量(15T tokens)外推,500B参数的模型若想充分的训练,所需的高质量文本token数高达107T,已经远远超过了当前业界已知的数据量。
退一步讲,即使真的有这么多数据,训练过程所需的算力投入同样无法承受。
按照计算,如果用107T训练token训一个500B参数规模的Dense模型,需要的算力是321000Z(10^21)Flops。
即使在2万颗加速卡的集群上,训练效率按40%来算(实际还不一定能达到),也需要耗时464天,单是电费就要花费约3亿元。
相比之下,MoE模型的一个显著优势就是,能够在远少于稠密模型所需的计算资源下,进行有效的预训练。
同时,源2.0-M32没有采用Mixtral等MoE模型中更常见的8专家结构,而是将专家数量设定为了32,运行时只激活两个专家。
图片
这一参数的选择,是研发团队进行了大量的实验调优之后确定的。
浪潮信息人工智能首席科学家吴韶华介绍说,模算效率是浪潮信息设计自己的大模型时的核心出发点,在提升模型能力的同时,尽可能降低算力开销。
业界中像Mixtral这样的模型,获得更高精度的方式是固定专家数量,增加单个专家的参数量,但源2.0-M32则反其道而行之。
吴韶华介绍,在研发团队的实验中,随着专家数量从8个专家增加到32个专家,在模型精度上取得了非常不错的回报。
但即使总的专家数量增加到了32个,激活的专家依然只有两个。在这种情况下,激活参数量不变,算力开销不变。
至于源2.0-M32中的单个专家,则是选用了源2.0-2B模型,这样做的考量是控制单个专家的参数量不至于过大,以便在企业场景应用中可以有更好的模算效率。
除了在专家数量的设置上另辟蹊径,团队也对源2.0-M32的门控网络进行了全新设计,采用了独创的Attention Router门控网络,相比传统的门控网络获得了精度提升。
图片
当前流行的MoE结构大都采用简单的调度策略,其本质是对token与代表每个专家的特征向量求点积,随后挑选点积结果最大的几个专家。
这种方式只考虑了token和专家的关系,却忽略了专家与专家之间的相关性,但实际过程中往往需要多个专家协同参与计算,如果忽视专家之间相关性,无疑会降低模型的精度。
而源2.0-M32大模型中的Attention Router,就创造了一种专家间协同性的度量方法,解决了传统的门控机制中专家关联性缺失的问题。
具体来说,对于每一个专家,研发团队都构建了3个向量,并利用类似Attention的机制来构建专家之间的关系。最终选择的专家不仅与Token匹配度高,两个专家的协同效果也更好。
此外,源2.0-M32也沿用了源2.0系列中首创的局部注意力过滤增强(LFA)机制,和经典的Llama结构相比,模型在几百亿token数据的训练之后,在100亿token的测试集上做测试,会有3.5%的精度提升。
在数据层面,源2.0-M32一共使用2万亿token进行训练,相比之前的2.0版本大幅提升。
整个训练过程也非常稳定,没有出现数值不稳定或异常的中断的情况,最终训练损失为1.22。
图片
数据类型上看,源2.0-M32这个模型的2万亿token中,差不多有一半的数据都是代码,包含中文代码和英文代码。
同时,团队也引入了互联网数据和各类学科数据等类型,来补充数据的多样性。
图片
另外,研发团队还通过源2.0合成数据的工具,获得并增加了超过1000万条的合成数据,重点是针对于数学和中文代码。
因为互联网上中文数学的语料实在太少,研发团队曾经清洗了10PB左右的互联网数据,但实际只得到了几十GB的中文数学数据。
所以,这片空白需要通过数据合成来进行填补,这也是研发团队持续做的工作。
在算力层面,源2.0-M32延续了源2.0提出的分布式训练方法,综合运用流水线并行+数据并行的策略,显著降低了大模型对芯片间P2P带宽的需求,为硬件差异较大训练环境提供了一种高性能的训练方法。
针对MoE模型的稀疏专家计算,采用合并矩阵乘法的方法,模算效率得到大幅提升。
将开源进行到底
了解了模型背后的技术细节,浪潮信息又为什么能够打造出如此高效的大模型技术和产品呢?
主观上,浪潮信息始终坚持在算法、架构等层面进行创新,对于这样做的原因,吴韶华这样介绍:
如果想提升大模型的能力,沿用当前的结构当然是一个比较好的路径。
但我们始终坚持:要从算法层面和模型架构层面做探索、创新,这样才能更快速的实现模型能力的提升。
客观上,也至少包括以下三点原因。
一是从AI时代开始之前,浪潮信息就是专业的算力供应商,在算力侧拥有大量的生态伙伴,对不同类型算力特点有深入的研究,能够更高效地对算力进行利用。
实际上,自从2021年的源1.0开始,浪潮信息的一系列模型就都实现了比业界更高的训练效率。
同时期的GPT-3,算力的利用效率只有21.3%,而源1.0效率则达到了44.8%,达到了业界领先水平。
二是在浪潮信息内部,也有非常多的场景和团队,包括客服、软件研发、生产制造、运维等等,都有很多实际的应用案例,或者实际需要模型去做规模化转型的场景。
这些场景为源大模型的使用、迭代提供了天然的试验场,同时从中能够积累更多的经验、更多的能力,从而满足更多的需求。
三是始终坚持开源开放,同样对模型能力的进化非常有帮助。
源系列模型的开源从1.0版本就已开始,从源1.0到源2.0再到今天的源2.0-M32,始终在坚持做开源,也已赋能了很多开发者。
这些开发者基于源1.0做了很有趣的应用探索,给了浪潮信息很好的反馈,指明了在模型能力上和开发者实际的应用需求上,到底应该关注在哪些层面。
吴韶华表示,从源1.0开源至今,浪潮信息一直在开源活动中持续受益,后续也会很坚定的继续开源。
总之,从创新研发到开源开放,浪潮信息将坚持致力于研发基础大模型,为企业用户降低大模型使用门槛,加速推进产业智能化升级。
GitHub地址:https://github.com/IEIT-Yuan/Yuan2.0-M32
论文地址:https://arxiv.org/abs/2405.17976
Huggingface地址:https://huggingface.co/IEITYuan/Yuan2-M32-hf
ModelScope地址:https://modelscope.cn/models/YuanLLM/Yuan2-M32-hf/summary
Wisemodel地址:https://www.wisemodel.cn/models/IEIT-Yuan/Yuan2-M32-hf