一种Transformer神经网络系统及其运算方法

未命名 08-02 阅读:152 评论:0

一种transformer神经网络系统及其运算方法
技术领域
1.本发明涉及人工智能技术领域,尤其是一种transformer神经网络系统及其运算方法。


背景技术:

2.近年来提出的transformer网络结构在自然语言处理任务上展示了强大的表达能力和处理效果。但是这种应用碰到了瓶颈,模型方法的两大模块,其一是多头注意力残差模块,其二是前向预测残差模块,其注意力计算的复杂度是可以得到克服,但是仅仅做到这一步还不够,系统的性能还与处理器gpu等硬件的发挥有关。
3.transformer模型在自然语言处理领域取得了极大的成功,把transformer的引用引向在自动驾驶、机器人等领域的尝试也显示出了极大的潜力,但是现有技术中,目前存在如下技术问题:缺乏针对视觉映像特点的从网络特征提取到注意力计算的降低存储和计算复杂性的算法;前端算法的提升布置到硬件平台上,做不到整体性能的提升。


技术实现要素:

4.有鉴于此,本发明实施例提供一种transformer神经网络系统及其运算方法,克服存储空间和计算时间的二次方的复杂性,并加快硬件运算速度。
5.本发明实施例的一方面提供了一种transformer神经网络系统,包括:
6.序列特征提取算法模块,用于通过主干的神经网络对输入为信号的序列进行特征提取,并输出稀疏的n:m的神经网络权重;
7.联合多头注意力算法模块,用于将输入的输入信号序列输出为经过稀疏神经网络后得到的动态注意力矩阵,所述动态注意力矩阵由q、k、v注意力矩阵间的关联关系运算得到;
8.高效计算算法模块,用于根据运算特征进行调度,组织运算,对输入的信号进行判断、调度及控制信号,根据密集计算引擎或者稀疏计算引擎进行复杂度降低的特征提取运算;还用于处理多头注意力,对输入的动态注意力矩阵q、k、v,根据判断、调度及控制信号以及密集计算引擎或者稀疏计算引擎,进行复杂度降低的注意力n:m的稀疏运算;
9.transformer硬件加速算法模块,用于在硬件计算和数据搬移之间处理指令与作业调度;
10.判断、控制及调度系统方法算法模块,用于根据各算法模块的系统状态,按照预设的规则对效率进行调度协调,输出对各算法模块的控制与调度等。
11.本发明实施例的另一方面还提供了一种transformer神经网络系统,包括:
12.数据存储模块,包括输入矩阵存储单元、权重矩阵存储单元以及临时矩阵存储单元,输入矩阵存储单元的输入端作为数据存储模块的输入接口;
13.张量运算核,用于运算输入的张量;
14.输入信号主干神经网络处理模块,将输入的待处理图像信号输出为特征提取信
号,作为transformer输入的序列信号的张量输入;
15.联合多头注意力处理模块,将输入的transformer的序列张量输出为注意力矩阵;
16.前向神经网络处理模块,将输入的多头注意力的归一化评价输出为序列的编码后的矢量;
17.高效率计算模块,用于将输入的图像系列和神经网络输出为n:m的稀疏网络稀疏特征;还用于将输入的动态注意力矩阵,所述动态注意力矩阵由q、k、v注意力矩阵间的关联关系运算得到,输出为符合硬件加速条件的稀疏n:m的注意力矩阵;
18.transformer硬件加速处理模块,用于将输入的无规律的稀疏注意力矩阵输出为符合n:m的结构化的稀疏矩阵;还用于将输入的q、k矩阵输出为满足预设的数据流特性的矩阵对;还用于采用autoencoder进行的q、k特征的压缩,将压缩的结果输出至外存储单元;还用于调入外存储q、k特征,进行反向编码,在片内存储中得出结果,在控制模块下,完成指定的运算;
19.残差相加及归一化运算模块,包括残差相加运算模块和层归一化函数运算模块,残差相加模块包括多个加法器,加法器的数量与多头注意力层中任一输入矩阵的行数一致,残差相加模块的输入端接至输入矩阵存储单元的输出端,输出端接至层归一化函数运算模块的输入端;层归一化函数运算模块的输出端作为输出接口;
20.计算引擎阵列,计算引擎阵列包括多个可配置的计算引擎和片上缓存模块;计算引擎包括可配置级数的多精度的加法器、累加器、非线性运算单元以及多个多精度的并行乘法器;计算引擎阵列用于并行执行线性层运算、非线性层运算、单头注意力层、多头注意力运算及全连接层运算以及残差连接运算;运算包括密集矩阵/张量计算、稀疏矩阵/张量计算以及其混合运算;片上缓存模块包括权重缓存区、参数缓存区以及多个特征缓存区;计算引擎阵列通过片上缓存模块连接至片外存储,片上缓存模块用于实现计算引擎阵列与片外存储之间的数据交互;非线性层包括softmax运算模块和归一化运算模块,softmax运算模块的输入端和归一化运算模块的输入端均与计算引擎阵列的输出端连接,softmax运算模块和归一化运算模块均与片上缓存模块连接;softmax运算模块和归一化运算模块用于执行非线性层运算控制模块;计算引擎阵列、softmax运算模块以及归一化运算模块均与控制模块连接;控制模块用于对计算引擎阵列、softmax运算模块以及layernorm运算模块进行运算配置和访存逻辑调度控制;
21.判断、调度及控制系统方法模块,作为控制模块,控制模块分别连接并控制数据存储模块、输入主干神经网络处理模块、联合多头注意力处理模块、前向神经网络处理模块、残差及相加模块及层归一化函数运算模块、数据存取模块、张量运算核、高效率计算模块以及tramsformer加速处理模块。
22.本发明实施例的另一方面还提供了一种transformer神经网络系统的运算方法,包括:
23.设定稀疏目标,确定每一组数为m的权重中,最多不为零的个数为n,设定学习和训练的目标函数;计算连续参数组空间子网的梯度,进行网络的反向传播梯度计算;
24.确定近似目标函数;选择随机矩阵;训练满足动态n:m稀疏要求的近似矩阵;通过近似矩阵预测动态n:m的自注意力矩阵;根据近似矩阵,动态筛选n:m的注意力矩阵的权重。
25.本发明实施例的另一方面还提供了一种transformer神经网络系统的运算方法,
包括:
26.将每个分头注意力评价分张量拼接成一个整体张量;将所述整体张量通过一个一维卷积,得出一个新的张量;根据所述新的张量确定联合多头注意力系数;
27.计算交叉注意力系数矩阵,将所述交叉注意力系数矩阵分裂成多个张量,并按照多头注意力计算流程运算得出同一侧边的多层之间的交叉注意力矩阵;
28.根据动态注意力矩阵q、k、v计算编码和解码互侧的联合交叉注意力。
29.本发明实施例的另一方面还提供了一种transformer神经网络系统的运算方法,包括:
30.确定目标函数;编码器输入序列为嵌入式向量q、k,作为神经网络的输入;解码器的输入为所述编码器的输出;编解码器的编码输出数据存入外存储器;解码的数据由外存储器读入,解码的矢量存入片上存储器;
31.利用影像的q、k矩阵的稀疏特性,采用k-stationary dataflow的方式存储数据;利用影像的q、k矩阵的稀疏特性和transformer的运算秩序,调度硬件内核进行矩阵运算;
32.采用预设方式进行编码;根据数据流取舍矩阵的运算先后次序。
33.本发明实施例的另一方面还提供了一种transformer神经网络系统的运算装置,包括:
34.第一运算单元,用于设定稀疏目标,确定每一组数为m的权重中,最多不为零的个数为n,设定学习和训练的目标函数;计算连续参数组空间子网的梯度,进行网络的反向传播梯度计算;
35.第二运算单元,用于确定近似目标函数;选择随机矩阵;训练满足动态n:m稀疏要求的近似矩阵;通过近似矩阵预测动态n:m的自注意力矩阵;根据近似矩阵,动态筛选n:m的注意力矩阵的权重。
36.本发明实施例的另一方面还提供了一种transformer神经网络系统的运算装置,包括:
37.第三运算单元,用于将每个分头注意力评价分张量拼接成一个整体张量;将所述整体张量通过一个一维卷积,得出一个新的张量;根据所述新的张量确定联合多头注意力系数;
38.第四运算单元,用于计算交叉注意力系数矩阵,将所述交叉注意力系数矩阵分裂成多个张量,并按照多头注意力计算流程运算得出同一侧边的多层之间的交叉注意力矩阵;
39.第五运算单元,用于根据动态注意力矩阵q、k、v计算编码和解码互侧的联合交叉注意力。
40.本发明实施例的另一方面还提供了一种transformer神经网络系统的运算装置,包括:
41.第六运算单元,用于确定目标函数;编码器输入序列为嵌入式向量q、k,作为神经网络的输入;解码器的输入为所述编码器的输出;编解码器的编码输出数据存入外存储器;解码的数据由外存储器读入,解码的矢量存入片上存储器;
42.第七运算单元,用于利用影像的q、k矩阵的稀疏特性,采用k-stationary dataflow的方式存储数据;利用影像的q、k矩阵的稀疏特性和transformer的运算秩序,调
度硬件内核进行矩阵运算;
43.第八运算单元,用于采用预设方式进行编码;根据数据流取舍矩阵的运算先后次序。
44.本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
45.所述存储器用于存储程序;
46.所述处理器执行所述程序实现上述的方法。
47.本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现上述的方法。
48.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
49.本发明针对视觉影像特点,提出了降低体征提取网络、后续注意力运算的复杂度的算法方法;提出了算法方法和硬件协同提升的控制和调度方法;提出了基于上述解决之道的新的transformer模型架构。本发明可以解决与硬件资源匹配的问题,发挥出整体性能优势。本发明的方法,既能为设计终端应用的更优秀的ai处理核、soc集成,或者在类似的平台上开发更新的算法模块带来的技术,也能为直接使用本发明的方法,使用到目前硬件资源中,发挥出transformer的优势。
附图说明
50.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1为本发明实施例提供的一种transformer神经网络系统的算法模块结构图;
52.图2为本发明实施例提供的一种transformer神经网络系统的结构模块结构图;
53.图3为本发明实施例提供的一种处理自注意力的应用示例图;
54.图4为本发明实施例提供的一种处理交叉注意力的应用示例图;
55.图5为本发明实施例提供的一种编码过程示意图;
56.图6为本发明实施例提供的一种注意力分数输入的示意图;
57.图7与图8为本发明实施例提供的一种示例场景图。
具体实施方式
58.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
59.参照图1,本发明实施例提供了一种transformer神经网络系统,具体包括:
60.1.1、序列特征提取算法模块,所述的序列特征提取,其输入为信号的序列,通过预算的神经网络,进行特征提取,其特征提取的运算,输出为稀疏的n:m的神经网络权重。其
中,稀疏的结构化运算可以是指稀疏的n:m运算。
61.1.2、联合多头注意力算法模块,所述的联合多头注意力算法模块,其输入的是输入信号序列,其输出是经过稀疏的神经网络后得到的动态注意力矩阵q、k、v,其中,动态注意力矩阵可以是寻找q、k、v分头的注意力之间的关联并运算得到,态注意力矩阵可以由以下表达式运算得到:
[0062][0063]
1.3、高效计算算法模块,所谓的高效计算模块,如果是处理特征提取,那么其输入的是信号,判断、调度及控制信号,在密集计算引擎或者稀疏计算引擎的作用下,完成在模型准确性保证的条件下的复杂度降低的特征提取运算。如果是处理多头注意力,其输入的是注意力矩阵q,k,v信号,在判断、调度及控制信号,在密集计算引擎或者稀疏计算引擎的作用下,完成在模型准确性保证的条件下的复杂度降低的注意力稀疏的运算。
[0064]
1.4、transformer硬件加速算法模块,其输入是依据注意力矩阵的稀疏特性,依据高效计算的dataflow的特性的判断,其作用是如何在硬件计算和数据搬移之间的发挥硬件效能的指令、作业调度等。
[0065]
1.5、判断、控制&调度系统方法算法模块,其输入是依据在相关的构件模块或者算法模块的系统状态,其输出是对所述的构建模块,或者算法模块中的控制、调度等,按照有关方法对时间进行调度协调。
[0066]
参照图2,本发明实施例提供了另一种transformer神经网络系统,具体包括:
[0067]
2.1、数据存储模块,包括输入矩阵存储单元、权重矩阵存储单元、临时矩阵存储单元,所述输入矩阵存储单元的输入端作为有关模块的输入接口。
[0068]
2.2、张量运算核,包括gemm、sddmm和spmm张量处理运算,其输入张量会分别来自于主干(backbone)神经网络运算处理模块、联合多头注意力处理模块、前向神经网络处理模块、残差相加及层归一化运算模块、高效率计算处理模块及transformer硬件加速处理模块。其运算的结构可以是本模块发出再回到本模块,也可以是在有关控制和调度信号处理下的系统的相关模块。
[0069]
2.3、输入信号主干神经网络处理模块,其输入是待处理的图像信号,其输出是特征提取信号,作为transformer输入的序列信号的张量输入。
[0070]
2.4、联合多头注意力处理模块,其输入是transformer的序列张量,其输出是注意力矩阵,归一化后就是注意力的归一化评价分。
[0071]
2.5、前向神经网络处理模块,其输入是多头注意力的归一化评价其输出是序列的编码后的矢量。
[0072]
2.6、高效率计算模块,如果是要处理稀疏网络,那么输入就是图像系列和神经网络,其输出就是n:m的稀疏网络稀疏特征,如果是处理稀疏注意力,那么其输入就是q,k,v其输出就是符合硬件加速条件的稀疏n:m的在注意力矩阵。
[0073]
2.7、transformer硬件加速处理模块,如果是处理加速稀疏计算任务,那么其输入时无规律的稀疏注意力矩阵,其输出是符合n:m的结构化的稀疏矩阵;如果是要处理单元并行复用,那么其输入是q、k矩阵,而输出是根据处理时序要求的k-stationary的满足注意力计算时序对齐要求的对应的矩阵对;如果是完成结构化稀疏和非结构化稀疏的运算负载的
平衡任务,那么处理的是采用autoencoder进行的q,k特征的压缩,把压缩的结果输出至外存储单元。而为了满足注意力计算要求,需要调入外存储q,k特征,进行反向编码,在片内存储中得出结果,然后再控制模块下,完成需要的运算。其中,硬件发挥上述的计算协同,需要有关硬件加速符合数据流特性dataflow,本发明实施例可以采用多种符合时序要求的实施方式,可选的,本发明实施例可以采用k-stationary的时序要求。
[0074]
2.8、残差相加及归一化运算模块,所述残差相加及归一化模块,包括残差相加运算模块技层归一化函数运算模块,所述的残差相加模块包括多个加法器,所述加法器的数量与所述多头注意力层中任一输入矩阵的行数一致,所述残差相加模块的输入端接至所述输入矩阵存储单元的输出端,输出端接至层归一化函数运算模块的输入端;所述的层归一化函数运算模块的输出端作为该模块的输出接口。
[0075]
2.9、计算引擎阵列,所述计算引擎阵列包括多个可配置的为了高速推理需要的并行计算引擎和片上缓存区;所述计算引擎包括可配置级数的多精度的加法器、累加器、relu单元以及多个多精度的并行乘法器;所述计算引擎阵列用于并行执行线性层运算、非线性层运算、单头注意力层、多头注意力运算、全连接层运算以及残差连接运算;所述的运算包括密集矩阵/张量计算(gemm)、稀疏矩阵/张量计算以及其混合运算(sdmm/spmm);所述片上缓存模块包括权重缓存区、参数缓存区以及多个特征缓存区;所述计算引擎阵列通过所述片上缓存模块连接至片外存储,所述片上缓存模块用于实现所述计算引擎阵列与所述片外存储之间的数据交互;所述非线性层包括softmax运算模块和归一化(norm)运算模块,所述softmax运算模块的输入端和所述归一化(norm)运算模块的输入端均与所述计算引擎阵列的输出端连接,所述softmax运算模块和所述归一化(norm)运算模块均与所述片上缓存模块连接;所述softmax运算模块和所述归一化(norm)运算模块用于执行非线性层运算控制模块,所述计算引擎阵列、所述softmax运算模块以及所述归一化(norm)运算模块均与所述控制模块连接,所述控制模块用于对所述计算引擎阵列、所述softmax运算模块以及所述layernorm运算模块进行运算配置和访存逻辑调度控制;所述的连接,既可以是硬件的连接,也可以是软件的方法消息的传递。
[0076]
2.10、判断、调度及控制系统方法模块,作为控制模块,控制模块分别连接并控制数据存储模块、输入主干神经网络处理模块、联合多头注意力处理模块、前向神经网络处理模块、残差及相加模块及层归一化函数运算模块、数据存取模块、张量运算核、高效率计算模块以及tramsformer加速处理模块。
[0077]
上述一种transformer神经网络系统中的高效计算过程如下所示:
[0078]
3.1、如果是对特征提取的主干网络,进行动态稀疏压缩n:m,那么包括:
[0079]
3.1.1、根据发挥硬件友好的特点,设定稀疏目标,确定每一组数为m的权重中,最多不为零的个数为n,设定的学习和训练的目标函数设定为:
[0080][0081]
其中为观察数据,为损失函数,为l层的网络参数,为n:m稀疏网络参数。
[0082]
3.1.2、如果设:为连续参数组。为对应的n:m需要的参数组。设ξ是本发明实施例中ξ-th最大的门限,w={|w1|,|w2|,...,|wm|},算法搜索由到映射空间
的满足n:m的门限ξ,使得:
[0083][0084]
3.1.3、根据straight through estimator(ste),计算空间子网的梯度,进行网络的反向传播梯度计算。计算公式如下:
[0085][0086][0087]
其中,γt是学习率,λw是一个人为设定的超参数,表示对紧连接的稀疏迭代的精炼化表达式的相对权重,表示第t个iteration的稠密权重,表示的第t次迭代的稠密权重,表示剪枝权重的掩码。

