OpenELM:开启开放训练和推理框架的高效语言模型家族

news2025/1/12 17:22:27

随着大模型模型规模的增长,这些强大工具的透明度、可复现性和对数据偏见的敏感性也引起了人们的关注。这些问题不仅关系到研究的开放性和公平性,也关系到模型输出的可信度和安全性。为了应对这些挑战,Apple的研究团队发布了名为OpenELM的新一代开放语言模型。OpenELM采用了层级缩放策略,优化了变换器模型中每层的参数分配,从而提升了模型的准确性。例如,在大约十亿参数的预算下,OpenELM在准确性上比现有的开放语言模型OLMo提高了2.36%,同时所需的预训练数据减少了一倍。

OpenELM与其他几种大型语言模型在模型大小、预训练令牌数、平均准确率等方面的对比。OpenELM在效率和准确率上超越了其他模型

OpenELM架构

OpenELM采用了解码器仅的变换器架构,这种架构专注于生成文本任务,并且是当前大型语言模型的主流设计。这种架构的优势在于它能够集中所有的参数用于解码,而不是像编码器-解码器架构那样将参数分散在编码和解码两个部分。

OpenELM的一个关键创新是层级缩放策略,它允许模型根据每层的需要分配不同数量的参数。这种策略通过调整变换器层中的注意力头数和前馈网络的维度来实现,使得模型能够更有效地利用其参数预算,从而在各种任务上实现更高的准确性。

OpenELM的架构还包括了一系列先进的组件,如下:

  • RMSNorm: OpenELM使用RMSNorm作为其正规化层,有助于模型训练的稳定性和更快的收敛速度。
  • RoPE(旋转位置嵌入): 这是一种新颖的位置编码方法,可以更有效地捕捉序列中的位置信息。
  • 分组查询注意力(GQA): 替代了传统的多头注意力机制,可能提供更好的注意力聚焦和计算效率。
  • SwiGLU FFN: 这是一种改进的前馈网络,通过门控机制提高了信息处理的能力。
  • Flash Attention: 这是一种高效的注意力计算方法,可以减少内存使用并加速模型的推理过程。

OpenELM的架构设计允许模型进行有效的微调。通过指令调整和参数高效微调(PEFT),模型能够快速适应特定的任务和应用场景,进一步提升其性能。这种灵活性使得OpenELM不仅在预训练阶段表现出色,而且在微调后也能在各种下游任务中发挥出色的性能。

OpenELM的架构和训练过程是完全开放的。研究者和开发者可以访问所有的训练日志、检查点和配置,这种开放性促进了社区的协作和创新,使得OpenELM成为一个强大的、不断进化的语言模型平台。

预训练

OpenELM的预训练使用了多个公共数据集,包括RefinedWeb、去重后的PILE、RedPajama的一个子集以及Dolma v1.6的一个子集,总共约有1.8万亿个token。这些数据的详细情况在表2中进行了总结。

用于OpenELM预训练的具体数据集及其大小,包括RefinedWeb、PILE、Dolma等

OpenELM的变体使用了CoreNet进行了350,000次迭代(或训练步)的训练,并采用了AdamW优化器。训练使用了余弦学习率调度策略,预热5,000次迭代,最终学习率衰减至最大学习率的10%。此外,还使用了权重衰减0.1和梯度裁剪1.0。

OpenELM的性能评估涵盖了不同的任务,并使用了LM Evaluation Harness。评估包括标准零样本任务、OpenLLM排行榜任务和LLM360排行榜任务。这些评估框架允许我们全面评估OpenELM在推理(例如ARC-c、HellaSwag和PIQA)、知识理解(例如MMLU和RACE)以及错误信息和偏见(例如TruthfulQA和CrowS-Pairs)方面的表现。

用于评估OpenELM性能的不同任务和指标,分为三个部分:标准零样本任务、OpenLLM排行榜任务、LLM360排行榜任务        

实验

OpenELM在训练过程中,在多个零样本任务上的准确率变化情况。图表显示了随着训练迭代次数的增加,模型性能的提升

OpenELM在零样本和少样本设置下的性能表现尤为突出。与其他公开可用的大型语言模型相比,例如PyThia、Cerebras-GPT、TinyLlama、OpenLM、MobiLlama和OLMo,OpenELM显示出了其优越性。图1展示了OpenELM在七个标准零样本任务上的准确率随训练迭代次数的变化情况。研究团队观察到,随着训练时间的增加,大多数任务的准确率呈现出整体上升的趋势。

OpenELM与其他几种大型语言模型在不同评估框架下的性能比较,包括在零样本任务和少样本任务上的表现

研究团队还使用经过清洗的UltraFeedback数据集的变体,该数据集包含60k个提示,用于指令调整。通过使用Alignment Handbook库进行指令调整,OpenELM的平均准确率在不同评估框架中一致提高了1-2%。

指令调整对不同尺寸OpenELM模型在各种任务上准确性的影响

