Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

苹果卷开源大模型,公开代码、权重、数据集、训练全过程,OpenELM亮相

苹果发布基于开源训练和推理框架的高效语言模型族 OpenELM。

要说 ChatGPT 拉开了大模型竞赛的序幕,那么 Meta 开源 Llama 系列模型则掀起了开源领域的热潮。在这当中,苹果似乎掀起的水花不是很大。

不过,苹果最新放出的论文,我们看到其在开源领域做出的贡献。

近日,苹果发布了 OpenELM,共四种变体(参数量分别为 270M、450M、1.1B 和 3B),这是一系列基于公开数据集进行预训练和微调的模型。OpenELM 的核心在于逐层缩放,即 OpenELM 中的每个 Transformer 层都有不同的配置(例如,头数和前馈网络维度),导致模型每层的参数数量不同,从而实现了更有效的跨层参数分配。

值得一提的是,苹果这次发布了完整的框架,包括数据准备、训练、微调和评估程序,以及多个预训练的 checkpoint 和训练日志,以促进开源研究。

图片

  • 论文地址:https://arxiv.org/pdf/2404.14619.pdf

  • 项目地址:https://github.com/apple/corenet

  • 论文标题:OpenELM: An Efficient Language Model Family with Open-source Training and Inference Framework

结果显示,OpenELM 的性能优于使用公开数据集进行预训练的现有开源 LLM(表 1)。例如,具有 11 亿个参数的 OpenELM 性能优于 OLMo。

图片

方法介绍

OpenELM 架构

OpenELM 采用只有解码器的 transformer 架构,并遵循以下方式:

(1)不在任何全连接(也称为线性)层中使用可学习的偏差参数

(2)使用 RMSNorm 进行预标准化,旋转位置嵌入(ROPE)用于编码位置信息;

(3)使用分组查询注意力(GQA)代替多头注意力(MHA);

(4)用 SwiGLU FFN 替换前馈网络(FFN);

  (5) 使用 flash 注意力来计算可缩放的点积注意力;

  (6) 使用与 LLama 相同的分词器(tokenizer)。

一般来讲,LLM 中每个 transformer 层使用相同的配置,从而实现跨层参数的统一分配。与这些模型不同的是,OpenELM 中的每个 Transformer 层都有不同的配置(例如,头数和前馈网络维度),导致模型每层的参数数量不同。这使得 OpenELM 能够更好地利用可用的参数预算来实现更高的精度。苹果使用逐层缩放(layer-wise scaling)来实现跨层参数的非均匀分配。

逐层缩放:标准 Transformer 层由多头注意力(MHA)和前馈网络(FFN)组成。针对 Transformer 层参数分配不均匀的问题,苹果对各个 Transformer 层的注意力头数和 FFN 乘法器进行了调整。

苹果是这样做的。设参数分配均匀的标准 Transformer 模型有 N 层 transformer,假设每层输入的维数为 d_model。MHA 有 n_h 个头,每个头的维度为图片,FFN 的隐藏维度为:

图片

苹果引入参数 α 和 β 两个超参数来分别缩放每层注意力头的数量 n_h 和 m。对于第 i 层,n_h 和 m 计算为:

预训练数据

对于预训练,苹果使用公共数据集。具体来说,他们的预训练数据集包含 RefinedWeb、deduplicated PILE、RedPajama 的子集和 Dolma v1.6 的子集,总计约 1.8 万亿个 token 。如下表所示。

图片

训练细节

苹果使用自家开源的 CoreNet 库(以前称为 CVNets ,专门用于训练深度神经网络)训练 OpenELM 变体,训练过程迭代了 35 万次。最终训练出了 OpenELM 四种变体(参数量为 270M、450M、1.1B 和 3B)。

实验

