苹果一次性开源了8个大模型! 包含模型权重、训练日志和设置,OpenELM全面开源

不以开放性著称的苹果居然同时开源了大模型的权重、训练和评估框架,涵盖训练日志、多个保存点和预训练设置。同时升级计算机视觉工具包 CVNets 为 CoreNet!支持 OpenELM!

图片

▲图1.由Stable Diffusion3生成。

OpenELM是Apple苹果公司最新推出的语言模型系列,这次一共开源了8个模型,包括OpenELM-270M、OpenELM450M、OpenELM-1_1B和OpenELM-3B的预训练版和指令微调版。

 GPT-3.5研究测试:

https://hujiaoai.cn

GPT-4研究测试:

https://higpt4.cn

Claude-3研究测试(全面吊打GPT-4):

https://hiclaude3.com

图片

▲图2.

OpenELM 采用了decoder-only的架构,并遵循最新的大语言模型(LLM)的设计,包括:

  1. 在任何全连接层中不使用可学习的偏置参数,

  2. 使用RMSNorm进行预归一化,同时使用旋转位置嵌入(ROPE)来编码位置信息,

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

  4. 将前馈网络(FFN)替换为SwiGLU FFN,

  5. 使用Flash Attention来计算缩放点积注意力,

  6. 使用与LLama相同的分词器。

图片

▲图3.OpenELM与开源LLM。OpenELM比最近的开放LLM OLMo的性能高出2.36%,同时需要的预训练令牌减少了2倍。

研究人员提到,现有的大型语言模型在模型的每个Transformer层中使用相同的配置,导致参数在各层之间均匀分布。

而OpenELM中的每个Transformer层具有不同的配置(例如,注意力头数量和前馈网络维度),导致模型的每个层中参数数量不同。这使得OpenELM能够更好地利用可用的参数以实现更高的准确性。

OpenELM采用按层分配参数的策略,有效提升了Transformer模型各层的参数配置效率,显著提高模型精度。例如,在大约十亿参数的预算下,OpenELM的准确率较OLMo提升了2.36%,且预训练所需的Token数量减少了一半。

为了实现Transformer层中参数的非均匀分配,研究人员调整了每个Transformer层中注意力头的数量和FFN维度调整系数。

假设具有均匀参数分配的标准Transformer模型有个Transformer层,每层输入的维度为。MHA有个头,每个头的维度为。另外,FFN的隐藏维度为,其中是FFN隐藏层维度的调整系数。

假设具有均匀参数分配的标准Transformer模型有个Transformer层,每层输入的维度为。MHA有个头,每个头的维度为。另外,FFN的隐藏维度为,其中是FFN隐藏层维度的调整系数。

引入参数和来缩放和。对于第层,和计算如下:

图片

在这里,和是超参数,用于调整注意力头的数量。类似地,和被用于改变FFN层的宽度。因此,使用和来改变标准Transformer层的配置会导致模型中参数的非均匀分配。需要注意的是,设置和时则对应了标准均匀的Transformer模型。

可靠但保守的OpenELM?

对于预训练,苹果使用的是公开数据集,如RefinedWeb、PILE、RedPajama和Dolma v1.6,总共大约包含1.8万亿个token。

图片

从数据上看,确实没有什么惊喜的感觉,因为既没有新的数据集发布,在规模上也没有创新,中规中矩

对于模型的指令调优,指令调优(Instruction Tuning)和参数高效微调(Parameter-efficient Fine-tuning,PEFT)。

对于指令调优,使用了经过清理的 UltraFeedback 数据集的变种,该数据集包含了60,000个用于指令调优的提示。作者使用 Alignment Handbook 库进行指令调优。在优化过程中,他们使用了统计拒绝抽样方法或直接偏好优化方法。结果显示,指令调优能够在不同的评估框架中将 OpenELM 的平均准确率提高1-2%。

图片

▲图5.指令调优提高了OpenELM不同规模上的准确性。

同时,在 CommonSense 推理训练和评估设置中使用了包含8个多项选择数据集、共计170,000的训练样本,用于进行参数高效微调研究。研究中使用了LoRA和DoRA等方法,将它们与OpenELM集成,并使用8个NVIDIA H100 GPU进行三轮微调。但是从结果上看,LoRA和DoRA都表现出相当的性能。

图片

