BEExformer:解决大语言模型部署难题的创新架构 !

大模型向量数据库机器学习

picture.image

基于Transformer的大语言模型(LLMs)在各种应用中取得了前沿成果。然而,它们庞大的规模和处理需求使得在受限资源设备上部署变得极其困难。

在各种效率考虑中,模型二值化和Early Exit(EE)是常用的有效解决方案。但二值化可能会因精度降低导致梯度估计和参数更新性能下降。此外,现有的Early Exit机制仍处于研究的初步阶段。

为解决这些问题,作者提出了一种名为Binarized Early Exit Transformer(BEExformer)的创新性学习架构,它是首个结合Early Exit与二值化的文本推理Transformer结构。

该方法通过可微分的冲击函数二次逼近过程改进了二值化过程,从而实现了对权重符号和幅度的梯度计算。

与基于绝对阈值的Early Exit相比,所提出的Early Exit机制依赖于中间Transformer块间熵的分数减少,并通过软路由损失估计进行机制定义。

二值化使模型大小减少了18.44倍,在推理过程中FLOPs降低了54.85%,并通过解决深层网络固有的“过度思考”问题,提高了5.98%的准确率。此外,所提出的BEExformer简化了训练过程,无需从全精度LLM中进行知识蒸馏。

在GLUE数据集上的广泛评估以及与SOTA工作的对比显示,其具有最优的性能效率折衷。

1 Introduction

在本文中,作者提出了一种首创的文本推理架构,该架构包含多个具有选择性学习能力的二值化Transformer块,并且这些块之间交替排列有决策块,适用于EE。二值化技术涉及一种直观的二值化感知训练(BAT)机制,利用实值潜在权重进行梯度更新。

作者采用一个分段多项式二值化函数,该函数紧密逼近非可微的冲击函数,其导数为分段线性函数,从而确保梯度 Aware 到了权重值的正负和大小。对于EE,在推理过程中,作者估计每个Transformer块之后logits的熵分数变化。如果熵的变化没有超出某个阈值百分比,则满足退出条件,返回最终的logits。这有助于通过消除超出退出点的后续块的执行来减少计算量。

此外,它还解决了由于复杂网络固有的“过度思考”问题而导致的性能损失。在训练期间,作者应用软路由损失,结合所有退出点的损失以有效更新权重并增强每个Transformer块的决策能力。此外,Transformer内嵌了具有选择性学习遗忘网络(SLFN)二值化版本[21],从而消除了不重要信息并更好地理解了长范围依赖关系。所提出的模型从头开始学习其参数。这减少了使用全精度大语言模型作为起点时所需的额外计算和内存需求。尽管如此,与GLUE基准评估中的SOTA方法相比,所提出架构在SST-2、CoLA、MRPC和RTE等任务上表现出帕累托最优的性能-复杂性权衡。

本文的主要贡献如下:

  1. 作者将 Transformer 架构中的权重和激活值通过分段近似脉冲函数的方式二值化,使其可微,并确保基于梯度的权重更新考虑权重的大小及其符号。
  2. 作者基于logits在后续Transformer块之间熵值的分数变化设计了一种EE机制。这既缓解了设置绝对阈值熵值的需求,也解决了“过度思考”的问题。
  3. BEExformer:一种通过多早期退出二值化加速推理的Transformer架构。此外,在每个Transformer块中集成了一个二值化的SLFN,以实现选择性学习并消除不重要的信息。在训练过程中还伴随着软路由损失估计,以增强每个Transformer块的决策能力。

2 Related Works

在本节中,对相关工作进行了评述。由于提出的BEExformer是第一个将二值化与事件检测(EE)结合用于文本推理的模型,因此作者分别回顾了实现BNN和事件检测(EE)的相关工作,专注于文本内容。

2.1 Binarized Neural Networks (BNN)