在CommonSense推理训练和评估设置中,研究团队使用了170k个训练样本,这些样本跨越了8个多项选择数据集。通过将OpenELM与LoRA和DoRA等方法集成,并使用8个NVIDIA H100 GPU进行微调,表6显示了参数高效微调(PEFT)方法可以应用于OpenELM,并且LoRA和DoRA在给定的CommonSense推理数据集上平均准确率相似。

OpenELM在使用参数高效微调(PEFT)方法LoRA和DoRA后,在常识推理基准测试上的性能

基准测试

研究团队在现代消费级硬件上对OpenELM进行了基准测试,使用了BFloat16数据类型。具体的测试平台包括配备Intel i9-13900KF CPU、64 GB DDR5 4000 DRAM、NVIDIA RTX 4090 GPU的Linux工作站,以及搭载Apple M2 Max系统芯片、64GiB RAM的macOS MacBook Pro。这些基准测试涵盖了模型在不同硬件平台上的推理效率。

基准测试中,研究团队提供了两个独立的性能指标:(1) 提示处理(预填充)的token吞吐量;(2) token生成的吞吐量。此外,还报告了总的组合吞吐量。所有模型的测试都是顺序执行的,并且在每个模型的测试前,执行了一次完整的“干运行”,以生成1024个token,这有助于提高后续模型的生成吞吐量。

OpenELM与其他几种大型语言模型在不同硬件平台上的处理速度(token throughput)比较

基准测试的结果分别在表7a和7b中展示。尽管OpenELM在类似参数规模下展现出了更高的准确性,但在推理速度上却比OLMo慢。通过对模型进行综合分析,研究团队发现OpenELM的大部分处理时间可以归因于其对RMSNorm的简单实现。特别是,与优化过的LayerNorm相比,RMSNorm的简单实现导致了大量的独立核启动,每个核处理的输入量很小,而不是像LayerNorm那样通过单个融合核启动来处理。

分析了归一化层(如LayerNorm和RMSNorm)在OpenELM和OLMo模型中的处理速度,并指出了RMSNorm实现的潜在优化空间

表8进一步展示了归一化层对性能的影响。将OLMo中的LayerNorm替换为RMSNorm后,生成吞吐量显著下降。这表明,尽管Apex的RMSNorm实现相比简单实现在吞吐量上有所提升,但与LayerNorm相比仍存在显著的性能差距。这一发现突出了未来工作在提高OpenELM推理效率方面的优化潜力。

实验结果证明OpenELM作为一种新型的开放语言模型,以其创新的架构和高效的参数分配策略,在自然语言处理领域展现出了卓越的性能和准确性。它所采用的解码器仅变换器架构、层级缩放策略以及一系列先进技术组件,不仅提升了模型的语言理解与生成能力,还保证了模型训练的稳定性和推理的高效率。OpenELM的全面开放性,包括训练日志、检查点和配置的共享,进一步促进了研究社区的协作与知识共享,为未来的技术进步和应用创新奠定了坚实的基础。

论文链接:https://arxiv.org/abs/2404.14619

GitHub地址:https://github.com/apple/corenet

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

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

相关文章

Real-Time 3D Graphics with WebGL2

WebGL渲染管线 下图是WebGL渲染管线的示意图: Vertex Buffer Objects (VBOs) VBOS中包含了用于描述几何体的信息。如,几何体的顶点坐标,法线坐标,颜色,纹理坐标等。 Index Buffer Objects (IBOs) IBOs中包含了描述顶点关系的信…

【Python机器学习】模型评估与改进——二分类指标

目录 1、错误类型 2、不平衡数据集 3、混淆矩阵 与精度的关系。 准确率、召回率与f-分数 分类报告 4、考虑不确定性 5、准确率-召回率曲线 6、受试者工作特征(ROC)与AUC 二分类可能是实践中最常见的机器学习应用,也是概念最简单的应…

Python | Leetcode Python题解之第206题反转链表

题目: 题解: # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def reverseList(self, head: Optional[ListNode]) -> Optio…

开源之夏|祝贺MatrixOne开源社区项目中选同学!

在本届「开源之夏 2024」活动中,MatrixOne开源社区共计上线3个项目任务,最终有 3位同学成功突围。接下来让我们看看每个项目的详细中选情况: 中选学生公示 项目名称:基于大语言模型的操作系统任务自动识别,拆解&#…

Seal^_^【送书活动第8期】——《ChatGLM3大模型本地化部署、应用开发与微调》

Seal^_^【送书活动第8期】——《ChatGLM3大模型本地化部署、应用开发与微调》 一、参与方式二、本期推荐图书2.1 作者建语2.2 编辑推建2.3 图书简介2.4 前 言2.5 目 录 三、正版购买 大模型领域 既是繁星点点的未知宇宙,也是蕴含无数可能的广阔天地, 正…

【Linux】—Hadoop运行环境搭建(完全分布式)