▲图6.当OpenELM在常识推理基准上进行微调时,LoRA和DoRA表现出相当的性能。

研究人员将OpenELM与PyThia、Cerebras-GPT、TinyLlama、OpenLM、MobiLlama和OLMo等模型进行了比较。在相似的模型大小下,OpenELM在ARC、BoolQ、HellaSwag、PIQA、SciQ和WinoGrande等主流的任务测试中的多数任务上展现出了更高的准确度。尤其是,与OLMo模型相比,OpenELM在参数数量和预训练数据更少的情况下,准确率依然更高。

图片

▲图7.OpenELM与各种评估框架中公开可用的LLM的比较。

值的注意的是,研究人员还发现尽管OpenELM的准确性比OLMo更高,但它却比OLMo更慢。同时,OpenELM的处理时间中有相当大一部分是由于未经优化的RMSNorm所导致的。

因此研究人员通过用Apex的RMSNorm替换未经优化的RMSNorm,观察到OpenELM的吞吐量明显增加。

然而,与使用优化的LayerNorm的模型相比,OpenELM仍存在相当大的性能差距,部分原因是OpenELM有113个RMSNorm层,而OLMo只有33个LayerNorm层。并且Apex的RMSNorm并不针对小输入进行优化。

当将OLMo中的LayerNorm替换为RMSNorm后,生成吞吐量则出现了显著下降。

不管怎么说,通篇看下来,OpenELM的实验也并不是那么有诚意,毕竟Phi-3系列作为小规模LLM中的出色工作,苹果不拿来对比一下确实不够意思!

而且,OpenELM并未在论文中提到相关的部署测试,相比之下, Phi-3-mini 已经在 iPhone 14 上实现本地运行并完全离线,实现每秒超过 12 token的生成效率。这波啊,属实是倒反天罡了~

升级的 CVNets:支持更广泛的AI任务

此次随 OpenELM 开源的还有深度神经网络工具包 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中的模型导出为MLX可以运行的格式。与PyTorch相比,CLIP等模型实现了60%的加速(小型号的优势最大)。这可能表明他们消除了PyTorch MPS所遭受的一些驱动延迟。
我不禁觉得这次发布的时机与即将到来的苹果发布会有关。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

律师口才训练技巧课程介绍?

律师口才训练技巧课程介绍 一、课程背景与目标 律师口才作为法律职业的核心能力之一,对于律师在**辩论、法律咨询、谈判协商等场合的表现具有至关重要的作用。然而,许多律师在口才方面存在不足,难以充分发挥自己的专业能力。因此,…

底层逻辑(1) 是非对错

底层逻辑(1) 是非对错 关于本书 这本书的副标题叫做:看清这个世界的底牌。让我想起电影《教父》中的一句名言:花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。 如果你看过梅多丝的《系统之美…

“AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

通义灵码入职阿里云云原生团队后,已经展示过 Ta 生成单元测试和自动生成代码的强大实力。今天,阿里云后端工程师云徊将从项目开发的实际需求出发,演示通义灵码在开发工作中可提供的帮助。 通义灵码在 Git 开发项目中起到了哪些作用&#xff…

WildCard开通GitHub Copilot

更多AI内容请关注我的专栏:《体验AI》 期待您的点赞👍收藏⭐评论✍ WildCard开通GitHub Copilot GitHub Copilot 简介主要功能工作原理 开通过程1、注册Github账号2、准备一张信用卡或虚拟卡3、进入github copilot页4、选择试用5、选择支付方式6、填写卡…

为什么单片机控制电机需要加电机驱动

通常很多地方只是单纯的单片机MCU没有对电机的驱动能力,或者是介绍关于电机驱动的作用,如: 提高电机的效率和精度。驱动器采用先进的电子技术和控制算法,能够精准控制电机的参数和运行状态,提高了电机的效率和精度。拓…

【Hello算法】 > 第 3 关 >栈与队列

数据结构 之 数组与链表 1 栈 / 栈的常见操作、实现、应用2 队列 /队列的常见操作、实现、应用3 双向队列4 Tips ———————————————————————————————————————————————————————————- ————————————————…

Hybrid Homomorphic Encryption:SE + HE

参考文献: [NLV11] Naehrig M, Lauter K, Vaikuntanathan V. Can homomorphic encryption be practical?[C]//Proceedings of the 3rd ACM workshop on Cloud computing security workshop. 2011: 113-124.[MJS16] Maux P, Journault A, Standaert F X, et al. To…