白等人[17]在BERT模型中实现了权重二值化。为了应对性能急剧下降的问题,他们应用了知识蒸馏和三值权重分割来初始化其模型。然而,他们在二值化激活时遇到了困难,并且由于精度损失导致性能急剧下降,未能实现完全二值化的网络。秦等人[18]提出了一种基于信息熵最大化和方向匹配蒸馏的方法来处理方向不匹配问题,从而实现完全二值化的BERT模型。刘等人[10]提出了一个新的冲击函数近似公式,并根据幅度感知梯度更新权重。

刘等人[19]进一步提出了一种多步蒸馏方法,在最终获得全精度BERT模型的BNN之前,逐步将模型转换为较低精度。他们在训练过程中推理出弹性二值激活参数。上述所有工作都采用了来自全精度模型的知识蒸馏以对抗性能损失。然而,同时运行学生模型和教师模型可能会占用大量内存,而且通常还需要对下游任务进行额外微调以获得最佳效果。由于所提出的BEExformer是第一个结合二值化和增强编码器进行文本推理的模型,作者单独回顾了实现BNN和增强编码器用于文本内容的相关工作。

2.2 Early Exit (EE)

周等人[22]开发了一种早期退出机制,该机制在预训练语言模型(PLM)的层与内部分类器交替使用的情况下实现网络退出。他们确定了连续内部分类器预测的变化,并且如果在给定步数内观察不到变化,则满足退出标准。在相同的研究背景下,辛等人[15]计算了内部分类器预测的熵,若其低于预定阈值,则满足退出标准。然而,确定最优阈值是一个艰巨的任务。

刘等人[23]提出了一种带有动态退出的预训练Transformer模型,在每一层均计算损失,该损失为Masked-Language Modeling (MLM)损失和Sentence-Order Prediction (SOP)损失之和。曼格鲁卡尔等人[13]提出了一种修改版的开关Transformer,通过构建一个开关层来评估句子的复杂性并最优地路由至具有更少层数的专家模型。在此过程中,专家模型包含一组具有不同数量编码层的BERT模型,并跟随一个预测层。在此,专家路由增加了模型复杂度,转化为额外的资源需求。此外,专家路由的有效性取决于专家模型对不同输入模式的专长能力。

3 Proposed Architecture

提出的BEExformer架构对输入序列进行嵌入,并通过级联的二值化Transformer块对其进行处理,每个块后都可以提前退出。每个Transformer块包含参数通过符号和幅度感知梯度更新的二值化多头注意机制(Self-Attention)。此外,一种类似地二值化的选择性学习-遗忘网络取代了传统Transformer架构中的前馈层,以精确估计上下文。对于EE,作者设计了一种直观的标准来监测连续Transformer块之间的熵分数减少量。

一旦满足退出条件,处理流程将被引导至一个辅助块,在该块中包含二值化的前馈层以获得最终预测。这使得架构在二值化的同时还能够通过在执行所有Transformer块之前终止计算来动态减少推理过程中的计算量,从而实现两方面的效率提升。该架构已在图1中示例说明,其组件也在下文中进行了详细解释。

picture.image

BEExformer:一种通过多阶段二值化实现快速推理的Transformer架构

3.1 Input Representation

给定语料库中的输入序列首先会被分词,并构建一个查找表

,它在一词集

中的唯一词

与唯一整数

之间建立一一映射

。对于每个句子,会根据查找表构造分词序列

,如算法1所示。

此外,还会添加填充以确保序列长度一致。

BEExformer:通过多早期退出进行二值化实现快速推理的Transformer架构。分词序列

转换为一系列嵌入

,其中序列中的每个词

会被替换为一个嵌入向量

。这些嵌入在训练过程中随机初始化并优化,类似于其他网络参数。使用位置嵌入

作用于序列上,以确定词的顺序从而生成上下文表示。对于给定位置

和维度

,位置嵌入

根据公式(1)计算得出。

picture.image

最后,将Token嵌入序列

和位置编码序列

按元素 concat(表示为

),以获得嵌入序列

,使得

,如公式(3)所示。

3.2 OverallArchitecture

Backbone 网络由一个序列的 ( C ) 个Transformer块组成,并在每个块之后提供退出机制,如图1(a)所示。它可以函数表示为 ( F(x) ),接受输入 ( x ),并依次包含 ( C ) 个可微函数(每个代表一个Transformer块)。