文章目录 前言一、模板虚拟机环境准备二、克隆虚拟机(以hadoop102为例)三、修改克隆机的IP四、安装JDK五、安装Hadoop(完全分布式)六、集群常用命令七、配置集群八、群起并测试集群九、配置历史服务器十、配置日志的聚集十一、集群…

华为DCN之:SDN和NFV

1. SDN概述 1.1 SDN的起源 SDN(Software Defined Network)即软件定义网络。是由斯坦福大学Clean Slate研究组提出的一种新型网络创新架构。其核心理念通过将网络设备控制平面与数据平面分离,从而实现了网络控制平面的集中控制,为…

电脑配置怎么看?3个方法轻松get,这些指标一看便知

无论是购买新电脑、升级现有配置,还是解决电脑运行问题,了解电脑的配置信息都显得尤为重要。那么,电脑配置怎么看?本文将为你介绍3个简单易行的方法,让你轻松获取电脑配置的关键指标,帮助你更好地了解和管理…

3.(vue3.x+vite)el-tree组件(数组结构数据转树结构数据)

1:效果预览 2:编写代码 (1)主页面 <template><el-tree ref="componentInfoTreeRef" :data="treeData

AOP基本概念

AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向切面编程&#xff09;是一种编程范式&#xff0c;用于将横切关注点&#xff08;如日志记录、安全检查、事务管理等&#xff09;从业务逻辑中分离出来&#xff0c;以提高代码的模块化程度和可维护性。以下是AOP的核心…

参数污染漏洞(HPP)挖掘技巧及实战案例全汇总

目录 概念: 漏洞原理: 实战案例总结: 1. 逻辑漏洞(IDOR) 2. 绕过检测(WAF) 挖掘技巧: 修复方案: 概念: HTTP参数污染,也叫HPP(HTTP Parameter Pollution)。简单地讲就是给一个参数赋上两个或两个以上的值,由于现行的HTTP标准没有提及在遇到多个输入值给相…

2.2.3 C#中显示控件BDPictureBox 的实现----控件实现

2.2.3 C#中显示控件BDPictureBox 的实现----控件实现 1 界面控件布局 2图片内存Mat类说明 原始图片&#xff1a;m_raw_mat ,Display_Mat()调用时更新或者InitDisplay_Mat时更新局部放大显示图片&#xff1a;m_extract_zoom_mat&#xff0c;更新scale和scroll信息后更新overla…

第四届数字安全大会:AI时代数据安全策略与天空卫士创新实践

2024年6月22日&#xff0c;以 “新质•真能力”为主题的第四届数字安全大会在北京隆重召开。这场由数世咨询和CIO时代联合主办的行业盛会&#xff0c;集中探讨了大模型、数据治理与流通、以及安全运营等当前最前沿的议题。大会吸引了来自不同行业的首席信息官&#xff08;CIO&a…

JavaScript之深入对象,详细讲讲构造函数与常见内置构造函数

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是前端菜鸟的自我修养&#xff01;今天给大家详细讲讲构造函数与常见内置构造函数&#xff0c;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;原创不易&#xff0c;如果能帮助到带大家&#xff0c;欢迎…

【C++知识点总结全系列 (06)】:STL六大组件详细总结与分析- 配置器、容器、迭代器、适配器、算法和仿函数

STL六大组件目录 前言1、配置器(1)What(2)Why(3)HowA.调用new和delete实现内存分配与销毁B.STL Allocator (4)allocator类A.WhatB.HowC.allocator的算法 2、容器(1)What(2)Which&#xff08;有哪些容器&#xff09;(3)序列容器&#xff08;顺序容器&#xff09;A.WhichB.array&…

世界智能产业博览会开幕 - 天空卫士汽车行业方案入选优秀案例

6月20日&#xff0c;以“智行天下、能动未来”为主题的2024世界智能产业博览会在国家会展中心&#xff08;天津&#xff09;开幕。主席向博览会致贺信并指出&#xff1a;中国高度重视人工智能发展&#xff0c;积极推动互联网、大数据、人工智能和实体经济深度融合&#xff0c;培…

网页设计入门:必备学习技巧和方法总结

网页设计是一个创造性和具有挑战性的设计领域。学习网页设计不仅需要审美能力&#xff0c;还需要设计师有扎实的专业知识来完成各种类型的网页设计项目。要想在网页设计领域脱颖而出&#xff0c;需要不断学习相关知识&#xff0c;提高专业技能。本文将分享网页设计的学习技巧和…

【原理】随机森林模型是怎么训练的

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、随机森林简介二、随机森林训练原理2.1. 随机森林的训练流程2.2. 随机森林训练的核心代码 用过随机森林的朋友都知道&#xff0c;随机森林是集成决策的一个经典代表&#xff0c;它通过训练多棵决策树&#xf…

未公开 GeoServer开源服务器wfs远程命令执行漏洞 已复现(CVE-2024-36401)

0x01 阅读须知 技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成…

【面试系列】UI设计师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…