本文评估了 OpenELM 在零样本和少样本设置下的性能,如表 3 所示。研究者将 OpenELM 与公开的 LLM 进行了比较,其中包括 PyThia 、Cerebras-GPT 、TinyLlama 、OpenLM 、MobiLlama  和 OLMo 。与本文工作较为相关的是 MobiLlama 和 OLMo。这些模型都是在类似的数据集上训练的,具有相似或更多的预训练 token。

图片

图 1 绘制了 OpenELM 在 7 个标准零样本任务上随训练迭代次数的准确率。可以发现,在大多数任务中,随着训练持续时间的延长,准确率在总体上会有所提高。此外,通过平均最后五个检查点(每 5000 次迭代收集一次)得到的检查点,在准确率上与经过 350k 次迭代后得到的最终检查点相当,或略有提高。这种改进很可能是由于权重平均降低了噪声。因此,在表 4 的主要评估、表 5 的指令调优实验和表 6 的参数效率调优实验中,研究者使用了平均检查点。

图片

表 4 中的结果横跨各种评估框架,突出了 OpenELM 相对于现有方法的有效性。表 4 中的结果跨越了不同的评估框架,凸显了 OpenELM 相对于现有方法的有效性。例如,与拥有 12 亿个参数的 OLMo 相比,拥有 11 亿个参数的 OpenELM 变体的准确率分别提高了 1.28%(表 4a)、2.36%(表 4b)和 1.72%(表 4c)。值得注意的是,OpenELM 达成了这样的准确率,但是使用的预训练数据比 OLMo 少的多。

图片

如图 5 所示,在不同的评估框架中,指令微调始终能将 OpenELM 的平均准确率提高 1-2%。

图片

参数高效微调(PEFT)结果。研究者使用常识推理的训练和评估设置。这个设置为不同方法提供了 8 个多项选择数据集的 170k 训练样本进行 PEFT 研究,包括 LoRA 和 DoRA。研究者将 OpenELM 与这些方法整合在一起,并使用 8 个 NVIDIA H100 GPU 对所生成的模型进行了三个训练周期的微调。如表 6 所示,PEFT 方法可以应用于 OpenELM。在给定的 CommonSense 推理数据集上,LoRA 和 DoRA 的平均准确率相似。

图片

表 7a 和 7b 分别展示了本项工作在 GPU 和 MacBook Pro 上的基准测试结果。尽管 OpenELM 在相似参数数量下准确度更高,但其速度比 OLMo 慢。虽然这项研究的主要关注点是可复现性而不是推理性能,但研究者还是进行了全面的性能分析来判断工作的瓶颈所在。

分析表明,OpenELM 的处理时间的相当部分可归因于研究者对 RMSNorm 的简单实现(见表 8)。详细来说,也就是简单的 RMSNorm 实现导致许多单独的内核启动,每个都处理少量输入,而不是像 LayerNorm 那样启动单个融合内核。通过用 Apex 的 RMSNorm 替换简单的 RMSNorm,研究者发现 OpenELM 的吞吐量显著提高。然而,与使用优化 LayerNorm 的模型相比,仍有显著的性能差距,部分原因是(1)OpenELM 有 113 层 RMSNorm,而 OLMo 有 33 层 LayerNorm;(2)Apex 的 RMSNorm 没有为小输入优化。为了进一步说明由 RMSNorm 引起的性能下降,苹果用 RMSNorm 替换了 OLMo 中的 LayerNorm,观察到生成吞吐量显著下降。在未来的工作中,研究者计划探索优化策略以进一步提高 OpenELM 的推理效率。

图片

图片

更多详细内容,请阅读原论文。

产业OpenELM苹果公司
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

常识推理技术

常识推理是人工智能(AI)的一个分支,它关注模拟人类每天遇到的普通情境的类型和本质的假设。这些假设包括对人和物体的物理特性,目的,意图和行为的判断,以及他们的行为和相互作用的可能结果。展示常识推理的设备将能够预测结果并得出类似于人类民间心理学(人类对人们的行为和意图进行推理的天生能力)和天真物理学(人类对物理世界的自然理解)的结论。

推荐文章
暂无评论
暂无评论~