苹果加入开源大战,官宣端侧小模型 OpenELM!参数 2.7 亿到 30 亿一台 M2 Mac 可跑
苹果发布了开源小模型 OpenELM,该模型有四个参数版本,可以在终端设备上运行。OpenELM 使用了分层缩放策略来提升准确率,并且在零样本和少样本设置中表现出色。这一举动被认为是苹果加入 AI 开源大战的一部分,瞄准了竞争对手谷歌、三星和微软。OpenELM 在笔记本和 M2 MacBook Pro 上都有良好的性能表现。该模型的发布引起了不小的反响,因为小模型的运行成本更低且针对移动设备进行了优化。
从 Llama 3 到 Phi-3,蹭着开源热乎劲儿,苹果也来搞事情了。
今天,苹果团队发布了 OpenELM,包含了 2.7 亿、4.5 亿、11 亿和 30 亿四个参数版本。
与微软刚刚开源的 Phi-3 相同,OpenELM 是一款专为终端设备而设计的小模型。
论文地址:https://arxiv.org/abs/2404.14619
论文称,OpenELM 使用了「分层缩放」策略,来有效分配 Transformer 模型每一层参数,从而提升准确率。
如下这张图,一目了然。
在约 10 亿参数规模下,OpenELM 与 OLMo 相比,准确率提高了 2.36%,同时需要的预训练 token 减少了 2 倍。
抱抱脸创始人表示,苹果加入了 AI 开源大战,一口气在 HF 中心发布了四款模型。
OpenELM 有多强?
OpenELM 的诞生,显然瞄准了谷歌、三星、微软这类的竞争对手。
近几天,微软开源的 Phi-3,在 AI 社区引起了不小的反响。
因为,小模型的运行成本更低,而且针对手机和笔记本电脑等设备进行了优化。
根据论文介绍,苹果这款模型不仅能在笔记本(配备英特尔 i9-13900KF CPU、RTX 4090 GPU,24GB 内存),还可以在 M2 MacBook Pro(64GiB 内存)运行。
而 OpenELM 具体性能表现如何?
在零样本和少样本设置中,OpenELM 的结果如下图表 3 所示。
通过与开源的大模型比较,OpenELM 的变体比 12 亿参数 OLMo 的准确率提高了 1.28%(表 4a)、2.36%(表 4b)和 1.72%(表 4c)。
值得注意的是,OpenELM 使用了 OLMo 少 2 倍的预训练数据的情况下,达到了这一水平。
再来看模型指令微调的结果。
如下表 5 所示,在不同的评估框架中,指令微调都能将 OpenELM 的平均准确率提高 1-2%。
表 6 展示了参数高效微调的结果。PEFT 方法可以应用于 OpenELM,LoRA 和 DoRA 在给定的 CommonSense 推理数据集中,提供了相似的平均准确度。
下表 7a 和 7b 分别显示了 GPU 和 MacBook Pro 上的基准测试结果。
尽管 OpenELM 对于相似的参数数量具有更高的精度,但研究人员观察到 OpenELM 要比 OLMo 慢。
虽然本研究的主要重点是可重复性而非推理性能,但研究人员还是进行了全面分析,以了解瓶颈所在。
分析结果表明,OpenELM 处理时间的很大一部分,归因于研究者对 RMSNorm 的简单实现。
具体来说,简单的 RMSNorm 实现会导致许多单独的内核启动,每个内核处理一个小输入,而不是像 LayerNorm 那样启动一个融合的内核。
用 Apex 的 RMSNorm 替换简单的 RMSNorm,结果发现 OpenELM 的吞吐量有了显著提高。
然而,与使用优化 LayerNorm 的模型相比,性能差距仍然很大,部分原因是:
(1)OpenELM 有 113 个 RMSNorm 层,而 OLMo 只有 33 个 LayerNorm 层;
(2)Apex 的 RMSNorm 没有针对小输入进行优化。
作者贡献
有趣的是,论文最后一部分还列出了每位作者,在这项研究中的具体贡献。
从预训练数据收集和工具、架构设计、模型训练,到评估套件和工具、HF 集成、指令微调、参数高效微调,再到性能分析和 MLX 转换、代码审查,bug 修改和维护全程都分工明确。
具体每人参与的内容,如下图所示。
新智元 (ID:AI_era),原文标题:《苹果加入开源大战,官宣端侧小模型 OpenELM!参数 2.7 亿到 30 亿一台 M2 Mac 可跑》