今天小编分享的互联网经验:苹果连放4个开源“小模型”,跑分却不到微软Phi-3一半,不卷性能卷效率?,欢迎阅读。
文|李然 陈斯达
编辑|苏建勋
美国当地时间 4 月 24 日,苹果在 Hugging Face 上放出了自己的开源 " 小模型 " 家族—— 4 个预训练的大模型 OpenELM。
图源:X
四款模型体量极小,参数量分别为 270M、450M、1.1B 和 3B。
图源:Hugging Face
在 Hugging Face 页面上苹果表示,OpenELM(Open-source Efficient Language Models,即 " 开源高效语言模型 ")在诸如电子邮件编写等文本相关任务上,有较高的执行效率。系列模型已经开源,可供开发人员使用。
4 月 22 日发布的相关论文中,研究人员介绍了 OpenELM 的整个框架,包括数据准备、训练、微调以及测评结果等。
图源:论文
论文地址:https://arxiv.org/pdf/2404.14619.pdf
CoreNet 地址:https://github.com/apple/corenet
模型下载地址:https://huggingface.co/apple/OpenELM
模型是真的开源了,但能力也是真的很一般
一向以封闭著称的苹果,突然在大模型时代以非常激进的姿态加入开源阵营。
这次的 OpenELM 不但提供模型下载,还开源了和模型相关的非常重要的信息:
模型权重和推理代码
还包括了在公开数据集上进行模型训练和评估的完整框架,涵盖训练日志、多个保存点和预训练設定
开源了 CoreNet ——深度神经网络训练库
训练库可以使研究人员和工程师能够开发和训练各种标准及创新的小型和大型模型,适用于多种任务,如基础模型(例如,CLIP 和大语言模型(LLM))、物体分类、检测以及语义分割。
OpenELM 采用按层分配参数的策略,有效提升了 Transformer 模型各层的参数配置效率,显著提高模型准确率。在大约十亿参数的预算下,OpenELM 的准确率较 OLMo 提升了 2.36%,且预训练所需的 Token 数量减少了一半。
论文透露,模型是在 128 个 A100/H100 GPU 上进行的训练,最大的模型训练时长为 13 天。
模型最体量大仅为 3B,可以看出,苹果该系列的模型,只针对端侧和桌面级的本地部署设计。
论文也透露,所有的测试平台都是家用级设备:
Intel i9-13900KF CPU, 64 GB 内存 , 英伟达 RTX 4090 GPU,24G 显存
Apple MacBook Pro,M2 Max ,64G 内存
性能上,模型似乎只是研究目的设计,某些常见测试集上取得的成绩也不高。与微软推出的 Phi 系列模型等主流 SLM 相比,差距明显。
Phi-3 在 5-shot 的 MMLU 上,可达到 70 左右的水平,而 OpenELM 只有不到 30.
针对这个问题,网友也对原因进行了一些猜测。
用的数据集很小,而且只用了公开的数据集,个人认为,他们只是在对未来训练更大的模型进行针对性的研究。
开源社区的用户们,也第一时间对模型进行了些测试,整体反馈是模型似乎过于 " 对齐 ",换句话来说就是——废话可能有点多。
从目前开源社区的反馈来看,OpenELM 似乎不是一个精心设计和训练后用来秀肌肉的模型,所以性能和表现离同体量最领先的模型差距不小。
论文中,研究人员也没有过于强调模型的能力,而是纠结于准确率和推理性能。
去年已有开源动作,技术实力还待 6 月亮剑
放弃造车后的苹果,在大模型战争中动作愈发频繁。(见智能涌现文章 苹果 300 亿参数大模型首亮相,还买了家 AI 公司)
很多时候," 买买买 " 是大家对苹果 AI 布局的主要印象之一。
3 月 15 日,苹果收购了加拿大 AI 初创公司 DarwinAI。自身 AI 团队一下扩充几十个技术人员。4 月 23 日又曝出,早在去年 12 月已经悄悄收购巴黎 AI 初创公司 Datakalab。这家 2016 年成立的公司,亦专注低功耗、高效率的深度学习算法。
苹果最近的这两起收购都围绕端侧大模型展开——比如 DarwinAI 想把 AI 系统打造得 " 小而精 ",Datakalab 专于低功耗、高效率的深度学习算法,无需依赖云端系统即可运行。
也是在 3 月,苹果被爆出与谷歌进行谈判,希望将 Gemini 集成到新的 iPhone 中。此外,据透露,苹果还与 OpenAI 进行了讨论,考虑使用其模型。
不只是 " 招兵买马 ",在研究端,起步稍晚的苹果也不忘 " 卷卷卷 "。
2023 年 10 月,苹果发布名为 Ferret 的开源 LLM。这一模型结合了计算机视觉和自然语言处理技术,能识别影像中的对象和区網域,将文本转化为视觉元素,并进行影像相关的文本对话。
2024 年 4 月初,基于 Ferret,苹果发布多模态大模型(MLLM )Ferret-UI,表现出不凡的 UI 螢幕理解能力——不仅优于大多数开源 UI MLLM,而且在所有基本 UI 任务上也超过了 GPT-4V。
此前,苹果保密原则伴随的封闭生态,一度让外部开发人员无法介入。一开始,Ferret 研究没有得到太多关注,其以非商业许可证开源,不能用于商业目的。
但发布两月后的 12 月底,AI 医学非营利组织的运营商 Bart De Witte 反应过来——原来苹果 10 月就加入了开源社区,自己没注意到这次重要的发布。
也就是在这个时间点上,Ferret 又为人热议——这一反苹果此前的保密立场,表明了自身在 AI 方面的开放态度。
可以说,在今年 2 月财报发布会上库克公布生成式 AI 计划之前,苹果自身的 AI 研究进展就很多了。2023 年 12 月,它推出专门在 Apple 芯片上用于机器学习的开源阵列框架 MLX。2024 年 2 月,又发布影像编辑模型 MGIE,让用户无需通过照片编辑軟體,就能用简单语言描述他们要在照片中更改的内容。
2024 年 3 月,苹果在论文中介绍的 "MM1" 多模态大模型,同样拥有影像识别和自然语言推理能力。不过和其他大模型比起来,MM1 的效果不算惊艳。苹果只是围绕 MM1 开展实验发现影响模型效果的关键因素。
MM1 的论文指出,无论是开源还是闭源,现在都没有真正分享达到算法设计经历的过程。所以苹果希望借 MM1 的研究打破局面,在论文里公开模型训练的种种细节。
同样,OpenELM 模型的确彰显了端侧模型的进展,但技术貌似并没有达到外界的预期。
或许,这次苹果通过发布完整的训练、评估框架等,以再次表达 "Open" 的决心。论文表示:
此次全面发布,希望在增强和巩固开放研究社区,为未来的开放研究工作铺平道路。
所以,OpenELM 效果一般,网友还是也会为苹果的开放感到意外。
苹果真正的 AI 实力,要等到六月的全球开发者大会(WWDC)才能揭晓。但开源做出的 " 姿态 ",几个月算是表现到位了。
论文重点
模型构架
苹果的研究人员采用了仅包含解码器的 Transformer 架构,但是作出了一些特殊的调整:
在线性层中不設定可学习的偏置参数
采用 RMSNorm 进行预归一化,并使用旋转位置嵌入 ( ROPE ) 来编码位置信息
用分组查询注意力 ( GQA ) 来替代传统的多头注意力 ( MHA )
将传统的前馈网络 ( FFN ) 更换为 SwiGLU FFN
采用闪电注意力机制计算缩放点积注意力
使用与 LLama 相同的 Tokenizer 进行文本处理
OpenELM 与传统的大语言模型的最大不同在于,通常大模型在每一层 Transformer 中使用相同配置,而 OpenELM 为每层設定了不同的配置(如头数和前馈网络的尺寸),使每层的参数数量各不相同。
这种方法,让 OpenELM 能更有效地利用参数预算,从而达到更高模型准确率。通过 " 层间缩放 "(也称为块间缩放),实现了这一层间参数的非均匀分配。
预训练数据和训练细节
研究人员只使用了公开的数据集进行预训练。
具体包括 RefinedWeb、去重后的 PILE、RedPajama 和 Dolma v1.6 的部分数据,总计约 1.8 万亿 Token。
从苹果提供的公开数据来源来看,数据包括了像 arXiv,维基百科,Reddit,GitHub 等各种主流的网络社区和百科知识平台。
值得一提的是,苹果没有采用预先分词(pretokenized)的数据,而用了即时过滤和分词的方式处理文本数据。这种做法,使研究人员能够轻松地尝试各种 tokenizer,极大简化了原型设计和研究过程。实验中,他们就采用了与 LLama 相同的 tokenizer。
训练结果
研究人员将 OpenELM 与一些公开的大语言模型进行了对比,包括 PyThia、Cerebras-GPT、TinyLlama、OpenLM、MobiLlama 和 OLMo。
性能与 OpenELM 最接近的,是 MobiLlama 和 OLMo。这两个模型都是在更大规模的数据集上进行预训练的。
从上图中可以看出,OpenELM 的准确度随着训练迭代次数的增加而提升,在多数任务中都表现出明显的准确率增长。
此外,通过对最后五个检查点的平均处理(这些检查点是每隔 5000 次迭代收集一次),显示出与 350k 次迭代后获得的最终检查点相当或略优的准确率。
上图实验结果显示,OpenELM 在各种评估框架中。都显示出超越现有方法的有效性。例如,一个拥有 11 亿参数的 OpenELM 变体,在与拥有 12 亿参数的 OLMo 比较时,在不同的评估中准确率分别提高了 1.28%、2.36% 和 1.72%,而且这是在使用不到一半的预训练数据的情况下实现的。
指令微调之后,上图的结果表明,指令微调在不同的评估框架中,一致地提高了 OpenELM 的平均准确率,提升幅度为 1-2%。
推理性能表现
研究人员主要测试了模型在两个文章开头介绍过的 PC 和 Mac 两个平台上的推理性能表现。
可以看出,代表着 Mac 主流配置的 M2 Max 平台,在跑 3B 模型时推理性能可以达到每秒 34 token,已基本超过人类的阅读速度。
在最顶级的 PC 配置下,3B 模型的推理速度达到了 70。
尽管 OpenELM 在相似参数量下具有更高的准确性,但是它的推理速度比 OLMo 慢。
分析显示,OpenELM 处理时间的一个重要部分,可以归因于 RMSNorm 的初级实现(下图所示)。
具体来说,初级 RMSNorm 的实现,导致许多单独的内核启动,每个内核处理少量输入,而不是像使用 LayerNorm 那样启动单个融合内核。
通过将初级 RMSNorm 替换为 Apex 的 RMSNorm ,OpenELM 的推理速度显著增加。
然而,与使用优化过的 LayerNorm 的模型相比,仍然存在显著的性能差距,部分原因是:
OpenELM 有 113 个 RMSNorm 层,而 OLMo 有 33 个 LayerNorm 层
Apex 的 RMSNorm 对小输入未进行优化
为了进一步说明由于 RMSNorm 造成的性能下降,研究人员将 OLMo 中的 LayerNorm 替换为 RMSNorm,观察到生成吞吐量显著下降。在未来的工作中,研究人员计划探索优化策略,以进一步提高 OpenELM 的推理效率。