;组合操作符。第

中间块的隐藏表示被赋予了一个

为了实现EE的目标,定义了一个评价标准。如果该标准在退出点

处被满足,则由第

个退出点返回的logits

将被输入到与其连接的辅助块

中,并返回概率分布

。这已在第三章第四节进行了说明。

此外,BEExformer 利用 BAT(详见第 3.3 节)对所有 Transformer 模块以及辅助模块的权重和激活进行二值化处理以适应 EE。一般而言,二值化层定义如下:

BEExformer:一种基于多早期退出的二值化快速推理Transformer架构

其中,

分别表示计算得到的激活值、激活函数、层操作符、二值化函数、权重、输入激活值和偏置。

3.3 Binarization

在二值化方面,通常应用

(参见方程(7))。然而,由于其不可微特性,无法用于计算梯度。为了改进这一问题,作者首次在Transformer编码器中应用了Bi-Real Net [10] 中提出的针对

的幅度感知近似

。如方程(8)所示,这种近似表示。从图2中

及其导数的比较可以看出,

能够很好地逼近

,并具有可微性。基于

,其导数如方程(9)所示。

picture.image

其中,

是一个可微分的分段多项式函数,它是

的二阶近似。而在梯度计算过程中,

是一个分段线性函数,用于近似

的导数。

常规的梯度下降方法无法直接应用于BNN,因为二值化权重

关于损失

的梯度不足以驱动位翻转。为了缓解这一问题,作者采用BAT,在该方法中,对于第

次迭代的二值化权重

计算得到的梯度被用于更新第

次迭代的真实值权重

。这一点可以通过以下方程展示:

BEExformer:一种通过多早退出二值化加速的快速推理Transformer架构

其中,Bow表示元素 wise 的差分操作,

表示学习率。最后,更新后的二值化权重

固定为

,应用方程 (7)。上述二值化技术在 Transformer 块中的实现细节见第 3.5 节。

3.4 Early Exit

作者提出了一种EE准则,该准则估计各退出点之间的比例熵降低量,即相对于前一退出点的熵的分数降低量。当该值低于某个阈值

时,退出准则满足条件。这在算法2中有所展示。在此过程中,logits的熵

根据公式12和13进行计算。初始时,

的值取为

,这表示logits尽可能均匀地分布在

个类别中的情况。

picture.image

随后,定义一个辅助块

来处理

并预测输出

如下:

这里,

属于二值化 FFN 集合

,如图1d所示。它将

转换为第

个出口的离散概率分布

作为输出。为了确保最小的计算开销,

的参数量相较于 Backbone 网络

来说尽可能少。所提出的EE准则在推理过程中能够抵御输入多样性的影响,只需关注熵的分数减少即可。这缓解了以前工作采用绝对熵阈值处理多样化输入时的局限性。此外,在这种模型中,确定绝对阈值是一个繁琐的过程。相比之下,基于计算预算和输出置信要求来设定

要简单得多。而且,同样的

值可以在多个任务中通用。

BEExformer:通过多早期退出二值化实现的快速推理Transformer架构

3.5 Transformer Blocks

每个Transformer模块将Vaswani等人提出的多头注意力(MHA)模块

二值化,如图1b所示。

个二值化的自注意力

头组成,这些头依赖于 Query

、键

和值

进行计算,计算公式如下:

其中,

通过输入

的二值线性(双线性)变换(详见第 3.3 节)获得,这里

表示序列长度,

表示隐藏表示的维度。相关的计算在方程 (16-18) 中进行了展示。

其中,

。最后,

通过二值化后使用

连接

得到。

为了增强残差连接的效果,采用二值化SLFN来替代常规Transformer架构中的前向层。这是Ansar等人[21]提出的SLFN的改进版本。在SLFN中,有两个遗忘门,

,它们分别帮助消除之前隐藏状态和总输入激活中的不重要信息。此外,它还包含一个选择性学习门

,用于合理估计依赖关系。所有的门都采用了输入激活的二值化,如方程(8)所示。该架构已在图1c中示出,而门的公式已在下方的方程中给出。

