赞
踩
4月24日,苹果开源了大语言模型 OpenELM(Open-source Efficient Language Models,即“开源高效语言模型”)。这与微软刚开源的Phi-3-mini类似,是一款专门针对手机等移动设备的模型。
OpenELM 系列模型包含2.7亿、4.5亿、11亿和30亿共4个不同参数版本,共包括4个预训练模型和4个指令调优模型,提供生成文本、代码、翻译、总结摘要等功能。基于较小的参数量,这些模型可在端侧设备上独立运行,而不必连接云端服务器。
苹果发布 OpenELM,意味着它正式加入开源大模型阵营,尤其是端侧大模型的赛道之中,正如谷歌、微软、三星等科技公司着力在 PC 和移动设备端推动生成式 AI 模型的开发一样。
与以往只提供模型权重和推理代码的做法不同,苹果发布了完整的训练、评估框架等,主要内容包括数据准备、模型训练、微调以及评估流程,同时提供了多个预训练检查点和训练日志。
论文标题:OpenELM: An Efficient Language Model Family with Open-source Training and Inference Framework
论文地址:https://arxiv.org/pdf/2404.14619.pdf
Github:https://github.com/apple/corenet
HuggingFace: https://huggingface.co/apple/OpenELM
不管咋说,苹果选择开源对于开发者、中小企业来说都是一个不错的福利。
在性能方面,苹果公布的结果显示 OpenELM 模型相当出色,特别是其中的 4.5 亿参数版本。但总的来说,只能说 OpenELM 稳定发挥,但性能并非顶尖。
比如,在强调测试知识与推理技能的 ARC-C 基准测试中,经过预训练的 OpenELM-3B 版本的准确率达到 42.24%,同时在 MMLU 与 HellaSwag 上分别得到 26.76% 与 73.28% 的成绩。
而微软刚推出的 Phi-3 Mini 性能层面仍处于顶尖地位。根据最新发布的统计数据,Phi-3 Mini 在 10-shot ARC-C 基准测试中得分为 84.9%,在 5-shot MMLU 上得分为 68.8%,在 5-shot Hellaswag 上得分为 76.7%。
结果显示,OpenELM 的性能优于使用公开数据集进行预训练的现有开源大模型,如下表1所示。例如,具有 11 亿个参数的 OpenELM 性能优于 OLMo。
OpenELM 采用了无编码器的transformer架构,并在多个方面进行了技术创新。
OpenELM 使用了一种“层级缩放”策略,使得模型能够跨各个转换器层更有效地分配参数,能以最少的训练数据取得了更好的性能,同时极大提升准确率。
如下表 4 中的结果横跨各种评估框架,突出了 OpenELM 相对于现有方法的有效性。尤其是,与 OLMo 模型相比,OpenELM 在参数数量和预训练数据更少的情况下,准确率依然更高。
例如,11 亿参数的 OpenELM,比 12 亿参数的 OLMo 模型的准确率高出2.36%(表 4b),而使用的预训练数据却只有 OLMo 的一半。
另外,OpenELM 不使用任何全连接层中的可学习偏置参数,采用RMSNorm进行预归一化,并使用旋转位置嵌入编码位置信息。
OpenELM 还通过分组查询注意力代替多头注意力,用SwiGLU FFN替换了传统的前馈网络,并使用了Flash注意力来计算缩放点积注意力,能以更少的资源来进行训练和推理。
虽然最小的参数只有2.7亿,但苹果使用了1.8万亿tokens的数据进行了预训练,这也是其能以小参数表现出超强性能的主要原因之一。
苹果的预训练数据集包含 RefinedWeb、deduplicated PILE、RedPajama 的子集和 Dolma v1.6 的子集在内的公共数据集,总计约 1.8 万亿个 token,如下表2所示。
苹果还把训练 OpenELM 模型的深度神经网络库 CoreNet 也开源了,仅1天多的时间Github就超过1100颗星。苹果的 MobileOne、CVNets、MobileViT、FastVit 等知名研究都是基于 CoreNet 完成的。
CoreNet 基于苹果公司在去年开源的一个计算机视觉工具包 CVNets 拓展,涵盖计算机视觉之外更广泛的应用,允许研究人员和工程师为各种任务训练标准和新颖的小型和大型模型,包括基础模型(例如 CLIP 和 LLM)、对象分类、对象检测和语义分割。
目前 CoreNet 已经支持了下面的工作:
- OpenELM:具有开源训练和推理框架的高效语言模型系列
- CatLIP:在 Web-scale Image-Text DataCLIP 上以 2.7 倍的预训练速度实现 CLIP 级视觉识别准确率
- Reinforce Data, Multiply Impact:通过数据集强化提高模型准确性和稳健性
- CLIP meets Model Zoo Experts:视觉增强的伪监督
- FastVit:使用结构重参数化的快速混合视觉Transformer
- Bytes Are All You Need: Transformers 直接操作的文件字节
- MobileOne:改进的 One millisecond Mobile Backbone
- RangeAugment:Efficient Online Augmentation with Range Learning
- MobileViTv2:Separable Self-attention for Mobile Vision Transformers
- CVNets:高性能计算机视觉库,ACM MM’22
- MobileViT:轻量级、通用且适合移动设备的 Vision Transformer,ICLR’22
苹果使用 CoreNet 库训练 OpenELM 变体,训练过程迭代了 35 万次,最终训练出了 OpenELM 四种变体(参数量为 270M、450M、1.1B 和 3B)。
此外,苹果使用了动态分词和数据过滤的方法,实现了实时过滤和分词,从而简化了实验流程并提高了灵活性。还使用了与Meta的Llama 3相同的分词器,以确保实验的一致性。
OpenELM 的另一个特点是它附带了将模型转换为 MLX 库的代码,以便在 Apple 设备上进行推理和微调。
MLX 是去年发布的一个用于在 Apple 芯片上运行机器学习的框架。 MLX 旨在保证用户友好的前提下,支持高效地在苹果芯片上训练及部署模型。
MLX 有以下一些主要特性:
- 熟悉的 API。MLX 拥有非常像 NumPy 的 Python API,以及功能齐备的 C++ API(与 Python API 非常相似)。MLX 还有更高级的包(比如 mlx.nn 和 mlx.optimizers),它们的 API 很像
PyTorch,可以简化构建更复杂的模型。- 可组合函数变换。MLX 拥有自动微分、自动矢量化和计算图优化的可组合函数变换。
- 惰性计算。MLX 中的计算是惰性的,阵列只有在需要时才被实例化。
- 动态图构建。MLX 中的计算图构建是动态的,改变函数参数的形状不会导致编译变慢,并且 debug 很简单、容易上手。
- 多设备。任何支持的设备上(如 CPU 和 GPU)都可以运行操作。
- 统一内存。MLX 与其他框架的显著差异在于统一内存,阵列共享内存。MLX 上的操作可以在任何支持的设备类型上运行,无需移动数据。
OpenELM 对开发人员来说应该更有趣,因为它可以在 Apple 设备上本地运行,而不是通过网络运行。
从 ChatGPT 火爆至今不过一年左右,手机厂商就都已将 AI 大模型技术落地在自家手机中。
根据论文介绍,苹果 OpenELM 模型不仅能在笔记本(配备英特尔i9-13900KF CPU、RTX 4090 GPU,24GB内存),还可以在M2 MacBook Pro(64GiB内存)运行。
然而,OpenELM 并未在论文中提到相关的部署测试,相比之下,Phi-3-mini 已经在 iPhone 14 上实现本地运行并完全离线,实现每秒超过 12 token的生成效率。
这次苹果终于带着它的开源大模型,加入这场手机大模型之战。苹果也可能是在效仿谷歌的方式先通过开源拉拢用户,再用闭源产品去实现商业化营利。
参考:
https://venturebeat.com/ai/apple-releases-openelm-small-open-source-ai-models-designed-to-run-on-device/
https://www.163.com/dy/article/J0KTEJFJ0511831M.html
欢迎各位关注我的个人微信公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。