STM32应用开发教程进阶--UART串口重定向(printf)

实现目标 1、掌握STM32 HAL库的串口重定向 2、具体目标:1、实现printf “打印”各种常用的类型的数据变量 一、串口“打印” UART串口通信协议是我们常用的通信协议(UART、I2C、SPI等)之一,全称叫做通用异步收发传输器&#xf…

Druid高性能数据库连接池?SpringBoot整合MyBatis整合SpringMVC整合Druid

文章目录 Druid高性能数据库连接池?SpringBoot整合MyBatis整合SpringMVC整合Druid异常记录spring-boot-starter-parent作用Druid介绍什么是数据库连接池?为什么选择Druid数据库连接池整合SpringBoot,MyBatis,SpringMVC,Druid到Maven项目的真个流程pom文件…

OSPF域间路由防环原则

1.域间路由防环原则 ①原则一 1)为了避免区域间的环路,OSPF规定不同区域间的路由交互只能通过ABR实现。 2)ABR是连接到骨干区域的,所以在区域设计上规定,所有非骨干区域都要连接到骨干区域。区 域间的通讯需要通…

C语言进阶:进阶指针(下)

一、 函数指针数组 我们都知道 数组是一个存放相同类型数据的存储空间 那我们已经学习了指针数组 那么函数有没有对应的指针数组呢? 如果有那应该怎么定义呢? 1. 函数指针数组的定义 我们说 函数指针数组的定义 应该遵循以下格式 int (*p[10])(); 首…

SpringBoot Aop使用篇

Getting Started SpringBoot AOP的实践 AOP相关的概念: Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。就是抽离出来的逻辑类,比如日志、权限…

C++及QT的线程学习

目录 一. 线程学习 二. 学习线程当中,得到的未知。 1. 了解以下MainWindow和main的关系 2. []()匿名函数 有函数体,没有函数名. 3. join和detach都是用来管理线程的生命周期的,它们的区别在于线程结束和资源的回收。 4. operator()() 仿…

4G组网三相四线预付费电表-远程集中抄表

安科瑞薛瑶瑶18701709087/17343930412 DTSY1352 三相预付费电能表分别用于计量额定频率50Hz 的单、三相交流有功电能,具有预付费控制、负载控制、时间控制及 RS485 通信等功能,性能指标符合 GB/T17215.321-2008 标准。是改革传统用电体制&#xff0c…

杰理695的UI模式LED灯控制

UI模式LED灯修改每个模式对应的LED灯闪烁修改在ui_normal_status_deal(u8 *status, u8 *power_status, u8 ui_mg_para)

开源克隆声音的项目-OpenVoice V2

myshell的OpenVoice 出v2版本了 只需要上传一段20秒到5分钟之间的声音,就可以克隆声音。 单人讲话 没有背景噪音 时间在20秒至5分钟之间 本地部署我没有做,我在myshell的官网上测试了一下,可能是上传的音频有杂音,导致不是很清…

人机交互系统文本分类 text classification环节源码(E-commerce)

我把pre-trained model 下载到了本地 效果如下(到时候把代码中的sequence 和labels换成自己的text和分类就行了。): 源码见链接: https://download.csdn.net/download/qqqweiweiqq/89211553

2024年好用又便宜的云手机!哪款性价比高?

随着科技的飞速发展,云计算技术也在不断演进,而云手机作为其创新之一,已经开始在我们的生活中崭露头角。它通过将手机的硬件和软件功能移到云端,让用户能够借助强大的云计算资源完成各种任务。2024年,哪款云手机性价比…

Ubuntu关闭防火墙、关闭selinux、关闭swap

关闭防火墙 打开终端,然后输入如下命令,查看防火墙状态: sudo ufw status 开启防火墙命令如下: sudo ufw enable 关闭防火墙命令如下: sudo ufw disable 关闭selinux setenforce 0 && sed -i s/SELINUXe…

QML中使用正则表达式

我想在TextField控件中使用正则表达式,然后GPT4给出的回答是这样的: TextField {id: versionInputplaceholderText: qsTr("输入版本号")validator: RegExpValidator { regExp: /^[a-zA-Z0-9]*$/ } // 仅允许字母和数字width: 120 // 设置合…