其中,

分别表示第

步的全精度输入和第

步的隐藏状态。而

分别表示输入和隐藏状态的权重矩阵。在此过程中,作者对所有输入权重和激活值应用

进行二值化处理。最后,更新的隐藏状态计算如下:

BEExformer:一种通过多早期退出二值化加速的快速推理Transformer架构

3.6 Loss Function

第 (i) 个退出点计算得到的损失函数 (L) 如下所示:

给定输入数据

,其中包含序列标签对

表示第

层出口返回的概率分布,

表示可训练参数,而

是交叉熵函数。提出的模型采用软路由损失目标,即将所有出口层的损失综合起来以增强决策能力。这有助于基于所有出口块的预测结果对出口进行最优评估,同时减少总体损失。总的损失

计算为所有出口的平均损失,即:

其中

是总的出口数量。

4 Experimental Setup

实验的详细信息以及数据集信息已提供。

4.1 Data-Sets

提出的这种方法已经在GLUE基准[25]的各种数据集上进行了测试,包括斯坦福情感树库(SST-2)[26]、语义接受性语料库(CoLA)[27]、微软研究同义句库(MRPC)[28]以及文本蕴含识别(RTE)[25]。这些数据集涵盖了情感分析、语义接受性、文本间语义相似性、同义句检测和蕴含检测等多种任务。评估指标包括MRPC上的F1分数、CoLA上的马修斯相关系数以及其余任务的准确性。

BEExformer:一种通过多早期退出二值化加速的快速推理Transformer架构

4.2 Implementation Details

BEExformer 已在 Google Colab 上实现,使用的是 Python 3 计算引擎,并配备 Nvidia L4 GPU、22.5GB 显存、53GB 系统内存和 201.2GB 磁盘空间。BEExformer 的超参数详情见表1。

picture.image

5 Results and Discussion

5.1 相关工作对比:BEExformer:一种通过多早期退出实现快速推理的二值化Transformer架构

据作者所知,将二值化与早期退出相结合应用于文本内容尚属首次。因此,作者将重点对比仅关注二值化以及神经网络中自然语言处理领域中的早期退出的相关工作。为了便于理解,作者将二值化和早期退出相关工作的结果进行了区分。随后列出了提出的BEExformer及其消融实验的结果。表2基于模型精度、大小和各种任务的性能指标,展示了与相关工作的对比。在量化模型中,BEExformer在所有任务上均优于二值化模型。在某些任务上,它的表现甚至优于8位量化版本。与全精度早期退出模型进行比较时,可以看到,在平均模型大小降低46倍的情况下,BEExformer仍能提供可比拟的性能。

picture.image

5.2 Pareto Optimality

图3清晰地展示了性能与效率权衡方面的帕累托最优性。在此图中,提出的BEExformer在与量化模型以及能效模型的比较中都提供了帕累托最优解。这归因于所提出的BAT方法的有效性以及基于SLFN的Transformer块的强大之处,这些块能够在序列中选择性地捕获重要的上下文信息。此外,能效机制通过提供正确的推理并最小化处理量解决了“过度思考”的问题,从而减少了推理过程中的延迟。

picture.image

5.3 Study of Model Ablations

表2还列出了所提出的BEExformer的各种消融实验结果。其中,BEExformer (WEE)不使用EE是最轻量级的版本,而全精度版本,即BEExformer (FP),在这些消融实验中给出了最优的结果。尽管BEExformer (WEE)比全精度版本BEExformer (FP)小18.44倍,即包含EE的全精度版本,在各任务上的性能下降幅度仅为3.58%。然而,在不应用EE的情况下,即BEExformer (WEE-FP),所提出的BEExformer仍比全精度版本大7.18倍,但在性能上提高了2.66%。此外,BEExformer (FP)与BEExformer (WEE-FP)之间的性能差异为6.24%,而所提出的BEExformer与BEExformer (WEE)之间的性能差异为5.98%。这突显了EE机制在对抗“过度思考”对性能影响方面的有效性。考虑到性能与效率之间的权衡,所提出的BEExformer在所有消融实验版本中表现最佳。

