4月24日,苹果在Hugging Face平台上发布一个“具有开源训练和推理框架的高效语言模型”,名为OpenELM。OpenELM有四种尺寸:2.7亿、4.5亿、11亿和30亿个参数版本,定位于超小规模模型。这种小模型运行成本更低,可在手机和笔记本电脑等设备上运行。
OpenELM的最小的参数只有2.7亿,但苹果使用了1.8万亿tokens的数据进行了预训练,这也是其能以小参数表现出超强性能的主要原因之一。苹果还把训练OpenELM模型的深度神经网络库CoreNet也开源了,仅1天多的时间Github就超过1100颗星。苹果的MobileOne、CVNets、MobileViT、FastVit等知名研究都是基于CoreNet完成的。
目前,大模型领域主要分为开源和闭源两大阵营。苹果作为手机闭源领域的领导者,此次加入了开源大模型阵营。苹果这次发布了完整的框架,包括数据准备、训练、微调和评估程序,以及多个预训练的checkpoint和训练日志,以促进开源研究。
OpenELM采用了无编码器的transformer架构,并在多个方面进行了技术创新。OpenELM的使用了一种“层级缩放”策略,使得模型能够跨各个转换器层更有效地分配参数,能以最少的训练数据取得了更好的性能,同时极大提升准确率。
此外,OpenELM不使用任何全连接层中的可学习偏置参数,采用RMSNorm进行预归一化,并使用旋转位置嵌入编码位置信息。OpenELM还通过分组查询注意力代替多头注意力,用SwiGLU FFN替换了传统的前馈网络,并使用了Flash注意力来计算缩放点积注意力,能以更少的资源来进行训练和推理。
在训练流程中,苹果采用了CoreNet作为训练框架,并使用了Adam优化算法进行了35万次迭代训练。苹果使用了批量大小为4096的小批量随机梯度下降进行模型参数更新,并设置了适当的学习率和权重衰减。
在预训练数据集方面,OpenELM使用了包括RefinedWeb、去重的PILE、RedPajama的子集和Dolma v1.6的子集在内的公共数据集,一共约1.8万亿tokens数据。
除此之外,苹果还使用了动态分词和数据过滤的方法,实现了实时过滤和分词,从而简化了实验流程并提高了灵活性。还使用了与Meta的Llama相同的分词器,以确保实验的一致性。