ICLR 2024|ReLU激活函数的反击,稀疏性仍然是提升LLM效率的利器

news2024/11/15 1:58:58

b771e5a9faeb496392413e44c5fd0a6a.png

 

论文题目: ReLU Strikes Back: Exploiting Activation Sparsity in Large Language Models
论文链接: https://arxiv.org/abs/2310.04564

参数规模超过十亿(1B)的大型语言模型(LLM)已经彻底改变了现阶段人工智能领域的研究风向。越来越多的工业和学术研究者开始研究LLM领域中的难题,例如如何降低LLM在推理过程中的计算需求。

本文介绍一篇苹果发表在人工智能顶会ICLR 2024上的文章,本文针对LLM中激活函数对LLM推理效率的影响展开了研究,目前LLM社区中通常使用GELU和SiLU来作为替代激活函数,它们在某些情况下可以提高LLM的预测准确率。但从节省模型计算量的角度考虑,本文作者认为,经典的ReLU函数对模型收敛和性能的影响可以忽略不计,同时可以显着减少计算和权重IO量。因此作者主张在LLM社区重新评估ReLU的地位(尽可能多的使用ReLU)。

此外,作者还探索了一种基于ReLU的LLM稀疏模式,该模式可以对已激活的神经元进行重新利用来生成出新的高效token。综合这些发现和设计,本文实现了基于ReLU的高效LLM计算方案,相比其他激活函数,将LLM的推理计算量大幅减少三倍

01. 引言

为了提高LLM的推理效率,研究者们提出了包括量化、推测解码、剪枝和权重稀疏化等多种加速手段。通过引入激活函数的稀疏性可以在LLM的精度和计算量之间实现非常可观的效率平衡,尤其是在GPU等现代硬件上。在传统神经网络中经常使用的ReLU激活函数被认为可以有效诱导模型进行稀疏激活,来提高网络的推理效率。本文作者对OPT模型(激活函数使用ReLU)中每层神经元的激活稀疏度进行了测量,如下图(a)所示,所有层的稀疏度均超过90%,这种稀疏度可以在模型训练时GPU 和 CPU 之间的权重IO节省大量时间。对于 OPT 模型,这种稀疏性将推理所需的计算量从每个token的 6.6G FLOPS 减少到 4.5G FLOPS,从而节省了 32% 的计算量(如下图c所示)。

ee2ea9eeae03469dbe5f8cdd4ee370c6.png

 

02. 激活函数对模型综合性能的影响

0166465c45644be6aad2a6b548000181.png

 

上图第二行显示了LLM在使用不同激活函数时的性能指标曲线。可以看出,当使用不同的激活函数时,模型的性能非常相似。这一现象与LLM缩放定律[2]给出的结论一致,即LLM的性能很大程度上取决于计算和数据,而不是架构细节。但是不同激活函数带来的激活稀疏性水平明显不同。上图c反映了模型中所有层的平均稀疏度级别,当激活函数从SiLU过渡到ReLU(增加了门控权重  )时,模型的稀疏性也在增加。

03. ReLU充当预训练LLM的润滑剂

通过上一节的实验作者已经发现,LLM的预测准确率并不依赖于激活函数的类型。但是现有大多数LLM均是使用ReLU之外的激活函数进行训练,因此为了在推理阶段使这些LLM结合ReLU激活的计算优势,作者进行了各种架构改进实验。例如将ReLU合并到预训练LLM中,作者将这一过程称为对LLM的“再润滑”(ReLUfication)。将ReLU插入到预训练LLM中,模型在微调过程中可能快速的恢复性能,同时提高推理时的稀疏性,可谓是一举两得。

3.1 一阶段插入ReLU激活

ReLUfication过程的示意图如下图所示,这个过程可以分为多个阶段完成,一阶段是使用ReLU替换到LLM中的其他激活函数,例如在Falcon 和 Llama分别替换 GELU 和 SiLU。由于 OPT 模型已经使用 ReLU 激活,因此这里保持不变。

32d6ad8ce12e49bfba234ef95a62e7b5.png

 

随后作者将替换ReLU后的模型在RefinedWeb数据集上进行微调,下图分别展示了Falcon 和 Llama在替换后模型稀疏性的对比效果。

d76ee576b8ee45ef8304a12752e59ece.png

 

除了激活稀疏性的显着改善之外,作者还观察到了其他有趣的现象,如下图所示,作者测量了Falcon 和 Llama 预训练模型的预激活分布情况,可以看出,在微调阶段,这个分布本身的变化并不明显,这可能表明网络的预测倾向在引入稀疏性时并不会改变,具有良好的稳定性

defd4bcd4331497484a1b03883443c52.png

 

下图展示了模型的预测准确率随着ReLU的不断微调的变化情况,模型在微调阶段很快恢复了其原本的性能,其中Llama(绿色线条)完美的达到了ReLU插入之前的预测准确率

3.2 二阶段的进一步稀疏化