5.4 Distribution of Exit Points

为了更深入地了解情况,作者在图4中绘制了退出点分布以及在所有任务推理过程中未计算(由于EE)的参数数量。观察结果表明,大多数观测值在第二个Transformer块之后退出,而几乎没有样本需要通过最后一个Transformer块。这突显了与传统模型相比,在推理时节省的计算量。

传统模型中,所有样本都会被神经网络中的所有层处理。从计算中节省的参数总数与退出条件满足的时间早晚有关。其最大效果出现在第二次退出时,并随后逐渐减少。对于后续的退出,图表显示虽然在某些情况下频率较高,但它们对节省参数的影响可能不那么显著。一个有趣的现象是,在推理过程中没有样本从第一个块退出。

这一现象可以归因于经过第一个Transformer块执行后熵值从初始值

有显著减少。这表明每个Transformer块都有能力从输入中提取出大量信息,并基于这些信息进行推理。此外,表3展示了与未启用EE的变种相比,BEExformer在所有任务推理过程中FLOPs的整体减少百分比。平均而言,在推理过程中,BEExformer中的EE机制节省了大约

的FLOPs,并且性能提高了

。这证实了作者采用EE的动机是,在推理过程中利用比架构中少的Transformer块数。

picture.image

picture.image

BEExformer:一种通过多早退出二值化加速的快速推理Transformer架构

“总体”表示在所有数据集上的FLOPs平均百分比减少量。EE:应用所提出的早退出机制;WEE:未应用早退出机制;GFLOPs:十亿次浮点运算(GFLOPs)。

GFLOPs已四舍五入到小数点后两位,但百分比减少量是在精确值上计算得出的。

表示希望获得较大值,

表示希望获得较小值。

5.5 Effect ofEE Threshold

作者观察到,效能阈值(

)在决定推理过程中结果效果与FLOPs减少之间的权衡中扮演着至关重要的角色。图5展示了本文提出的小值

(即0.0001)与

时性能的比较。虽然较大的

值可以平均减少4.59%的推理时间,并在BEExformer:一种通过多早期退出实现快速推理的二值化Transformer架构中降低FLOPs,但结果的置信度下降导致性能降低了3.53%。相反,对于较小的

值,输出的置信度增加,但推理延迟略有增加。因此,设置

成为双赢的情况,既能提高性能,又能减少推理中的FLOPs。它解决了“过度思考”的问题,其中logits的熵开始上升而不是下降。另一方面,EE机制允许即使有轻微熵减小的输入继续处理,否则则终止执行。

picture.image

Conclusion

在本文中,作者提出了BEExformer——一种带有选择性学习和事件驱动(EE)的二值化Transformer架构,专门针对文本内容。该架构在训练过程中引入了一种可微分的分段近似来实现二值化,确保梯度计算考虑到实值权重的大小和符号,从而更新最终的二值化权重。

这使得内存需求大幅减少,且性能与全精度模型相当,能够部署在资源受限的边缘设备上。此外,它还具备快速推理能力,可以根据一种直观的技术监测logits中的熵变化,在中间的Transformer块中提前退出推理过程。

这减少了推理阶段的FLOPs,从而降低了延迟。与此同时,事件驱动(EE)为解决大语言模型(LLM)中固有的“过度思考”问题提供了解决方案。通过在GLUE数据集上进行广泛的评估,展示了其在效率和效果方面达到帕累托最优的能力。然而,所提出架构也存在一些局限性。

当前版本基于Transformer编码器,只能用于推理任务,并且由于是一种动态架构,一旦部署模型,就难以预测推理时间和功耗。

未来,作者计划通过探索如何修改提出的BEExformer架构以完成生成任务来克服这些限制。另外,可以设计一个程序来准确预测给定输入的功耗和推理时间。

参考

[0]. BEEXFORMER: A FAST INFERENCING TRANSFORMER ARCHITECTURE VIABINARIZATION WITH MULTIPLE EARLY EXITS .

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论