表示hadmard乘积。
[0088]
3.1.4、按照上述的迭代办法,完成网络训练,实现结构化的n:m的网络稀疏化。
[0089]
3.2、如果是针对多头注意力矩阵,其产生动态n:m稀疏要求,包括:
[0090]
3.2.1、确定近似目标函数:
[0091][0092]
3.2.2、选择随机矩阵:
[0093][0094]
3.2.3、训练满足动态n:m稀疏要求的近似矩阵:
[0095][0096]
3.2.4、通过近似矩阵预测动态n:m的自注意力(self attention)矩阵:
[0097][0098]
3.2.5、根据上述近似矩阵,动态筛选n:m的注意力矩阵的权重。
[0099]
上述一种transformer神经网络系统中的联合多头注意力计算过程如下所示:
[0100]
4.1、单层联合多头自注意力算法,包括:
[0101]
4.1.1、将每个分头注意力评价分张量拼接成一个整体张量,表达式如下:
[0102][0103]
其中张量的形状(3-d tensor shape)为nxmxh。
[0104]
4.1.2、把上述张量通过一个一维卷积,得出一个新的张量那么:
[0105][0106]
其中:该核是可学习的。
[0107]
4.1.3、那么多头联合张量可以表示为:
[0108][0109]
其中,σ、为非线性函数。
[0110]
4.1.4、把上述的再次拆分成h个分头注意力系数,得到新的把
每一个分别输入softmax得到归一化的那么最后得到新的联合多头注意力系数如下:
[0111][0112][0113][0114]
4.2、联合多头多层交叉注意力算法,包括:
[0115]
4.2.1、考虑k-th层和l-th层之间的多头多层关联,那么这个交叉注意力系数矩阵可以根据如下的关系演算:
[0116][0117]
其中:cl意指cross layer。而hk是非线性转换函数。
[0118]
4.2.2、把分裂成h个多头的即:
[0119][0120]
新的按照多头注意力计算流程,继续完成后续的运算操作,得出同一侧边的多层之间的交叉注意力矩阵。
[0121]
4.3、如果是编码和解码互侧的联合交叉注意力,那么::
[0122]
4.3.1、其k,v来自于编码侧,而q来自于解码侧。
[0123]
4.3.2、其运算矩阵的规律,同自注意力的算法。
[0124]
4.4、如果是编码侧的多层交叉,然后再和解码侧的某一层进行交叉,那么包括:
[0125]
4.4.1、其编码侧的交叉按照4.2的计算步骤。
[0126]
4.4.2、其最后的输出,按照4.3的方式得出。
[0127]
4.5、如果是解码侧的某一层以前的历史进行交叉,而后再和解码侧的当前层进行交叉,那么包括:
[0128]
4.5.1、其解码侧的历史的多层交叉,其k,v来自于解码侧。
[0129]
4.5.2、在于解码侧的当前层交叉注意计算时,其q来自本层。
[0130]
上述一种transformer神经网络系统中的transformer硬件加速计算过程如下所示:
[0131]
5.1、如果是降低片外存储器与计算引擎之间的数据搬移,方法包括:
[0132]
5.1.1、确定目标函数:
[0133][0134]
5.1.2、处理所述要求的编码器输入序列为嵌入式向量q、k,作为神经网络的输入。
[0135]
5.1.3、处理所述要求的解码器的输入为所述编码器的输出。
[0136]
5.1.4、所述的编解码器的编码的输出数据放入设备的外存储器。
[0137]
5.1.5、其解码的数据由外存储器读入,其解码的矢量放入片上存储器。
[0138]
5.2、如果是非结构化稀疏运算,解决数据流的复用,那么包括:
[0139]
5.2.1、利用影像的q,k矩阵的稀疏特性,采用k-stationary dataflow的方式存储数据。
[0140]
5.2.2、利用影像的q,k矩阵的稀疏特性和transformer的运算秩序,按照k-stationary dataflow的方式,调度sdmm(sampled-based dense-dense matrix multiplication)硬件内核和spmm(sparse-dense matrix multiplication)硬件内核进行矩阵运算。
[0141]
5.3、如果是非结构化稀疏运算,解决稀疏矩阵的编码,那么包括:
[0142]
5.3.1、采取compressed sparse column format编码。
[0143]
5.3.2、根据数据流(dataflow)的特点,取舍矩阵的运算先后次序。
[0144]
为了更详细描述本发明,接下来将以具体实例说明本发明的实际应用过程。
[0145]
实施例一:设计基于新的transformer架构的智能加速的微架构内核。
[0146]
图3是本发明的一个处理自注意力(self attention)的应用,而图4是本发明的一个处理交叉注意力(cross attention)的应用。本发明的直接应用,实施例一,是设计出微架构,嵌入到视觉处理智能加速器之中。
[0147]
用于设计处理视觉任务的智能加速器的微架构,其左边是片外存储器,其中间部分为计算引擎,考虑图像数据可以稀疏成n:m的模式,而且图像的稀疏压缩比可以很高,一般可以做到90%∽95%,其计算引擎又可以设计为两类,其一是密集计算(dense)引擎,其二是稀疏计算(sparse)引擎。其引擎模块中右边部分为使用的处理单元(pe:processing element)阵列布置情况。多个pe的部署,是为了并行计算,提高计算性能的要求。而多个pe阵列根据算法任务模块的要求,构成一个完成某一特定任务的加乘任务线(mac lines)。
[0148]
加速器的计算引擎,完成算法模块的任务时,还包括集成了编解码器神经网络(en/decoder neural network)。
[0149]
密集计算引擎,处理q/k运算,使用sddmm(sampled-based dense-dense matrix multiplication),而处理s/v是采用spmm(sparse-dense matrix multiplication)。
[0150]
稀疏引擎处理则采用spmm计算q、k、v、s矩阵,softmax和其它非线性计算等。
[0151]
密集计算引擎有专用的缓存,具有输出缓存(obuf),权重缓存(wbuf),k/s矢量缓存(k/sbuf),q/v矢量(q/vbuf)。每一个都有并行读/写端口。
[0152]
而稀疏计算引擎也需要专用缓存,具有输出缓存(obuf),权重缓存(wbuf),k/s矢量缓存(k/sbuf),索引(idxbuf),q/v矢量(q/vbuf)。每一个都有并行读/写端口。此外,还有控制逻辑。
[0153]
对于自注意力,编码器编码时,其运算步骤分级联的方式,运算步骤如下:
[0154]
1、第一级线性变换,即输入特征矢量/输入特征矩阵与对应的权重矩阵相乘(wq(kv)),进行线性变换。生成q,k,v矩阵。
[0155]
2、根据多头注意力中每个单独分头进行分块,采取多头处理线(mac line)并行。
[0156]
3、根据pe并行处理和dataflow的演算,在处理单独分头注意力运算时,采取稀疏计算n:m算法。
[0157]
4、采取k参数驻留方法(k-stationary dataflow),以提高数据复用,减少数据搬移开销。
[0158]
5、在第4步的基础上,采用autoenoder,以进一步提高密集型计算和稀疏计算在负
载上的平衡性。
[0159]
6、在上述处理完之后,再根据多头注意力要求,进行合并。
[0160]
7、在第5步的基础上,完成后续的ffn的线性运算,完成该模块的编码。
[0161]
对于交叉注意力,其q矩阵需要来自于编码端,其余编码的步骤同上。
[0162]
实施例二:利用微架构,设计具有输入和输出面临不同场景的编码和解码应用的关键技术核心方案。
[0163]
transformer结构的优点是能够表达相邻及全局之间的互相关注,对于复杂环境的计算机视觉感知的许多任务,往往需要密集型的计算和稀疏型的计算根据不同任务特点协调使用,此时的算法结构以及支撑其算法机构的硬件结构需要在完成任务需要的范围内都能使用,根据本发明提供的微架构技术,可以针对任务需要,完成仅仅需要编码端完成的任务,或者同事需要编码和解码的任务,或者可以完成历史某些时刻的注意与当前的注意之间的关系,也可以是不同编码器的某类特征与当前解码需要的询问的特征之间的关系,甚至是需要针对某些特殊的问题的特征的解决,针对编码历史特征,或者解码历史特征再与当前的询问的特征之间的关系,见图5,由于本发明的创新型的结构,其编解码系统是由多个多头注意力层堆叠而成的,这些不同的多头注意力层之间可以互相关联,实现联合预测,提供了完成此类任务的可行方案。
[0164]
解决此类问题的步骤如下:
[0165]
1、如果是考虑同层的多分头之间的联合关联,那么:
[0166]
1.1、把每个分头的注意力分数按照图6所示的分数输入。
[0167]
1.2、最后得出每一个新的分头输出,此时的分头输出是考虑了其余分头有用信息的新的特征。
[0168]
2、如果是考虑来自同一的编码器或者解码器的不同的多头注意力层的互相的联合,那么不同层之间的组合关系见图5。
[0169]
3、如果是考虑k、v来自编码器,而q来自解码器,那么多头联合的实现方式如下,见图5。
[0170]
4、如果是考虑充分联合编码器端多头注意力,再考虑解码器端多图注意力交叉联合,见图5。
[0171]
实施例三:利用微架构,嵌入自动驾驶等实际应用场景的处理器中,使得终端系统处理现成能力更强。
[0172]
在自动驾驶和机器人的视觉感知中,bev鸟瞰图(bird’s eye view)是一种用于描述感知世界的视角或坐标系的重要感知手段,bev也指在计算机视觉领域内的一种端到端的、由神经网络将视觉信息,从图像空间转换到bev空间的技术。
[0173]
虽然理论上bev可以应用在前、中、后融合过程中,不过因为前融合实现难度大,一般很少将bev应用在前融合,偶尔也会用在后融合上,更多会应用在介于数据级融合和目标级融合之间的特征级融合,即中融合上。所谓中融合,就是先将各个传感器通过神经网络模型提取中间层特征(即有效特征),再对多种传感器的有效主要特征进行融合,从而更有可能得到最佳推理。对有效特征在bev空间进行融合,一来数据损失少,二来算力消耗也较少(相对于前融合),所以一般在bev空间进行中融合比较多。汽车行业目前已经应用的神经网络主干网络和transformer的典型处理见图7所示。
[0174]
在图7中,transformer的结构,可以采用本发明的:
[0175]
1、主干网络特征提取,并且稀疏化n:m,发挥其硬件提升计算性能的优势。
[0176]
2、交叉注意力的处理方式,获得更佳的图像特征处理和信息融合,同事实现高效的运算效率。
[0177]
具体方法如下:
[0178]
1、把多个镜头的特征输入进选定的预选神经网络模型的主干网,得到特征融合的特征。
[0179]
2、按照发明的方法,实现特征提取的高效的运算。
[0180]
3、把时刻t以前的镜头环绕影像序列特征作为自注意力的输入图8的bird's eye view bt-1,和bird's eye view bt。
[0181]
4、按照实施例二的不同层之间的交叉注意力处理接入方式。
[0182]
5、同时考虑bird's eye view中,统一立体视图中需要的多路信号,对空间的多路信号的特征进行注意力交叉关注,需要来自解码端的q,询问不同空间位置的镜头的k,v。最后得出注意力矩阵。
[0183]
transformer应用于视觉领域比较新,本领域的现有技术,一般都未能就实现transformer的整体效能瓶颈,而恰恰是前端的稀疏实现和后端的运算处理引擎之间的协同才能解决整体效能的瓶颈,因而运行在资源受限的终端效果不明显,本发明的优点在于在前人研究的基础上,提出了整体架构的设计和与整体架构设计相容的有关技术。比如:
[0184]
现有技术中的网络稀疏设计,一般都是采用结构化稀疏或者非结构化稀疏算法,其中,非结构化稀疏比结构化的稀疏可以带来很大的压缩比,但是其后续硬件处理后的性能提升反而不如结构化的稀疏效果。就视觉特点而言,大量的已有的研究证明,其稀疏化率可以做到非常高,一般达到90%左右,但是,如果算法不考虑后续的硬件特点,一般这样的处理是不能带来整体性能的提升的,本发明是在满足后续gpu硬件处理特点要求的n:m的稀疏模式下设计算法,并且设计满足算法运行要求的结构设计。
[0185]
当然,更进一步地,有些现有技术中,如果仅仅考虑了上述n:m结构,但是还是静态的,或者采用先验的固定稀疏模式,那么是不能适应视觉信号的动态可变特点的,本发明专利的做法是对于每一个multi-head输出采用符合人脑处理信号特征的动态的、可学习的稀疏算法,不仅如此,本算法还考虑克服掉原始的transformer(vanilla)的多头仅仅是拼接(concatenate)的来表达图像特征的做法,对于所有multi-head还要考虑其联合的统计特性(collaborate)来表达整体特征,那么模型的表达能力才能更好。
[0186]
解决transformer的瓶颈问题,其最根本的目的还是要遵照设计出可以使用话的加速器电路,其核心是加速引擎的设计。现有技术一般不考虑算法与硬件实现的协同问题,一般都未能考虑处理单元(processing element,pe)的运算以及处理器本身与存期器之间的通信问题,为了本发明具有非常强的应用价值,本发明结合transformer和auto encoder的特点,提出了一个transformer的新的网络形式,从而既能够适应上述图像特点要求的算法,实现其设计处理器精简计算要求,也能够根据输入图像特征的大小、网络规模的大小,均衡地、高效地处理运算单元与存储器单元的通信瓶颈问题。
[0187]
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的
处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述所示的方法。
[0188]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0189]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0190]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0191]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0192]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(ram)、只读存储器(rom)、可擦除可编辑只读存储器(eprom或闪速存储器)、光纤装置以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0193]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件
或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0194]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0195]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0196]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。