在一阶段的ReLU融化中,作者插入了ReLU来替代其他激活函数,这会导致模型down projection层的输入变稀疏,稀疏程度大约占总计算量的30%。然而,除了down projection层之外,transformer的解码器层中还有其他复杂的矩阵向量乘法,例如注意力层中的QKV projection,这些矩阵向量乘法大约占总计算量的约 55%,因此对这一部分进行二次稀疏也非常重要。作者发现,在现代transformer层中,注意力层和 FFN 层的输入都来自归一化层(LayerNorm),这些层可以被视为 MLP 的一种特定形式,因为它们并不是学习参数,而是学习如何对输入数据进行缩放,因此作者将ReLU接在归一化层之后来进行二阶段的稀疏激活

6cf78048ff2d4847a30e1b67a5ad6282.png

 

下表展示了ReLUfication调整后,模型的稀疏程度和zero-shot预测精度。其中模型的稀疏性可以分为三种类型:up projection、down projection和QKV projection。可以看到,对LLM的不同部位进行稀疏化后,模型的zero-shot精度变化并不明显,但是计算量的差异很大

e2352ee828da4f4fa0a62f1af8555077.png

 

为了综合评估激活函数对LLM上下文学习能力的影响,作者在下表展示了模型在大规模多任务语言理解(MMLU)任务中的性能,结果表明,当使用不同的激活函数和微调策略来增强原始 LLM 时,模型的zero-shot性能也不会发生显着变化。此外,在相同的FLOPS情况下,参数规模较大但经过ReLU简化后的模型相比原始较小模型的性能更好。总体而言,本文提出的ReLUfication可以降低LLM各个阶段的推理FLOPS,同时保持各种任务的同等性能。

04. 聚合稀疏性:重用已激活的神经元

3189c35c53914cd6a87bf0a6fd7b4886.png

 

3ed0ea39df8347f4912eedecbfd760d2.png

 

可以看出,重用激活方式对模型带来的困惑负面影响几乎可以忽略不记,其曲线与基线方法基本吻合,同时在推理加速方面也远远优于随机稀疏性。

05. 总结

本文对LLM中使用的激活函数进行了大规模的研究,作者发现,在LLM预训练和微调期间激活函数的选择不会对性能产生显着影响,而使用经典的 ReLU 可以为LLM提供稀疏性和更高效的推理效率。考虑到现有流行的LLM(例如Llama和Falcon)均已使用非ReLU激活函数进行预训练,从头对它们进行训练耗费的代价太大,因而作者提出了一种将ReLU激活函数合并到现有预训练LLM中的方法,被称为ReLUfication,ReLUfication具有即插即用的特点,可以在微调阶段快速将模型恢复到与原有状态相当的性能,同时带来显著的推理效率增益。作者在广泛的基准实验(包括zero-shot预测和上下文理解)上证明,在LLM中使用稀疏性激活函数具有强大的潜力。

参考

[1] Dan Hendrycks and Kevin Gimpel. Gaussian error linear units (gelus). arXiv preprint arXiv:1606.08415, 2016.

[2] Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffre Wu, and Dario Amodei. Scaling laws for neural language models. CoRR, abs/2001.08361, 2020.


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

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

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

相关文章

精酿啤酒:创新原料的研发与市场前景

随着消费者口味和需求的不断变化,创新已成为啤酒行业持续发展的重要驱动力。Fendi Club啤酒在创新原料的研发方面走在行业前列,积极探索新型原料和风味组合,以满足市场对多样化、个性化产品的需求。 Fendi Club啤酒注重研发新型原料和添加剂。…

线程安全的队列

学习一下别人写的,线程安全的队列代码。https://github.com/markparticle/WebServer/blob/master/code/log/blockqueue.hhttps://github.com/markparticle/WebServer/blob/master/code/log/blockqueue.h /** Author : mark* Date : 2020-06-16* copy…

【嵌入式——QT】QListWidget

QListWidget类提供了一个基于项的列表小部件,QListWidgetItem是列表中的项,该篇文章中涉及到的功能有添加列表项,插入列表项,删除列表项,清空列表,向上移动列表项,向下移动列表项。 常用API a…

MySQL-CDC 新增同步表确无法捕获增量问题处理

Flink-CDC版本&#xff1a;2.3.0 问题描述 之前通过Flink-CDC捕获Mysql数据库的数据变更情况&#xff0c;代码大致如下&#xff1a; StreamExecutionEnvironment env StreamExecutionEnvironment.getExecutionEnvironment(flinkEnvConf);MySqlSource<String> mysql …

智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人(机器人大模型与具身智能挑战赛)

智能咖啡厅助手&#xff1a;人形机器人 融合大模型&#xff0c;行为驱动的智能咖啡厅机器人(机器人大模型与具身智能挑战赛) “机器人大模型与具身智能挑战赛”的参赛作品。的目标是结合前沿的大模型技术和具身智能技术&#xff0c;开发能在模拟的咖啡厅场景中承担服务员角色并…

adb下载安装及使用教程

adb下载安装及使用教程 一、ADB的介绍1.ADB是什么&#xff1f;2.内容简介3.ADB常用命令1. ADB查看设备2. ADB安装软件3. ADB卸载软件4. ADB登录设备shell5. ADB从电脑上发送文件到设备6. ADB从设备上下载文件到电脑7. ADB显示帮助信息 4.为什么要用ADB 二、ADB的下载1.Windows版…

