面向边缘端推理的Transformer硬件加快器
概述当前大模子的基础架构正在向 Transformer 布局收敛1,Transformer架构自谷歌2017年提出后比较稳固,因此针对Transformer的计算设计专用的ASIC加快器很有必要。本文面向边缘端的Transformer模子部署做知识积累。
尤其是“Attention is All you Need”==》“Money is All you Need”,哈哈哈。。。
推理加快、推理硬件加快的研究范畴
推理加快是指通过网络布局优化、模子剪枝、量化等本领加快模子收敛,减小模子推理时间
硬件推理加快指通过对模子网络及计算定制化设计硬件电路,从而加快模子计算过程;但由于原始网络规模较大,精度较高,直接设计电路需要的晶体管规模和芯单方面积较大,因此需要对模子进行压缩,在精度不丢失的前提下高效地设计硬件电路。
二者虽然都是加快模子的推理过程,但研究重心不一样,前者关注模子全局计算过程的淘汰,后者关注模子局部计算过程的加快。
专用加快ASIC的必要性
相关研究
范益波@知乎:Vision Transformer低功耗硬件加快器
Sohu
2024年,6 月 26 日,美国新兴的芯片创业公司 Etched 发布其首款 AI 芯片——Sohu,该芯片只能运行Transformer模子。
Etched官网
Etched官网:创始团队宣言
澎湃消息报道
Transformer架构特性
TransFormer的权重数据分为4类,包罗:多头留意力输入线性层权重(Q, K, V)、多头留意力输出线性层权重(O)、前馈神经网络第1层线性层权重(FFN1)和第2层线性层权重(FFN2)。
https://i-blog.csdnimg.cn/direct/409afd8c8e074c31835c4b2029d30ff3.png
计算举动
输入位置编码向量与词嵌入相加
矩阵的加法操纵,矩阵元素是浮点数。
自注力矩阵的计算
Q K T QK^T QKT的矩阵乘计算, d k \sqrt{d_k} dk 的根号运算,以及两个结果相除计算
再将结果进行softmax函数计算,包罗乘法、求和、除法运算。
softmax操纵
s o f t m a x ( Q K T d k ) softmax(\frac{QK^T}{\sqrt{d_{k}}}) softmax(dk QKT)
指数操纵可能导致数值溢出题目
maximum subtraction trick[^5]可以把
https://i-blog.csdnimg.cn/direct/04cba944fa0942f8a1b1b06a88af98cd.png
转变为:
https://i-blog.csdnimg.cn/direct/908edfadf2954d7d977eda62ae567ad6.png
此中 x m a x x_{max} xmax是 x j x_j xj中的最大值
multi-Head Attention的conact和linear操纵
残差求和操纵
层归一化
平均数求和和除法操纵
求方差操纵
归一化处理(求差、除法等)
FFN的两级线性乘加运算
计算特性
矩阵乘占据着大部门的计算时间
如下图所示是LLama7B模子,batch_size=1,输入长度为128场景下各transformer操纵在GPU上的耗时结果。
https://i-blog.csdnimg.cn/direct/954abef6b7c14625ada5257c1fc314b3.png
序列长度增长会导致自留意力计算的占比增长
图片泉源于文章2
https://i-blog.csdnimg.cn/direct/81a12c85091e45aa80d73f7d2f2d7b14.png
大量的浮点数操纵
矩阵计算的最根本元素是浮点数,是浮点数计算会占用大量的计算资源和存储资源,导致能量消耗大,实验速度也很慢
MHA具有较强的并行计算本领
大量的缓存占用
大模子的权重数据多,计算过程中产生大量的中心数据,许多非线性函数的计算数据间存在调用依赖,这些操纵都需要硬件大量的缓存数据。由此需要缓存的数据分为两类:权重和中心数据。
权重树分为4类:QKV三个矩阵的权重值( W Q 、 W K 、 W V W_Q、W_K、W_V WQ、WK、WV),多头留意力输出线性层权重( W O W_O WO)、前馈神经网络第1层线性层权重(FFN1)和第2层线性层权重(FFN2)
高带宽的访存需求
大量权重的载入、中心数据的传递缓存都需要高带宽的访存操纵
Transformer加快面临的寻衅
模子压缩与优化
由于芯单方面积和资本的限制,现阶段的大模子很难在一颗ASIC上部署,因此需要对模子进行压缩。
除了通用的模子量化和剪枝方法,对Transformer架构的模子有专用的优化方法。
网络剪枝
移除网络中权重接近零的毗连剪掉,是网络希罕化的一种本领。
数据量化
数据量化通过将高精度的
人工智能和机器学习入门
将数据精度从浮点型变成int,例如I-bert,这是一个int版本的BERT,文章又基于I-bert做了专用硬件上的适配(3.4章节)。
GitHub: kssteven418 / I-BERT
张量拆分
算子融合
将必要的算子操纵都融合在一起,机动性低,但是性能更好,因为访存淘汰了。
例如将multi-head attention中的线性运算和非线性运算融合在一起。
硬件架构设计
定点数替代浮点数计算
希罕留意力
希罕留意力即让模子阈值低关联度的输入组合,并跳过留意力计算。该方法可以有效优化 O ( n 2 ) O(n^2) O(n2)的留意力算子3,优化极长序列时的性能表现。
详细包罗将计算中对终极结果影响不重要的数据查找,并近似为0,从而淘汰整体计算量。
A3
论文解析——A3: Accelerating Attention Mechanisms in Neural Networks with Approximation
ELSA(ISCA’21)
Sanger(MICRO’21)
DOTA(ASPLOS’22)
将输入采用低秩分解,通过低秩的近似完成系数法处理器
近似计算乘法器(ISSCC’22)
清华大学工作
【论文解析】A 28nm 27.5TOPS/W Approximate-Computing-Based Transformer Processor with Asymptotic Sparsity…
SpAtten(HPCA’21)
MIT工作,网络中靠前的层级连剪枝,靠后的层跨层预测为0,减小计算
基于随机投影的留意力预测
清华大学秦育彬3
留意力层优化
Eager Prediction
预测Softmax的输出,
流水化的全Attention计算硬件加快
将加快器实现加快颗粒度不仅仅局限于矩阵运算、或其他非线性运算,将attention完整的计算通过流水化的方式实现。
硬件设计优化
优化乘法器设计,去除冗余的留意力计算
双缓冲可以使访存操纵和计算实验操纵重叠实验
对于专用加快器设计,通常会把权重、KV cache、Q、K、V矩阵等原数据的值存储到临时存储中,此时该存储的设计带宽、延迟等指标影响了整体计算的性能。乒乓计谋等
参考文献
[*] AI云原生智能算力架构: AI智算及算力全财产链研究报告 2024↩︎
[*]DOTA: Detect and Omit Weak Attentions for Scalable Transformer Acceleration ↩︎
[*]秦育彬:高能效留意力模子计算架构设计 ↩︎ ↩︎
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]