技术特征:
1.一种transformer神经网络系统,其特征在于,包括:序列特征提取算法模块,用于通过主干的神经网络对输入为信号的序列进行特征提取,并输出稀疏的n:m的神经网络权重;联合多头注意力算法模块,用于将输入的输入信号序列输出为经过稀疏神经网络后得到的动态注意力矩阵,所述动态注意力矩阵由q、k、v注意力矩阵间的关联关系运算得到;高效计算算法模块,用于根据运算特征进行调度,组织运算,对输入的信号进行判断、调度及控制信号,根据密集计算引擎或者稀疏计算引擎进行复杂度降低的特征提取运算;还用于处理多头注意力,对输入的动态注意力矩阵q、k、v,根据判断、调度及控制信号以及密集计算引擎或者稀疏计算引擎,进行复杂度降低的注意力n:m的稀疏运算;transformer硬件加速算法模块,用于在硬件计算和数据搬移之间处理指令与作业调度;判断、控制及调度系统方法算法模块,用于根据各算法模块的系统状态,按照预设的规则对效率进行调度协调,输出对各算法模块的控制与调度等。2.一种transformer神经网络系统,其特征在于,包括:数据存储模块,包括输入矩阵存储单元、权重矩阵存储单元以及临时矩阵存储单元,输入矩阵存储单元的输入端作为数据存储模块的输入接口;张量运算核,用于运算输入的张量;输入信号主干神经网络处理模块,将输入的待处理图像信号输出为特征提取信号,作为transformer输入的序列信号的张量输入;联合多头注意力处理模块,将输入的transformer的序列张量输出为注意力矩阵;前向神经网络处理模块,将输入的多头注意力的归一化评价输出为序列的编码后的矢量;高效率计算模块,用于将输入的图像系列和神经网络输出为n:m的稀疏网络稀疏特征;还用于将输入的动态注意力矩阵,所述动态注意力矩阵由q、k、v注意力矩阵间的关联关系运算得到,输出为符合硬件加速条件的稀疏n:m的注意力矩阵;transformer硬件加速处理模块,用于将输入的无规律的稀疏注意力矩阵输出为符合n:m的结构化的稀疏矩阵;还用于将输入的q、k矩阵输出为满足预设的数据流特性的矩阵对;还用于采用autoencoder进行的q、k特征的压缩,将压缩的结果输出至外存储单元;还用于调入外存储q、k特征,进行反向编码,在片内存储中得出结果,在控制模块下,完成指定的运算;残差相加及归一化运算模块,包括残差相加运算模块和层归一化函数运算模块,残差相加模块包括多个加法器,加法器的数量与多头注意力层中任一输入矩阵的行数一致,残差相加模块的输入端接至输入矩阵存储单元的输出端,输出端接至层归一化函数运算模块的输入端;层归一化函数运算模块的输出端作为输出接口;计算引擎阵列,计算引擎阵列包括多个可配置的计算引擎和片上缓存模块;计算引擎包括可配置级数的多精度的加法器、累加器、非线性运算单元以及多个多精度的并行乘法器;计算引擎阵列用于并行执行线性层运算、非线性层运算、单头注意力层、多头注意力运算及全连接层运算以及残差连接运算;运算包括密集矩阵/张量计算、稀疏矩阵/张量计算以及其混合运算;片上缓存模块包括权重缓存区、参数缓存区以及多个特征缓存区;计算引
擎阵列通过片上缓存模块连接至片外存储,片上缓存模块用于实现计算引擎阵列与片外存储之间的数据交互;非线性层包括softmax运算模块和归一化运算模块,softmax运算模块的输入端和归一化运算模块的输入端均与计算引擎阵列的输出端连接,softmax运算模块和归一化运算模块均与片上缓存模块连接;softmax运算模块和归一化运算模块用于执行非线性层运算控制模块;计算引擎阵列、softmax运算模块以及归一化运算模块均与控制模块连接;控制模块用于对计算引擎阵列、softmax运算模块以及layernorm运算模块进行运算配置和访存逻辑调度控制;判断、调度及控制系统方法模块,作为控制模块,控制模块分别连接并控制数据存储模块、输入主干神经网络处理模块、联合多头注意力处理模块、前向神经网络处理模块、残差及相加模块及层归一化函数运算模块、数据存取模块、张量运算核、高效率计算模块以及tramsformer加速处理模块。3.一种transformer神经网络系统的运算方法,其特征在于,应用于权利要求1或2任一项所述的一种transformer神经网络系统中的动态稀疏压缩计算过程,包括:设定稀疏目标,确定每一组数为m的权重中,最多不为零的个数为n,设定学习和训练的目标函数;计算连续参数组空间子网的梯度,进行网络的反向传播梯度计算;确定近似目标函数;选择随机矩阵;训练满足动态n:m稀疏要求的近似矩阵;通过近似矩阵预测动态n:m的自注意力矩阵;根据近似矩阵,动态筛选n:m的注意力矩阵的权重。4.一种transformer神经网络系统的运算方法,其特征在于,应用于权利要求1或2任一项所述的一种transformer神经网络系统中的联合多头注意力计算过程,包括:将每个分头注意力评价分张量拼接成一个整体张量;将所述整体张量通过一个一维卷积,得出一个新的张量;根据所述新的张量确定联合多头注意力系数;计算交叉注意力系数矩阵,将所述交叉注意力系数矩阵分裂成多个张量,并按照多头注意力计算流程运算得出同一侧边的多层之间的交叉注意力矩阵;根据动态注意力矩阵q、k、v计算编码和解码互侧的联合交叉注意力。5.一种transformer神经网络系统的运算方法,其特征在于,应用于权利要求1或2任一项所述的一种transformer神经网络系统中的transformer硬件加速计算过程,包括:确定目标函数;编码器输入序列为嵌入式向量q、k,作为神经网络的输入;解码器的输入为所述编码器的输出;编解码器的编码输出数据存入外存储器;解码的数据由外存储器读入,解码的矢量存入片上存储器;利用影像的q、k矩阵的稀疏特性,采用k-stationary dataflow的方式存储数据;利用影像的q、k矩阵的稀疏特性和transformer的运算秩序,调度硬件内核进行矩阵运算;采用预设方式进行编码;根据数据流取舍矩阵的运算先后次序。6.一种transformer神经网络系统的运算装置,其特征在于,应用于权利要求1所述的一种transformer神经网络系统,包括:第一运算单元,用于设定稀疏目标,确定每一组数为m的权重中,最多不为零的个数为n,设定学习和训练的目标函数;计算连续参数组空间子网的梯度,进行网络的反向传播梯度计算;第二运算单元,用于确定近似目标函数;选择随机矩阵;训练满足动态n:m稀疏要求的近似矩阵;通过近似矩阵预测动态n:m的自注意力矩阵;根据近似矩阵,动态筛选n:m的注意
力矩阵的权重。7.一种transformer神经网络系统的运算装置,其特征在于,应用于权利要求1或2任一项所述的一种transformer神经网络系统中的联合多头注意力计算过程,包括:第三运算单元,用于将每个分头注意力评价分张量拼接成一个整体张量;将所述整体张量通过一个一维卷积,得出一个新的张量;根据所述新的张量确定联合多头注意力系数;第四运算单元,用于计算交叉注意力系数矩阵,将所述交叉注意力系数矩阵分裂成多个张量,并按照多头注意力计算流程运算得出同一侧边的多层之间的交叉注意力矩阵;第五运算单元,用于根据动态注意力矩阵q、k、v计算编码和解码互侧的联合交叉注意力。8.一种transformer神经网络系统的运算装置,其特征在于,应用于权利要求1或2任一项所述的一种transformer神经网络系统中的transformer硬件加速计算过程,包括:第六运算单元,用于确定目标函数;编码器输入序列为嵌入式向量q、k,作为神经网络的输入;解码器的输入为所述编码器的输出;编解码器的编码输出数据存入外存储器;解码的数据由外存储器读入,解码的矢量存入片上存储器;第七运算单元,用于利用影像的q、k矩阵的稀疏特性,采用k-stationary dataflow的方式存储数据;利用影像的q、k矩阵的稀疏特性和transformer的运算秩序,调度硬件内核进行矩阵运算;第八运算单元,用于采用预设方式进行编码;根据数据流取舍矩阵的运算先后次序。9.一种电子设备,其特征在于,包括处理器以及存储器;所述存储器用于存储程序;所述处理器执行所述程序实现如权利要求3、4或5中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求3、4或5中任一项所述的方法。

技术总结
本发明公开了一种Transformer神经网络系统及其运算方法,模型包括:序列特征提取算法模块、联合多头注意力算法模块、高效计算算法模块、Transformer硬件加速算法模块以及判断、控制及调度系统方法算法模块。本发明既能为设计终端应用的更优秀的AI处理核、SOC集成,或者在类似的平台上开发更新的算法模块带来的技术,也能为直接使用本发明的方法,使用到目前硬件资源中,发挥出Transformer的优势。本发明可以克服存储空间和计算时间的二次方的复杂性,并加快硬件运算速度,可广泛应用于人工智能领域。能领域。能领域。


技术研发人员:张正贵 虞志益 肖山林
受保护的技术使用者:中山大学
技术研发日:2023.03.31
技术公布日:2023/7/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