尚未崩坏 发表于 2024-8-31 08:07:17

面向边缘端推理的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]
查看完整版本: 面向边缘端推理的Transformer硬件加快器