「MySQL」增删查改

在操作数据库中的表时&#xff0c;需要先使用该数据库&#xff1a; use database;新增 创建表 先用 use 指定一个数据库,然后使用 create 新增一个表 比如建立一个学生表 mysql> use goods; mysql> create table student(-> name varchar(4),-> age int,-> …

Linux系统---nginx(4)负载均衡

目录 1、服务器配置指令 ​编辑 1.1 服务器指令表 1.2 服务器指令参数 2、负载均衡策略指令 2.1 轮询 &#xff08;1) 加权轮询 &#xff08;2) 平滑轮询 2.2 URL 哈希&#xff08;一致性哈希&#xff09; 2.3 IP哈希策略 2.4 最少连接 Nginx 负载均衡是由代理模块和上…

爱心商城|爱心商城系统|基于Springboot的爱心商城系统设计与实现(源码+数据库+文档)

爱心商城系统目录 目录 基于Springboot的爱心商城系统设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1、商品管理 2、捐赠管理 3、公告管理 4、公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#x…

ssm274办公自动化管理系统

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一 、设计说明 1.1课题背…

图结构数据的构建-DGL库

官方文档 一、图的特点 同构性与异构性 相比同构图&#xff0c;异构图里可以有不同类型的节点和边。这些不同类型的节点和边具有独立的ID空间和特征&#xff1b;同构图和二分图只是一种特殊的异构图&#xff0c;它们只包括一种关系 节点与边 有向图一条边、无向图两条边、…

天津廉租房如何申请取得廉租住房租房补贴资格

如何申请廉租住房租赁补贴资格&#xff1f; 低收入住房困难家庭应当向户籍所在地街道办事处&#xff08;乡镇人民政府&#xff09;提出申请。 申请时&#xff0c;您需要提供以下要求的原件和复印件&#xff1a; &#xff08;一&#xff09;您及家人的身份证件&#xff1b; &a…

React富文本编辑器开发(二)

我们接着上一节的示例内容&#xff0c;现在有如下需求&#xff0c;我们希望当我们按下某个按键时编辑器有所反应。这就需要我们对编辑器添加事件功能onKeyDown, 我们给 Editor添加事件&#xff1a; SDocor.jsx import { useState } from react; import { createEditor } from…

羊大师分享,羊奶奶有哪些对健康有益的喝法?

羊大师分享&#xff0c;羊奶奶有哪些对健康有益的喝法&#xff1f; 羊奶奶有多种对健康有益的喝法&#xff0c;以下是一些建议&#xff1a; 直接饮用&#xff1a;将羊奶直接煮沸后饮用&#xff0c;可以保留羊奶中的营养成分&#xff0c;为身体提供全面的滋养。羊奶的丰富蛋白质…

从李一舟看AI浪潮: 聚合数据教你如何把握数据的真正价值

AI热潮的追捧与质疑 在人工智能&#xff08;AI&#xff09;技术的浪潮中&#xff0c;每天都有新的进展让我们惊叹不已。最近&#xff0c;OpenAI的Sora模型如同一颗璀璨的明星&#xff0c;闪耀在科技界的夜空。与此同时&#xff0c;各种AI相关的产品和课程如同春雨后的竹笋&…

四川易点慧电子商务有限公司抖音小店靠谱吗?

在当下电商行业风起云涌的时代&#xff0c;四川易点慧电子商务有限公司作为抖音小店的一家新兴力量&#xff0c;是否靠谱成为了许多消费者和创业者关注的焦点。今天&#xff0c;我们就来深度解析一下这家公司&#xff0c;看看它的抖音小店究竟靠不靠谱。 一、公司背景介绍 四川…

【Mars3d】进行水平测量measure.area({的时候,会被模型遮挡的处理方法

问题&#xff1a; 1.thing/analysis/measure 水平面积 measure.area({ 在模型上测量的时候会被遮挡 2. 通过 addHeight:10000,增加高度也不可以实现这种被遮挡的效果&#xff0c;都增加到10000了&#xff0c;还是会被遮挡 export function measureArea() { measure.area({ s…

释放 群星聚落 时 自动魔免【War3地图编辑器】

文章目录 前言实现原理具体步骤1、创建隐形单位2、新建触发器2.1、新事件开端 2.2、环境→新条件2.3、动作2.3.1、创建单位2.3.2、单位 发布指令(指定单位) 前言 白虎 在斗蛐蛐中又称 白给&#xff0c;因为战绩长期倒数单挑能力和大法师并列倒数第一然而在实战中&#xff0c;大…

【Linux C | 网络编程】getaddrinfo 函数详解及C语言例子

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

视频和音频使用ffmpeg进行合并和分离(MP4)

1.下载ffmpeg 官网地址&#xff1a;https://ffmpeg.org/download.html 2.配置环境变量 此电脑右键点击 属性 - 高级系统配置 -高级 -环境变量 - 系统变量 path 新增 文件的bin路径 3.验证配置成功 ffmpeg -version 返回版本信息说明配置成功4.执行合并 ffmpeg -i 武家坡20…