一种数据处理方法及相关装置与流程

文档序号:31184031发布日期:2022-08-19 18:35阅读:29来源:国知局
一种数据处理方法及相关装置与流程

1.本技术涉及人工智能技术领域,尤其涉及一种数据处理方法及相关装置。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
3.近年来,自注意力网络已经在许多自然语言处理(natural language processing,nlp)任务中得到了很好的应用,例如机器翻译,情感分析和问题解答等。随着自注意力网络的广泛应用,源于自然语言处理领域的自注意力网络在图像分类、目标检测、和图像处理等任务上也取得了很高的性能。
4.由于自注意力网络中存在部分冗余三维计算信息,因此能够减少计算量的稀疏注意力网络应运而生。在稀疏注意力网络中,核心的计算过程是基于两个稠密矩阵计算得到稀疏矩阵,该稀疏矩阵用于表征稀疏注意力特征。目前,计算稀疏矩阵的方式是基于稀疏矩阵中非零元素所在的位置,获取计算非零元素所需的矩阵数据,并逐个计算得到稀疏矩阵中的非零元素。
5.然而,这种稀疏矩阵的计算方式需要频繁地搬运计算所需的矩阵数据,出现矩阵数据的重复搬运,使得数据搬运指令的数量剧增,降低了矩阵运算过程中的计算访存比,导致数据处理的效率较低。


技术实现要素:

6.本技术提供了一种数据处理方法,能够有效地避免矩阵数据的重复搬运,并降低数据搬运指令的数量,提高数据处理的效率。
7.本技术第一方面提供一种数据处理方法,应用于人工智能领域的稀疏注意力网络。该方法包括:获取稀疏矩阵的分块信息,该稀疏矩阵为基于稀疏注意力网络执行运算的期间所得到的中间矩阵,该稀疏矩阵用于执行稀疏注意力网络中后续的运算。在稀疏注意力网络中,该稀疏矩阵中非零元素的分布是具有一定规则的。因此,通过将稀疏矩阵进行划分,能够得到包括了稀疏矩阵中所有非零元素的多个矩阵块,该稀疏矩阵的分块信息则用于指示稀疏矩阵中所划分的多个矩阵块。
8.根据稀疏矩阵的分块信息,从第一矩阵和第二矩阵获取多个矩阵块中每个矩阵块对应的矩阵数据,其中第一矩阵和第二矩阵为用于计算稀疏矩阵的矩阵。例如,在基于图形处理器(graphics processing unit,gpu)执行运算的情况下,第一矩阵和第二矩阵存储于gpu的显存中,gpu可以是通过执行数据搬运指令从显存中将矩阵块所对应的矩阵数据搬运到gpu的运算单元中,以计算矩阵块中的元素的具体值。
9.根据所述矩阵数据,执行矩阵乘运算,得到所述多个矩阵块,所述多个矩阵块包括所述稀疏矩阵中所有的非零元素,且所述多个矩阵块中每个矩阵块包括多个元素。
10.将所述多个矩阵块进行拼接,得到目标矩阵,该目标矩阵用于执行所述稀疏注意力网络中与所述稀疏矩阵相关的运算。也就是说,由多个矩阵块拼接得到的目标矩阵用于代替稀疏矩阵,来实现稀疏注意力网络中与稀疏矩阵相关的其他运算。
11.本方案中,通过预先对稀疏矩阵进行划分,得到稀疏矩阵中的多个矩阵块。在稀疏矩阵的计算过程中,获取计算稀疏矩阵中每个矩阵块所需的矩阵数据,并计算得到每个矩阵块的实际值。最终,由计算得到的多个矩阵块拼接得到用于代替稀疏矩阵的目标矩阵,该目标矩阵能够用于稀疏注意力网络中后续与稀疏矩阵相关的计算。通过将稀疏矩阵划分为多个矩阵块来进行计算,能够有效地避免矩阵数据的重复搬运,并降低数据搬运指令的数量,提高了矩阵运算过程的计算访存比,从而提高数据处理的效率。
12.在一种可能的实现方式中,当稀疏矩阵的多个矩阵块中包括目标元素时,则将稀疏矩阵的多个矩阵块中的目标元素的值调整为零,得到多个调整后的矩阵块,其中目标元素为所述稀疏矩阵中值为零的元素。然后,再将所述多个调整后的矩阵块进行拼接,得到所述目标矩阵。这样一来,目标矩阵中每个位置的元素值与稀疏矩阵中对应位置的元素值相同。
13.也就是说,计算得到的多个矩阵块中与稀疏矩阵中零值元素所在位置对应的元素的值可能并非是零。在这种情况下,则需要将多个矩阵块中特定位置的元素的值调整为零,以使得多个矩阵块中各个位置的元素的值能够与稀疏矩阵中对应位置的元素的值相匹配。
14.本方案中,通过调整多个矩阵块中目标元素的值,可以使得由调整后的矩阵块拼接得到的目标矩阵中每个位置的元素值与稀疏矩阵中对应位置的元素值相同,确保了在后续运算过程中目标矩阵能够替代稀疏矩阵,保证了后续运算的正常执行。
15.此外,在多个矩阵块中具有目标元素的情况下,尽管相较于现有技术增加了少量的多余计算,但是却能够大大减少数据搬运次数并避免数据的重复搬运,从而提高数据处理的效率。
16.在一种可能的实现方式中,稀疏矩阵的多个矩阵块中每个矩阵块的行数或列数相同,所述多个矩阵块用于表示局部注意力特征。例如,在稀疏矩阵后续需要执行归一化操作的情况下,当以稀疏矩阵的行作为基本单位来执行归一化操作时,多个矩阵块中每个矩阵块的列数相同;当以稀疏矩阵的列作为基本单位来执行归一化操作时,多个矩阵块中每个矩阵块的行数相同。
17.当多个矩阵块中每个矩阵块的行数相同时,在列的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的行数与所述多个矩阵块的行数相同。
18.当多个矩阵块中每个矩阵块的列数相同时,在行的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的列数与所述多个矩阵块的列数相同。
19.在一种可能的实现方式中,所述稀疏矩阵的分块信息包括第一分块信息和第二分块信息,所述第一分块信息用于指示所述稀疏矩阵中所划分的多个第一矩阵块,所述多个第一矩阵块的列数相同且所述多个第一矩阵块的总行数等于所述稀疏矩阵的行数,所述第二分块信息用于指示所述稀疏矩阵中所划分的多个第二矩阵块,所述多个第二矩阵块的行数与所述稀疏矩阵的行数相同且所述多个第二矩阵块的列数小于所述稀疏矩阵的列数。其
中,所述多个第一矩阵块可以是用于表示局部注意力特征,所述多个第二矩阵块可以是用于表示全局注意力特征。
20.在基于第一分块信息和第二分块信息计算得到多个第一矩阵块和多个第二矩阵块之后,在行的维度上对所述多个第一矩阵块进行拼接,得到第一目标矩阵;并且,在列的维度上对所述多个第二矩阵块进行拼接,得到第二目标矩阵。然后,在列的维度上对所述第一目标矩阵和所述第二目标矩阵进行拼接,得到所述目标矩阵。
21.在一种可能的实现方式中,在对第一目标矩阵和第二目标矩阵进行拼接之前,可以确定第一目标矩阵和第二目标矩阵中是否包含了在稀疏矩阵中位置相同的元素,即第一目标矩阵和第二目标矩阵中是否包含了重复的元素。
22.例如,若所述第一目标矩阵中的第一元素和所述第二目标矩阵中的第二元素在所述稀疏矩阵中的位置相同,则将所述第二目标矩阵中的第二元素的值调整为零,得到调整后的第二目标矩阵;并在列的维度上对所述第一目标矩阵和所述调整后的第二目标矩阵进行拼接,得到所述目标矩阵。
23.本方案中,通过基于不同的分块信息计算得到稀疏矩阵中不同类型的矩阵块,并在将同类型的矩阵块进行拼接之后,再将两种不同类型的矩阵块进行拼接,得到目标矩阵。基于这种拼接方式,能够在减少矩阵乘运算量的同时,保证数据的连续性,从而尽可能地减少数据的重复搬移。并且,在目标矩阵后续需要执行归一化操作的情况下,能够减少归一化操作的计算量,并且减少归一化操作过程所需执行的数据搬运指令数。
24.在一种可能的实现方式中,该数据处理方法还包括:对所述目标矩阵进行归一化操作,得到归一化的目标矩阵;基于所述归一化后的目标矩阵和第三矩阵,得到输出矩阵,所述输出矩阵为所述稀疏注意力网络中注意力模块的输出,所述第一矩阵、所述第二矩阵和所述第三矩阵是基于不同的权重对同一个矩阵进行运算得到的。
25.例如,上述的第一矩阵可以为稀疏注意力网络中的矩阵q,上述的第二矩阵可以为稀疏注意力网络中的矩阵k,上述的第三矩阵可以为稀疏注意力网络中的矩阵v。其中,矩阵q、矩阵k和矩阵v分别是基于不同的权重对同一个矩阵进行运算得到的。
26.在一种可能的实现方式中,所述基于所述归一化后的目标矩阵和第三矩阵,得到第四矩阵,包括:基于所述目标矩阵的拼接方式,对所述归一化的目标矩阵在列的维度上进行拆分,得到第三目标矩阵和第四目标矩阵,所述第三目标矩阵的大小与所述第一目标矩阵的大小相同,所述第四目标矩阵的大小与所述第二目标矩阵的大小相同;基于所述第一目标矩阵的拼接方式,对所述第三目标矩阵和第三矩阵进行拆分,得到所述第三目标矩阵中的多个矩阵块以及所述第三矩阵中的多个矩阵块,所述第三目标矩阵中的矩阵块与所述第三矩阵中的矩阵块具有一一对应的关系;对所述第三目标矩阵和所述第三矩阵中具有对应关系的矩阵块执行矩阵乘运算,并在行的维度上拼接执行矩阵乘运算后所得到的矩阵块,得到第一输出矩阵;对所述第四目标矩阵和第三矩阵的子矩阵执行矩阵乘运算,得到第二输出矩阵,所述子矩阵是由第三矩阵中的多行元素构成的;将所述第一输出矩阵与所述第二输出矩阵相加,得到所述输出矩阵。
27.本技术第二方面提供一种基于稀疏注意力网络的数据处理方法,包括:获取待处理数据;基于稀疏注意力网络,对所述待处理数据进行处理,得到输出数据;其中,在基于所述稀疏注意力网络处理所述待处理数据的期间,根据第一方面或第一方面任一实现方式所
述的方法执行所述稀疏注意力网络中与稀疏矩阵相关的运算。
28.在一种可能的实现方式中,所述待处理数据包括图像数据、文本数据或语音数据。
29.本技术第三方面提供一种数据处理装置,包括:获取单元和处理单元;所述获取单元,用于获取稀疏矩阵的分块信息,所述稀疏矩阵为基于所述稀疏注意力网络执行运算的期间所得到的中间矩阵,所述分块信息用于指示所述稀疏矩阵中所划分的多个矩阵块;所述获取单元,还用于根据所述分块信息,从第一矩阵和第二矩阵获取所述多个矩阵块中每个矩阵块对应的矩阵数据,所述第一矩阵和所述第二矩阵为用于计算所述稀疏矩阵的矩阵;所述处理单元,用于根据所述矩阵数据,执行矩阵乘运算,得到所述多个矩阵块,所述多个矩阵块包括所述稀疏矩阵中所有的非零元素,且所述多个矩阵块中每个矩阵块包括多个元素;所述处理单元,还用于将所述多个矩阵块进行拼接,得到目标矩阵,所述目标矩阵用于执行所述稀疏注意力网络中与所述稀疏矩阵相关的运算。
30.在一种可能的实现方式中,所述处理单元,具体用于:当所述多个矩阵块中包括目标元素时,将所述多个矩阵块中的目标元素的值调整为零,得到多个调整后的矩阵块,所述目标元素为所述稀疏矩阵中值为零的元素;将所述多个调整后的矩阵块进行拼接,得到所述目标矩阵。
31.在一种可能的实现方式中,所述多个矩阵块中每个矩阵块的行数或列数相同,所述多个矩阵块用于表示局部注意力特征;所述处理单元,具体用于:当多个矩阵块中每个矩阵块的行数相同时,在列的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的行数与所述多个矩阵块的行数相同;当多个矩阵块中每个矩阵块的列数相同时,在行的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的列数与所述多个矩阵块的列数相同。
32.在一种可能的实现方式中,所述分块信息包括第一分块信息和第二分块信息,所述第一分块信息用于指示所述稀疏矩阵中所划分的多个第一矩阵块,所述多个第一矩阵块的列数相同且所述多个第一矩阵块的总行数等于所述稀疏矩阵的行数,所述第二分块信息用于指示所述稀疏矩阵中所划分的多个第二矩阵块,所述多个第二矩阵块的行数与所述稀疏矩阵的行数相同且所述多个第二矩阵块的列数小于所述稀疏矩阵的列数;所述处理单元,具体用于:在行的维度上对所述多个第一矩阵块进行拼接,得到第一目标矩阵;在列的维度上对所述多个第二矩阵块进行拼接,得到第二目标矩阵;在列的维度上对所述第一目标矩阵和所述第二目标矩阵进行拼接,得到所述目标矩阵。
33.在一种可能的实现方式中,所述多个第一矩阵块用于表示局部注意力特征,所述多个第二矩阵块用于表示全局注意力特征。
34.在一种可能的实现方式中,所述处理单元,具体用于:若所述第一目标矩阵中的第一元素和所述第二目标矩阵中的第二元素在所述稀疏矩阵中的位置相同,则将所述第二目标矩阵中的第二元素的值调整为零,得到调整后的第二目标矩阵;在列的维度上对所述第一目标矩阵和所述调整后的第二目标矩阵进行拼接,得到所述目标矩阵。
35.在一种可能的实现方式中,所述处理单元,还用于:对所述目标矩阵进行归一化操作,得到归一化的目标矩阵;基于所述归一化后的目标矩阵和第三矩阵,得到输出矩阵,所述输出矩阵为所述稀疏注意力网络中注意力模块的输出,所述第一矩阵、所述第二矩阵和所述第三矩阵是基于不同的权重对同一个矩阵进行运算得到的。
36.在一种可能的实现方式中,所述处理单元,具体用于:基于所述目标矩阵的拼接方式,对所述归一化的目标矩阵在列的维度上进行拆分,得到第三目标矩阵和第四目标矩阵,所述第三目标矩阵的大小与所述第一目标矩阵的大小相同,所述第四目标矩阵的大小与所述第二目标矩阵的大小相同;基于所述第一目标矩阵的拼接方式,对所述第三目标矩阵和第三矩阵进行拆分,得到所述第三目标矩阵中的多个矩阵块以及所述第三矩阵中的多个矩阵块,所述第三目标矩阵中的矩阵块与所述第三矩阵中的矩阵块具有一一对应的关系;对所述第三目标矩阵和所述第三矩阵中具有对应关系的矩阵块执行矩阵乘运算,并在行的维度上拼接执行矩阵乘运算后所得到的矩阵块,得到第一输出矩阵;对所述第四目标矩阵和第三矩阵的子矩阵执行矩阵乘运算,得到第二输出矩阵,所述子矩阵是由第三矩阵中的多行元素构成的;将所述第一输出矩阵与所述第二输出矩阵相加,得到所述输出矩阵。
37.本技术第四方面提供一种数据处理装置,包括:获取单元和处理单元;所述获取单元,用于获取待处理数据;所述处理单元,用于基于稀疏注意力网络,对所述待处理数据进行处理,得到输出数据;其中,在基于所述稀疏注意力网络处理所述待处理数据的期间,根据第一方面或第一方面任一实现方式所述的方法执行所述稀疏注意力网络中与稀疏矩阵相关的运算。
38.在一种可能的实现方式中,所述待处理数据包括图像数据、文本数据或语音数据。
39.本技术第五方面提供了一种电子设备,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面或第一方面任一实现方式所述的方法。对于处理器执行第一方面的各个可能实现方式中的步骤,具体均可以参阅第一方面,此处不再赘述。
40.本技术第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一实现方式所述的方法。
41.本技术第七方面提供了一种电路系统,所述电路系统包括处理电路,所述处理电路配置为执行上述第一方面或第一方面任一实现方式所述的方法。
42.本技术第八方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一实现方式所述的方法。
43.本技术第九方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器或门限值获取装置实现上述第一方面或第一方面任一实现方式中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
44.图1为本技术实施例提供的一种transformer的结构示意图;
45.图2为本技术实施例提供的一种self-attention结构的结构示意图;
46.图3为本技术实施例提供的一种local attention的矩阵与序列关联方式的示意图;
47.图4为本技术实施例提供的另一种local attention的矩阵与序列关联方式的示
意图;
48.图5为本技术实施例提供的另一种local attention的矩阵与序列关联方式的示意图;
49.图6为本技术实施例提供的一种global attention的矩阵与序列关联方式的示意图;
50.图7为本技术实施例提供的另一种global attention的矩阵的示意图;
51.图8为本技术实施例提供的一种sparse attention结构的计算流程示意图;
52.图9为本技术实施例提供的一种基于传统的稀疏运算来计算稀疏矩阵的示意图;
53.图10为本技术实施例提供的一种数据处理方法的流程示意图;
54.图11为本技术实施例提供的一种稀疏矩阵的划分示意图;
55.图12为本技术实施例提供的一种计算稀疏矩阵中矩阵块的示意图;
56.图13为本技术实施例提供的一种拼接稀疏矩阵中矩阵块的示意图;
57.图14为本技术实施例提供的一种矩阵块拼接方式的对比示意图;
58.图15为本技术实施例提供的一种基于第一分块信息和第二分块信息划分矩阵块的示意图;
59.图16为本技术实施例提供的一种基于第一分块信息和第二分块信息计算矩阵块的示意图;
60.图17为本技术实施例提供的一种基于第一分块信息和第二分块信息划分矩阵块的示意图;
61.图18为本技术实施例提供的一种对归一化后的目标矩阵拆分后进行计算的流程示意图;
62.图19为本技术实施例提供的一种稀疏注意力网络中的注意力模块的计算流程示意图;
63.图20为本技术实施例提供的一种基于稀疏注意力网络的数据处理方法的应用场景;
64.图21为本技术实施例提供的一种gpt-3的数据处理流程示意图;
65.图22为本技术实施例提供的一种数据处理装置2200的结构示意图;
66.图23为本技术实施例提供的执行设备的一种结构示意图;
67.图24为本技术实施例提供的芯片的一种结构示意图。
具体实施方式
68.下面结合附图,对本技术的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
69.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
70.为便于理解,以下先介绍本技术实施例所涉及的技术术语。
71.稀疏矩阵:一种特殊的矩阵。在稀疏矩阵中,数值为0的元素的数目远远多于非0元素的数目,即稀疏矩阵中的大多数元素的数值均为0。
72.注意力网络:一种利用注意力机制来提高模型训练速度的网络模型。目前,典型的注意力网络包括有transformer模型。应用注意力机制的模型能够对输入序列的每个部分赋予不同的权重,从而在输入序列中提取出更加重要的特征信息,使得模型最终得到更加精确的输出。
73.在深度学习中,注意力机制可以由描述重要性的权重向量来实现:在预测或推断一个元素时,通过权重向量来确定该元素与其他元素之间的关联性。比如,对于图像中的某个像素或句子中的某个单词,可以使用注意力向量定量地估计出目标元素与其他元素之间的相关性,并由注意力向量的加权和作为目标值的近似值。
74.深度学习中的注意力机制模拟的是人脑的注意力机制。举个例子来说,当人类观赏一幅画时,虽然人类的眼睛可以看到整幅画的全貌,但是在人类深入仔细地观察时,其实眼睛聚焦的只有整幅画中的一部分图案,这个时候人类的大脑主要关注在这一小块图案上。也就是说,在人类仔细观察图像时,人脑对整幅图像的关注并不是均衡的,是有一定的权重区分的,这就是注意力机制的核心思想。
75.简单来说,人类的视觉处理系统往往会选择性地聚焦于图像的某些部分上,而忽略其它不相关的信息,从而有助于人脑的感知。类似地,在深度学习的注意力机制中,在涉及语言、语音或视觉的一些问题中,输入的某些部分相比其它部分可能更相关。因此,通过注意力模型中的注意力机制,能够使得注意力模型对输入数据的不同部分执行不同的处理,从而使得注意力模型仅动态地关注与任务相关的数据。
76.自注意力(self-attention)机制:自注意力机制是注意力机制的变体,自注意力机制减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。
77.自注意力网络:一种应用了自注意力机制的神经网络。自注意力机制是注意力机制的一种延伸。自注意力机制实际上是一种将单个序列的不同位置关联起来以计算同一序列的表示的注意机制。自注意力机制在机器阅读、抽象摘要或图像描述生成中能够起到关键的作用。
78.以自注意力网络应用于自然语言处理为例,自注意力网络处理任意长度的输入数据并生成输入数据的新的特征表达,然后再将特征表达转换为目的词。自注意力网络中的自注意力网络层利用注意力机制获取所有其他单词之间的关系,从而生成每个单词的新的特征表达。自注意力网络的优点是注意力机制能够在不考虑单词位置的情况下,直接捕捉句子中所有单词之间的关系。
79.稀疏注意力机制:稀疏注意力机制是自注意力机制的变体,相较于自注意力机制,稀疏注意力机制所注意的对象更为稀疏。
80.稀疏注意力网络:一种采用稀疏注意力机制的网络模型,能够减少内存和网络模型的运算量。
81.以稀疏注意力网络应用于自然语言处理为例,稀疏注意力网络处理任意长度的输入数据并生成输入数据的新的特征表达,然后再将特征表达转换为目的词。稀疏注意力网络中的自注意力网络层利用稀疏注意力机制获取每个单词与其他部分单词之间的关系,从
而生成每个单词的新的特征表达。
82.矩阵乘操作(matmul):矩阵乘法是一种根据两个矩阵得到第三个矩阵的二元运算,第三个矩阵即前两者的乘积,通常也称为矩阵积。矩阵可以用来表示线性映射,矩阵积则可以用来表示线性映射的复合。
83.softmax函数,又称归一化指数函数,是逻辑函数的一种推广。softmax函数能将一个含任意实数的k维向量z变换为另一个k维向量σ(z),使得变换后的向量σ(z)中的每一个元素的范围都在(0,1)之间,并且所有元素的和为1。softmax函数的计算方式可以如公式一所示。
[0084][0085]
其中,σ(z)j表示经过softmax函数变换后的向量中第j个元素的值;zj表示向量z中第j个元素的值;zk表示向量z中第k个元素的值;∑表示求和。
[0086]
预训练模型:预训练模型是一个已经训练好的保存下来的网络,该网络已经在一个大型的数据集上进行训练。
[0087]
人工智能加速器:一种专用于人工智能(尤其是人工神经网络、机器视觉、机器学习等)硬件加速的微处理器或计算系统。典型的应用包括机器人学、物联网等数据密集型应用或传感器驱动的任务。例如图形处理器(graphics processing unit,gpu),神经网络处理器(neural network processing unit,npu),张量处理器(tensor processing unit,tpu)等。
[0088]
transformer架构是强大的序列模型,但计算所需的时间和内存随序列长度呈二次方增长。这在很大程度上增大了模型对硬件的存储和算力的要求。可以参阅图1,图1为本技术实施例提供的一种transformer的结构示意图。如图1所示,transformer主要包括多个依次连接的核心模块,每个核心模块包括串行连接的注意力模块和多层感知机。
[0089]
transformer的核心结构为self-attention结构,即上述的注意力模块。self-attention结构中的运算主要包括两个矩阵乘操作以及一个softmax操作。可以参阅图2,图2为本技术实施例提供的一种self-attention结构的结构示意图。
[0090]
如图2所示,在self-attention结构中,通过对输入序列进行升维(即提升输入序列的维度)后,分别基于不同的权重对输入序列的矩阵执行矩阵乘运算,得到三个不同的权重矩阵,即矩阵q、矩阵k和矩阵v。然后,对矩阵q和矩阵k执行矩阵乘运算,得到矩阵a;在对矩阵a执行归一化操作后,得到矩阵a1。最后,对矩阵a1和矩阵v执行矩阵乘运算,得到最终的输出矩阵。
[0091]
其中,batch size为模型训练时数据集中用于对模型权重进行一次反向传播参数更新的一小部分样本,这一小部分样本的大小为batch size,batch size简称为b;sequence length代表的是输入时序列的长度,简称为s;embedding size为输入序列中每个单位的长度,简称为e;head number表示的是在做注意力计算时将序列中的每个单位分割的份数,简称为h;embedding size per head是做注意力计算时将序列中的每个单位分割后的单位长度,简称为e1。
[0092]
研究表明,self-attention结构中存在部分冗余三维计算信息,这意味着可以通
过减少部分冗余的计算来减少transformer结构所需要的计算量和内存量。稀疏注意力(sparse attention)就是一种人为规定的规则稀疏的结构。在实际应用中,sparse attention可以通过稀疏矩阵的形式来表示。sparse attention的基本思路是认为每个元素只跟序列内的一部分元素相关,从而减少关联性的计算。基于sparse attention,能够在减少attention结构计算量的同时,基本不影响模型最终的精度。
[0093]
sparse attention既可以实现减少内存和提高吞吐量的指标,又可以增大模型的可输入序列长度,提高模型的长距离感知能力。因此,高效地实现sparse attention的计算的意义重大。
[0094]
通常来说,现有的sparse attention主要包括局部注意力结构(local attention)。在一些情况下,sparse attention包括local attention和全局注意力结构(global attention)。
[0095]
具体地,在计算机视觉(computer vision,cv)和nlp任务中,输入序列中的单元与局部范围内的其他单元之间的关联性往往较高,而该单元与输入序列中距离较远的其他单元之间的关联性往往较低。local attention则是基于局部范围内的单元之间的关联性较高的特性而得到的。也就是说,local attention主要注重学习局部上下文之间的关联性。
[0096]
可以参阅图3,图3为本技术实施例提供的一种local attention的矩阵与序列关联方式的示意图。如图3中的(a)所示,local attention的矩阵为一个稀疏矩阵,local attention的矩阵中只有部分元素的值是有效的,local attention的矩阵中其他元素的值是无效的。即,在计算local attention的矩阵时,local attention的矩阵中部分元素的值是需要计算的,而其他部分元素的值是无需计算的。
[0097]
如图3中的(b)所示,输入序列中的单元只与该单元所在的局部范围内的单元具有关联性。例如,图3中的(b)所示的输入序列中包括16个单元,该16个单元被划分为4个局部范围,该4个局部范围分别由输入序列中不同位置的4个单元所构成。对于任意一个局部范围,该局部范围内的任意一个单元与该局部范围内的所有单元具有关联性。
[0098]
假设local attention的矩阵是基于输入矩阵1和输入矩阵2计算得到的,那么对于local attention的矩阵中第n行第m列的元素,该元素的值是基于输入矩阵1中第n行的元素和输入矩阵2中第m列的元素计算得到的。因此,在输入序列以输入矩阵来表示的情况下,通过图3中(a)所示的local attention的矩阵,即可实现表示图3中(b)所示的输入序列中单元之间的关联性。在图3中(a)所示的local attention的矩阵中,每一行的元素均用于表示某一个单元与该单元所在的局部范围内的所有单元之间的关联性。
[0099]
可以参阅图4,图4为本技术实施例提供的另一种local attention的矩阵与序列关联方式的示意图。如图4中的(b)所示,输入序列中的单元只与该单元所在的局部范围内且位于该单元前面的其他单元具有关联性。在这种情况下,通过图4中(a)所示的local attention的矩阵,即可实现表示图4中(b)所示的输入序列中单元之间的关联性。在图4中(a)所示的local attention的矩阵中,每一行的元素均用于表示某一个单元与该单元所在的局部范围内位于该单元前面的其他单元之间的关联性。
[0100]
可以参阅图5,图5为本技术实施例提供的另一种local attention的矩阵与序列关联方式的示意图。如图5中的(b)所示,输入序列中的单元只与该单元的前后k个单元以及自身具有关联性。在这种情况下,通过图5中(a)所示的local attention的矩阵,即可实现
表示图5中(b)所示的输入序列中单元之间的关联性。在图5中(a)所示的local attention的矩阵中,每一行的元素均用于表示某一个单元与该单元的前后k个单元以及自身之间的关联性。
[0101]
一般来说,local attention能够在很好地学习局部关联性的同时,大量地减少了矩阵运算所需的计算量。但是,local attention的主要缺点是会丢失一些全局关联之间的信息,即local attention无法体现输入序列中某一个单元与整个输入序列中其他单元之间的关联性。
[0102]
global attention能够表示输入序列中某一个单元与整个序列的单元之间的关联性,从而能够很好地弥补local attention所丢失的一些全局关联信息。但是,global attention的计算量相对较大,一般适用于如问答任务等需要长关联信息的任务。通常来说,global attention矩阵中的表示方式与模型对应的任务相关。
[0103]
可以参阅图6,图6为本技术实施例提供的一种global attention的矩阵与序列关联方式的示意图。如图6中的(b)所示,输入序列划分为4个局部范围,每个局部范围中特定位置单元(例如每个局部范围中最后一个单元)与整个输入序列中的所有单元具有关联性。在这种情况下,通过图6中(a)所示的global attention的矩阵,即可实现表示图6中(b)所示的输入序列中单元之间的关联性。在图6中(a)所示的local attention的矩阵中,每一列的元素均用于表示某一个单元与整个输入序列中的所有单元之间的关联性。
[0104]
此外,还可以参阅图7,图7为本技术实施例提供的另一种global attention的矩阵的示意图。
[0105]
目前,稀疏注意力网络是在transformer的基础上,对transformer中的self-attention结构进行改进而得到的,即将transformer中的self-attention结构变换为sparse attention结构。具体地,以图为例,在计算得到矩阵q、矩阵k和矩阵v后,对矩阵q和矩阵k执行稀疏计算,得到包括local attention的稀疏矩阵。然后,对稀疏矩阵进行归一化操作后,对归一化操作后的矩阵和矩阵v执行稀疏计算,得到sparse attention结构的输出。
[0106]
具体地,sparse attention结构中包括三个稀疏计算算子,分别为:dense matmul dense to sparse,sparse softmax和sparse matmul dense to dense。以下将结合附图分别介绍上述的三个稀疏计算算子。
[0107]
(1)dense matmul dense to sparse。
[0108]
dense matmul dense to sparse是用于实现矩阵q和矩阵k相乘得到稀疏矩阵a的过程。dense matmul dense to sparse是根据稀疏矩阵a中目标计算位置(即有效元素在稀疏矩阵a中的位置)的位置信息,获取相应的矩阵数据并计算目标计算位置的元素值。在稀疏矩阵的计算过程中,如果要计算完稀疏矩阵中所有目标计算位置的元素值,需要执行多次矩阵乘的指令,并且会从矩阵q和矩阵k中搬运重复的矩阵数据。
[0109]
可以参阅图8,图8为本技术实施例提供的一种sparse attention结构的计算流程示意图。如图所示,在计算稀疏矩阵a的过程中,根据稀疏矩阵a中有效元素所在的位置,从存储单元(例如gpu的显存)中将矩阵q和矩阵k中对应的矩阵数据搬运到运算单元中,并在运算单元中执行矩阵乘运算,得到有效元素的值。通过逐个计算稀疏矩阵a中有效元素的值,得到稀疏矩阵a。
[0110]
(2)sparse softmax。
[0111]
sparse softmax是用于实现稀疏矩阵a的softmax操作,即对稀疏矩阵a中的最后一个维度进行softmax操作,从而得到稀疏矩阵a1。具体地,sparse softmax主要是根据稀疏矩阵中每个有效元素的位置信息来确定需要执行softmax操作的有效输入。如图8所示,通过对稀疏矩阵a中的每一行执行softmax操作,得到稀疏矩阵a1。其中,稀疏矩阵a1中的有效元素的位置与稀疏矩阵a中有效元素的位置是相同的。
[0112]
(3)sparse matmul dense to dense。
[0113]
sparse matmul dense to dense是用于实现稀疏矩阵a1与矩阵v相乘得到输出矩阵的过程。具体地,通过稀疏矩阵a1中有效元素的位置信息找到矩阵v中的有效计算块,并将矩阵v中的有效计算块与稀疏矩阵a1中对应的计算块执行矩阵乘,直至完成稀疏矩阵a1中所有计算块的计算,得到sparse attention的输出矩阵。
[0114]
基于上述的介绍可知,现有的sparse attention实现方案是基于传统的稀疏运算来执行数据的处理。相较于self-attention实现方案,虽然现有的sparse attention实现方案能够有效地降低了运算量以及内存量,但是由于运算过程中将稀疏矩阵中的数据的切分得过细,矩阵数据的搬运过程将会变得过于复杂,增加了大量的搬运指令数,计算访存比很低。由于在实际应用中,执行搬运指令来实现数据搬运所耗费的时间远大于基于数据执行矩阵乘运算的时间,因此在增加了大量的搬运指令数的情况下,会导致数据处理的效率较低。
[0115]
此外,在基于ai加速器执行矩阵乘运算的情况下,由于ai加速器中的运算单元能够同时处理较大的矩阵,因此现有的sparse attention实现方案在ai加速器上获得的加速收益会相对较低,容易造成算力浪费。
[0116]
示例性地,可以参阅图9,图9为本技术实施例提供的一种基于传统的稀疏运算来计算稀疏矩阵的示意图。如图9所示,稀疏矩阵为16*16大小的矩阵,该稀疏矩阵中的有效元素的数量为64,因此在基于传统的稀疏运算计算该稀疏矩阵时,需要执行64次矩阵乘运算。并且,执行每次矩阵乘运算之前都需要从存储单元中将矩阵q和矩阵k中的矩阵数据搬运至运算单元中,即需要执行128次数据搬运指令。
[0117]
以位于稀疏矩阵的前4行以及前4列中的有效元素为例,稀疏矩阵的前4行以及前4列中一共包括16个有效元素。在计算稀疏矩阵中第一行第一列的有效元素的值时,需要搬运矩阵q中的第一行数据以及矩阵k中的第一列数据;在计算稀疏矩阵中第一行第二列的有效元素的值时,需要搬运矩阵q中的第一行数据以及矩阵k中的第二列数据;在计算稀疏矩阵中第二行第一列的有效元素的值时,需要搬运矩阵q中的第二行数据以及矩阵k中的第一列数据。以此类推,在计算上述16个有效元素的值的过程中,矩阵q中前四行中的每一行的数据均需要搬运四次,矩阵k中前四列中的每一列的数据均需要搬运四次,造成了矩阵数据的重复搬运,从而降低了稀疏矩阵的计算效率。
[0118]
有鉴于此,本技术实施例提供了一种数据处理方法,通过预先对稀疏矩阵进行划分,得到稀疏矩阵中的多个矩阵块。在稀疏矩阵的计算过程中,获取计算稀疏矩阵中每个矩阵块所需的矩阵数据,并计算得到每个矩阵块的实际值。最终,由计算得到的多个矩阵块拼接得到用于代替稀疏矩阵的目标矩阵,该目标矩阵能够用于稀疏注意力网络中后续与稀疏矩阵相关的计算。通过将稀疏矩阵划分为多个矩阵块来进行计算,能够有效地避免矩阵数
据的重复搬运,并降低数据搬运指令的数量,提高了矩阵运算过程的计算访存比,从而提高数据处理的效率。
[0119]
本技术实施例所提供的数据处理方法可以应用于电子设备上,尤其是需要基于稀疏注意力网络执行数据处理任务的电子设备。示例性地,该电子设备例如可以是服务器、智能手机(mobile phone)、个人电脑(personal computer,pc)、笔记本电脑、平板电脑、智慧电视、移动互联网设备(mobile internet device,mid)、可穿戴设备,虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线电子设备、无人驾驶(self driving)中的无线电子设备、远程手术(remote medical surgery)中的无线电子设备、智能电网(smart grid)中的无线电子设备、运输安全(transportation safety)中的无线电子设备、智慧城市(smart city)中的无线电子设备、智慧家庭(smart home)中的无线电子设备等。
[0120]
以上介绍了本技术实施例提供的数据处理方法所应用的设备,以下将介绍本技术实施例提供的数据处理方法所应用的场景。
[0121]
本技术实施例所提供的数据处理方法可以应用于稀疏注意力网络中,该稀疏注意力网络用于执行计算机视觉任务或自然语言处理任务。即,电子设备通过稀疏注意力网络执行计算机视觉任务或自然语言处理任务的期间,可以使用本技术实施例提供的数据处理方法来执行运算。
[0122]
其中,自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。自然语言处理研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。一般地,自然语言处理任务主要包括机器翻译、舆情监测、自动摘要生成、观点提取、文本分类、问题回答、文本语义对比以及语音识别等任务。
[0123]
计算机视觉是一门研究如何使机器学会看的科学。更进一步地说,计算机视觉就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使得处理得到的图像成为更适合人眼观察或传送给仪器检测的图像。通常来说,计算机视觉任务包括图像识别(image classification)、目标检测(object detection)、语义分割(semantic segmentation)以及图像生成(image generation)等任务。
[0124]
图像识别是常见的分类问题,通常也称为图像分类。具体地,在图像识别任务中,神经网络的输入为图像数据,输出值为当前图像数据属于每个类别的概率。通常选取概率值最大的类别作为图像数据的预测类别。图像识别是最早成功应用深度学习的任务之一,经典的网络模型有vgg系列、inception系列以及resnet系列等。
[0125]
目标检测是指通过算法自动检测出图像中常见物体的大致位置,通常用边界框(bounding box)来表示物体的大致位置,并分类出边界框中物体的类别信息。
[0126]
语义分割是指通过算法自动分割并识别出图像中的内容。语义分割可以理解为每个像素点的分类问题,即分析每个像素点属于物体的类别。
[0127]
图像生成是指通过学习真实图像的分布,并从学习到的分布中采样而获得逼真度较高的生成图像。例如,基于模糊的图像生成清晰的图像;基于带雾的图像生成去雾后的图像。
[0128]
以上介绍了本技术实施例提供的数据处理方法所应用的场景,以下将介绍本技术实施例所提供的数据处理方法的具体流程。可以参阅图10,图10为本技术实施例提供的一
种数据处理方法的流程示意图。如图10所示,本技术实施例提供的数据处理方法应用于稀疏注意力网络,该数据处理方法包括以下的步骤1001-1004。
[0129]
步骤1001,获取稀疏矩阵的分块信息,所述稀疏矩阵为基于所述稀疏注意力网络执行运算的期间所得到的中间矩阵,所述分块信息用于指示所述稀疏矩阵中所划分的多个矩阵块。
[0130]
通常来说,在基于稀疏注意力网络执行运算的过程中,会根据两个矩阵计算得到稀疏矩阵,该稀疏矩阵即为运算过程中所得到的中间矩阵,该稀疏矩阵用于执行稀疏注意力网络中后续的运算。示例性地,如图8所示,在基于稀疏注意力网络执行运算的期间,对矩阵q和矩阵k执行稀疏计算,得到稀疏矩阵。
[0131]
由于稀疏注意力网络中的稀疏矩阵通常是一种规则稀疏的矩阵,即稀疏矩阵中非零元素的分布是具有一定规则的。因此,本技术实施例中可以对稀疏矩阵进行划分,得到多个矩阵块。划分后的多个矩阵块中包括了稀疏矩阵中所有的非零元素,通过计算多个矩阵块中的元素的值,能够得到稀疏矩阵中所有非零元素的值,以实现稀疏矩阵的计算。其中,划分得到的多个矩阵块中的每个矩阵块均包括稀疏矩阵中的多个非零元素。并且,由于稀疏矩阵中的非零元素远少于值为零的元素,划分后得到的多个矩阵块中所包括的元素的总数也少于稀疏矩阵中的元素总数。
[0132]
示例性地,可以参阅图11,图11为本技术实施例提供的一种稀疏矩阵的划分示意图。如图11所示,图11中(a)所示的稀疏矩阵共划分了4个矩阵块,每个矩阵块的行数和列数均为4,每个矩阵块均包括16个非零元素,该4个矩阵块包含了稀疏矩阵中所有的非零元素。
[0133]
图11中(b)所示的稀疏矩阵共划分了4个矩阵块,矩阵块的划分方式与图11中(a)所示的划分方式相同。并且,每个矩阵块均包括10个非零元素,该4个矩阵块包含了稀疏矩阵中所有的非零元素。
[0134]
图11中(c)所示的稀疏矩阵共划分了4个矩阵块,每个矩阵块的行数为4且列数为8,该4个矩阵块包含了稀疏矩阵中所有的非零元素。
[0135]
此外,在图11所示的三种稀疏矩阵的划分方式中,稀疏矩阵中划分得到的多个矩阵块之间均没有重叠的部分。并且,每个矩阵块的列数均相同,且多个矩阵块的总行数与稀疏矩阵的总行数相同。
[0136]
具体地,在执行稀疏注意力网络中与稀疏矩阵相关的运算(即稀疏矩阵作为输入的运算)之前,可以获取稀疏矩阵的分块信息,以确定稀疏矩阵中的矩阵块的划分方式。其中,该分块信息指示了稀疏矩阵中所划分的多个矩阵块。例如,该分块信息可以指示稀疏矩阵中所划分的多个矩阵块分别在稀疏矩阵中的位置信息。
[0137]
以图11中的(a)为例,稀疏矩阵中被划分为4个矩阵块,该稀疏矩阵对应的分块信息可以是指示:第一个矩阵块的位置信息为第一行至第四行与第一列至第四列的交集所处的位置;第二个矩阵块的位置信息为第五行至第八行与第五列至第八列的交集所处的位置;第三个矩阵块的位置信息为第九行至第十二行与第九列至第十二列的交集所处的位置;第四个矩阵块的位置信息为第十三行至第十六行与第十三列至第十六列的交集所处的位置。
[0138]
步骤1002,根据所述分块信息,从第一矩阵和第二矩阵获取所述多个矩阵块中每个矩阵块对应的矩阵数据,所述第一矩阵和所述第二矩阵为用于计算所述稀疏矩阵的矩
阵。
[0139]
在获取到分块信息后,即可确定稀疏矩阵中需要计算的多个矩阵块所在的位置。基于多个矩阵块中每个矩阵块在稀疏矩阵中的位置,可以确定计算每个矩阵块所需的矩阵数据。
[0140]
示例性地,在稀疏矩阵是基于第一矩阵和第二矩阵计算得到的情况下,可以基于每个矩阵块的位置信息从第一矩阵和第二矩阵获取对应的矩阵数据,以实现每个矩阵块的计算。例如,在基于gpu执行运算的情况下,第一矩阵和第二矩阵存储于gpu的显存中,gpu可以是通过执行数据搬运指令从显存中将矩阵块所对应的矩阵数据搬运到gpu的运算单元中,以计算矩阵块中的元素的具体值。
[0141]
其中,第一矩阵例如可以为稀疏注意力网络中的矩阵q,第二矩阵例如可以为稀疏注意力网络中的矩阵k。
[0142]
步骤1003,根据所述矩阵数据,执行矩阵乘运算,得到所述多个矩阵块,所述多个矩阵块包括所述稀疏矩阵中所有的非零元素,且所述多个矩阵块中每个矩阵块包括多个元素。
[0143]
在执行每个矩阵块的计算过程中,电子设备通过执行数据搬运指令将矩阵块对应的矩阵数据搬运至运算单元之后,则由电子设备的运算单元基于矩阵数据执行矩阵乘运算,从而计算得到每个矩阵块中各个元素的实际值。
[0144]
本实施例中,对于计算得到的多个矩阵块,该多个矩阵块中的每个矩阵块均包括稀疏矩阵中的部分非零元素,该多个矩阵块能够包含稀疏矩阵中的所有非零元素。
[0145]
示例性地,可以参阅图12,图12为本技术实施例提供的一种计算稀疏矩阵中矩阵块的示意图。如图12所示,对于稀疏矩阵中所划分的4个矩阵块,第1个矩阵块可以通过对第一矩阵中的前4行矩阵数据和第二矩阵中的前4列矩阵数据执行矩阵乘运算得到;第2个矩阵块可以通过对第一矩阵中5-8行的矩阵数据和第二矩阵中5-8列的矩阵数据执行矩阵乘运算得到;第3个矩阵块可以通过对第一矩阵中9-12行矩阵数据和第二矩阵中9-12列矩阵数据执行矩阵乘运算得到;第4个矩阵块可以通过对第一矩阵中13-16行的矩阵数据和第二矩阵中13-16列的矩阵数据执行矩阵乘运算得到。
[0146]
因此,在计算第1个矩阵块时,可以通过2个数据搬运指令将第一矩阵和第二矩阵中对应的矩阵数据搬运至运算单元中,即可实现第1个矩阵块的计算。类似,在第2个矩阵块、第3个矩阵块和第4个矩阵块的过程中,均是通过执行2个数据搬运指令即可实现搬运相关的矩阵数据。也就是说,计算稀疏矩阵中4个矩阵块的过程中,一共执行8次数据搬运指令,并且每次执行数据搬运指令时所搬运的数据均是不相同的,即没有出现重复搬运数据的现象。
[0147]
对比图12和图9可知,对于同一个稀疏矩阵,现有的稀疏矩阵计算方式需要执行128次数据搬运指令,并且输入矩阵中的数据需要重复搬运多次;而本实施例中通过计算矩阵块的方式则只需要执行8次数据搬运指令,并且输入矩阵中的数据无需重复搬运。
[0148]
步骤1004,将所述多个矩阵块进行拼接,得到目标矩阵,所述目标矩阵用于执行所述稀疏注意力网络中与所述稀疏矩阵相关的运算。
[0149]
在计算得到稀疏矩阵中的多个矩阵块之后,可以将多个矩阵块进行拼接,得到目标矩阵,以基于目标矩阵执行稀疏注意力网络中后续与稀疏矩阵相关的运算。可以参阅图
13,图13为本技术实施例提供的一种拼接稀疏矩阵中矩阵块的示意图。如图13所示,在计算得到稀疏矩阵的多个矩阵块后,可以在行的维度上将多个矩阵块进行拼接,从而得到目标矩阵。
[0150]
也就是说,由多个矩阵块拼接得到的目标矩阵用于代替稀疏矩阵,来实现稀疏注意力网络中与稀疏矩阵相关的其他运算。
[0151]
例如,在图2所示的计算流程中,本实施例所述的第一矩阵对应于图2中的矩阵q,第二矩阵对应于图2中的矩阵k。通过对矩阵q和矩阵k执行上述的方法1000后,得到目标矩阵,该目标矩阵则对应于图2中的矩阵a,即该目标矩阵用于执行后续的归一化操作,以得到矩阵a1。
[0152]
本实施例中,通过预先对稀疏矩阵进行划分,得到稀疏矩阵中的多个矩阵块。在稀疏矩阵的计算过程中,获取计算稀疏矩阵中每个矩阵块所需的矩阵数据,并计算得到每个矩阵块的实际值。最终,由计算得到的多个矩阵块拼接得到用于代替稀疏矩阵的目标矩阵,该目标矩阵能够用于稀疏注意力网络中后续与稀疏矩阵相关的计算。通过将稀疏矩阵划分为多个矩阵块来进行计算,能够有效地避免矩阵数据的重复搬运,并降低数据搬运指令的数量,提高了矩阵运算过程的计算访存比,从而提高数据处理的效率。
[0153]
可选的,在稀疏矩阵用于提取输入序列中的局部注意力特征的情况下,由稀疏矩阵划分得到的多个矩阵块则用于表示局部注意力特征。此外,为了便于基于多个矩阵块拼接得到目标矩阵,所述多个矩阵块中每个矩阵块的行数或列数相同。
[0154]
具体来说,在稀疏矩阵后续需要执行归一化操作的情况下,当以稀疏矩阵的行作为基本单位来执行归一化操作时,多个矩阵块中每个矩阵块的列数相同;当以稀疏矩阵的列作为基本单位来执行归一化操作时,多个矩阵块中每个矩阵块的行数相同。
[0155]
对于稀疏矩阵中不同的矩阵块划分方式,矩阵块的拼接方式也不相同的。其中,矩阵块的拼接方式与矩阵块划分方式之间的关系如下所述。
[0156]
当多个矩阵块中每个矩阵块的行数相同时,则在列的维度上对所述多个矩阵块进行拼接,得到目标矩阵,该目标矩阵的行数与所述多个矩阵块的行数相同。
[0157]
当多个矩阵块中每个矩阵块的列数相同时,在行的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的列数与所述多个矩阵块的列数相同。
[0158]
可以参阅图14,图14为本技术实施例提供的一种矩阵块拼接方式的对比示意图。如图14中的(a)所示,在后续对稀疏矩阵执行归一化操作时,是以稀疏矩阵的行作为基本单位来执行归一化操作,因此稀疏矩阵中所划分的多个矩阵块的行数相同。并且,在拼接多个矩阵块时,是在列的维度上对多个矩阵块进行拼接,得到目标矩阵。
[0159]
如图14中的(b)所示,在后续对稀疏矩阵执行归一化操作时,是以稀疏矩阵的列作为基本单位来执行归一化操作,因此稀疏矩阵中所划分的多个矩阵块的列数相同。并且,在拼接多个矩阵块时,是在行的维度上对多个矩阵块进行拼接,得到目标矩阵。
[0160]
可以理解的是,对于稀疏矩阵划分得到的多个矩阵块,该多个矩阵块中除了包括稀疏矩阵中的非零元素之外,该多个矩阵块还可能会包括稀疏矩阵中值为零的元素。然而,在基于矩阵数据计算多个矩阵块时,会计算得到多个矩阵块中每个元素的值。也就是说,计算得到的多个矩阵块中与稀疏矩阵中零值元素所在位置对应的元素的值可能并非是零。在这种情况下,则需要将多个矩阵块中特定位置的元素的值调整为零,以使得多个矩阵块中
各个位置的元素的值能够与稀疏矩阵中对应位置的元素的值相匹配。
[0161]
在一个可能的实施例中,在得到多个矩阵块之后,可以确定多个矩阵块中是否包括目标元素。其中,所述目标元素为所述稀疏矩阵中值为零的元素。例如,对于图11中的(b)所示的稀疏矩阵,该稀疏矩阵中第一个矩阵块中包括6个目标元素。该6个目标元素在稀疏矩阵中的值均为0,该6个目标元素分别为第一行第二列的元素、第一行第三列的元素、第一行第四列的元素、第二行第三列的元素、第二行第四列的元素以及第三行第四列的元素。在计算得到该稀疏矩阵中的第一个矩阵块之后,第一个矩阵块中的6个目标元素的实际值可能并非为0,因此需要将这6个目标元素的值调整为0。
[0162]
具体地,当所述多个矩阵块中包括目标元素时,将所述多个矩阵块中的目标元素的值调整为零,得到多个调整后的矩阵块。在矩阵块的拼接阶段,则将所述多个调整后的矩阵块进行拼接,得到所述目标矩阵。这样一来,目标矩阵中每个位置的元素值与稀疏矩阵中对应位置的元素值相同。
[0163]
本实施例中,通过调整多个矩阵块中目标元素的值,可以使得由调整后的矩阵块拼接得到的目标矩阵中每个位置的元素值与稀疏矩阵中对应位置的元素值相同,确保了在后续运算过程中目标矩阵能够替代稀疏矩阵,保证了后续运算的正常执行。
[0164]
此外,在多个矩阵块中具有目标元素的情况下,尽管相较于现有技术增加了少量的多余计算,但是却能够大大减少数据搬运次数并避免数据的重复搬运,从而提高数据处理的效率。
[0165]
可选的,在一些情况下,稀疏矩阵可能同时包括上述的local attention和global attention,即稀疏矩阵用于表示输入序列的局部注意力特征和全局注意力特征。在这种情况下,由于local attention结构和global attention结构在稀疏矩阵中的分布差别较大,因此基于一种矩阵块划分方式可能会难以实现稀疏矩阵中矩阵块的划分。
[0166]
基于此,在一个可能的实施例中,电子设备可以是基于不同的分块信息得到与local attention相关的矩阵块的位置信息以及与global attention相关的矩阵块的位置信息。
[0167]
示例性地,在电子设备获取到的分块信息中包括第一分块信息和第二分块信息。其中,第一分块信息用于指示稀疏矩阵中所划分的多个第一矩阵块,所述多个第一矩阵块的列数相同且所述多个第一矩阵块的总行数等于所述稀疏矩阵的行数。此外,为了便于将多个第一矩阵块进行拼接,每个第一矩阵块均分布于稀疏矩阵中不同的行上。具体地,所述多个第一矩阵块用于表示局部注意力特征。
[0168]
所述第二分块信息用于指示所述稀疏矩阵中所划分的多个第二矩阵块,所述多个第二矩阵块的行数与所述稀疏矩阵的行数相同且所述多个第二矩阵块的列数小于所述稀疏矩阵的列数。具体地,所述多个第二矩阵块用于表示全局注意力特征。
[0169]
可以参阅图15,图15为本技术实施例提供的一种基于第一分块信息和第二分块信息划分矩阵块的示意图。如图15所示,基于第一分块信息对稀疏矩阵进行划分后,可以得到4个第一矩阵块,该4个第一矩阵块的形状相同,且该4个第一矩阵块的行数和列数均为4。此外,4个第一矩阵块能够用于覆盖稀疏矩阵中local attention相关的位置,即这4个第一矩阵块能够用于表示局部注意力特征。
[0170]
可以参阅图16,图16为本技术实施例提供的一种基于第一分块信息和第二分块信
息计算矩阵块的示意图。如图16所示,在基于第一分块信息确定多个第一矩阵块的位置信息之后,可以分别从第一矩阵和第二矩阵中获取每个矩阵块对应的矩阵数据,并对获取到的矩阵数据执行矩阵乘运算,从而计算得到各个第一矩阵块。简单来说,计算第一矩阵块的过程是从第一矩阵和第二矩阵中分别获取相应的矩阵块,并对从第一矩阵和第二矩阵中获取的矩阵块执行矩阵乘运算,得到第一矩阵块。
[0171]
在基于第二分块信息确定多个第一矩阵块的位置信息之后,可以获取整个第一矩阵的数据,以及第二矩阵中分别与各个第二矩阵块对应的矩阵数据。然后,通过对第一矩阵与第二矩阵中与各个第二矩阵块对应的矩阵数据执行矩阵乘运算,得到各个第二矩阵块。简单来说,通过将第二矩阵中与各个第二矩阵块对应的矩阵数据进行拼接,并将拼接后的矩阵与第一矩阵执行矩阵乘运算,即可得到拼接后的多个第二矩阵块。
[0172]
基于第二分块信息对稀疏矩阵进行划分后,可以得到4个第二矩阵块,该4个第二矩阵块的形状相同,该4个第一矩阵块的行数为16且列数为1。此外,4个第一矩阵块能够用于覆盖稀疏矩阵中global attention相关的位置,即这4个第一矩阵块能够用于表示局部注意力特征。
[0173]
在基于第一分块信息和第二分块信息计算得到多个第一矩阵块和多个第二矩阵块之后,在行的维度上对所述多个第一矩阵块进行拼接,得到第一目标矩阵;并且,在列的维度上对所述多个第二矩阵块进行拼接,得到第二目标矩阵。
[0174]
最后,在列的维度上对所述第一目标矩阵和所述第二目标矩阵进行拼接,得到所述目标矩阵。
[0175]
可选的,在对第一目标矩阵和第二目标矩阵进行拼接之前,可以确定第一目标矩阵和第二目标矩阵中是否包含了在稀疏矩阵中位置相同的元素,即第一目标矩阵和第二目标矩阵中是否包含了重复的元素。
[0176]
示例性地,若所述第一目标矩阵中的第一元素和所述第二目标矩阵中的第二元素在所述稀疏矩阵中的位置相同,则将所述第二目标矩阵中的第二元素的值调整为零,得到调整后的第二目标矩阵;然后,在列的维度上对所述第一目标矩阵和所述调整后的第二目标矩阵进行拼接,得到所述目标矩阵。
[0177]
可以参阅图17,图17为本技术实施例提供的一种基于第一分块信息和第二分块信息划分矩阵块的示意图。如图17所示,在基于第一分块信息得到稀疏矩阵中的4个第一矩阵块之后,在行的维度上依次按序拼接该4个第一矩阵块,得到行数为16且列数为4的第一目标矩阵。类似地,在基于第二分块信息得到稀疏矩阵中的4个第二矩阵块之后,在列的维度上依次按序拼接该4个第二矩阵块,得到行数为16且列数为4的第二目标矩阵。
[0178]
由图17可知,对于计算得到的多个第二矩阵块而言,每个第二矩阵块中的第一个非零元素均出现在相应的第一矩阵块中。因此,在基于多个第二矩阵块拼接得到第二目标矩阵之后,可以将第二目标矩阵中每一列的第一个非零元素调整为0,从而得到调整后的第二目标矩阵。
[0179]
本方案中,通过基于不同的分块信息计算得到稀疏矩阵中不同类型的矩阵块,并在将同类型的矩阵块进行拼接之后,再将两种不同类型的矩阵块进行拼接,得到目标矩阵。基于这种拼接方式,能够在减少矩阵乘运算量的同时,保证数据的连续性,从而尽可能地减少数据的重复搬移。并且,在目标矩阵后续需要执行归一化操作的情况下,能够减少归一化
操作的计算量,并且减少归一化操作过程所需执行的数据搬运指令数。
[0180]
可以理解的是,由上述对稀疏注意力网络的介绍可知,在计算得到稀疏矩阵后,通常还需要对稀疏矩阵执行归一化操作,并将归一化后的稀疏矩阵与另一个矩阵执行矩阵乘运算,从而得到稀疏注意力网络中注意力模块的输出。
[0181]
可选的,在基于多个矩阵块拼接得到用于替代稀疏矩阵的目标矩阵之后,可以对所述目标矩阵进行归一化操作,得到归一化的目标矩阵。基于所述归一化后的目标矩阵和第三矩阵,得到输出矩阵,所述输出矩阵为所述稀疏注意力网络中注意力模块的输出,所述第一矩阵、所述第二矩阵和所述第三矩阵是基于不同的权重对同一个矩阵进行运算得到的。
[0182]
例如,上述的第一矩阵可以为稀疏注意力网络中的矩阵q,上述的第二矩阵可以为稀疏注意力网络中的矩阵k,上述的第三矩阵可以为稀疏注意力网络中的矩阵v。其中,矩阵q、矩阵k和矩阵v分别是基于不同的权重对同一个矩阵进行运算得到的。
[0183]
可选的,由于归一化后的目标矩阵实际上是由局部注意力特征和全局注意力特征拼接而成的,因此难以通过直接对归一化后的目标矩阵和第三矩阵执行矩阵乘而得到第四矩阵。在实际计算过程中,可以将归一化后的目标矩阵按局部注意力特征和全局注意力特征拼接的方式进行拆分,并基于第四矩阵对拆分后的矩阵执行相应的处理,最后再拼接处理后的矩阵。
[0184]
具体地,可以参阅图18,图18为本技术实施例提供的一种对归一化后的目标矩阵拆分后进行计算的流程示意图。如图18所示,基于所述归一化后的目标矩阵和第三矩阵得到第四矩阵的过程,包括以下的步骤s1-s5。
[0185]
步骤s1,基于所述目标矩阵的拼接方式,对所述归一化的目标矩阵在列的维度上进行拆分,得到第三目标矩阵和第四目标矩阵,所述第三目标矩阵的大小与所述第一目标矩阵的大小相同,所述第四目标矩阵的大小与所述第二目标矩阵的大小相同。
[0186]
简单来说,目标矩阵是由第一目标矩阵和第二目标矩阵在列的维度上拼接得到的,而归一化的目标矩阵的形状与目标矩阵的形状相同。在对目标矩阵执行归一化操作后,即可将得到的归一化的目标矩阵按照原来的拼接方式进行拆分,从而得到与第一目标矩阵对应的第三目标矩阵以及与第二目标矩阵对应的第四目标矩阵。
[0187]
步骤s2,基于所述第一目标矩阵的拼接方式,对所述第三目标矩阵和第三矩阵进行拆分,得到所述第三目标矩阵中的多个矩阵块以及所述第三矩阵中的多个矩阵块,所述第三目标矩阵中的矩阵块与所述第三矩阵中的矩阵块具有一一对应的关系。
[0188]
由于第一目标矩阵是由多个第一矩阵块在行的维度上拼接得到的,而第三目标矩阵与第一目标矩阵对应,因此可以基于第一目标矩阵的拼接方式,对第三目标矩阵进行拆分,得到第三目标矩阵中的多个矩阵块。此外,由于后续要对第三目标矩阵和第三矩阵执行相应的矩阵乘运算,因此可以基于相同的拆分方式对第三矩阵进行拆分,得到第三矩阵中的多个矩阵块。如图18所示,第三目标矩阵中的矩阵块与第三矩阵中的矩阵块具有一一对应的关系。
[0189]
步骤s3,对所述第三目标矩阵和所述第三矩阵中具有对应关系的矩阵块执行矩阵乘运算,并在行的维度上拼接执行矩阵乘运算后所得到的矩阵块,得到第一输出矩阵。
[0190]
由于第三目标矩阵中的矩阵块与第三矩阵中的矩阵块具有一一对应的关系,因此
可以得到多对矩阵块,每一对矩阵块包括第三目标矩阵中的一个矩阵块和第三矩阵中的一个对应的矩阵块。然后,通过对多对矩阵块中的每一对矩阵块执行矩阵乘运算,可以得到多个执行矩阵乘运算后的矩阵块。通过将多个执行矩阵乘运算后的矩阵块在行的维度上进行拼接,得到第一输出矩阵。
[0191]
步骤s4,对所述第四目标矩阵和第三矩阵的子矩阵执行矩阵乘运算,得到第二输出矩阵,所述子矩阵是由第三矩阵中的多行元素构成的。
[0192]
具体地,第三矩阵中有多行元素是与第四目标矩阵具有对应关系的,通过获取第三矩阵中与第四目标矩阵具有对应关系的多行元素,即可构成第三矩阵的子矩阵。然后,通过对第四目标矩阵和第三矩阵的子矩阵执行矩阵乘运算,即可得到第二输出矩阵。
[0193]
如图18所示,第三矩阵中的第4行元素、第8行元素、第12行元素和第16行元素和第四目标矩阵具有对应关系,通过从第三矩阵中获取上述的4行元素,即可构成第三矩阵的子矩阵。
[0194]
步骤s5,将所述第一输出矩阵与所述第二输出矩阵相加,得到所述输出矩阵。
[0195]
具体地,由于第一输出矩阵和第二输出矩阵的形状是相同的,因此通过将第一输出矩阵和第二输出矩阵中相同位置的元素进行相加,即可得到最终的输出矩阵,该输出矩阵即为稀疏注意力网络中的注意力模块的输出。
[0196]
为了便于理解,以下将结合附图详细介绍稀疏注意力网络中的注意力模块应用本技术实施例提供的数据处理方法执行运算的过程。
[0197]
可以参阅图19,图19为本技术实施例提供的一种稀疏注意力网络中的注意力模块的计算流程示意图。如图19所示,稀疏注意力网络中的注意力模块的计算过程包括以下的步骤1901-1909。
[0198]
步骤1901,获取local attention的分块信息。
[0199]
步骤1902,获取global attention的分块信息。
[0200]
在稀疏矩阵包括local attention结构和global attention结构的情况下,分别获取稀疏矩阵中local attention的分块信息和global attention的分块信息,从而确定local attention结构中多个矩阵块的位置和global attention结构中多个矩阵块的位置。其中,步骤1901中的local attention的分块信息例如可以是指上述实施例所述的第一分块信息,步骤1901中的global attention的分块信息例如可以是指上述实施例所述的第二分块信息。
[0201]
步骤1903,基于local attention的分块信息获取矩阵q和矩阵k的矩阵数据,计算local attention的矩阵块。
[0202]
在基于local attention的分块信息确定local attention结构中的多个矩阵块之后,则从矩阵q和矩阵k中获取多个矩阵块中各个矩阵对应的矩阵数据,并根据矩阵数据计算得到local attention结构中的多个矩阵块。
[0203]
本步骤中所述的local attention结构中的多个矩阵块例如可以是指上述的多个第一矩阵块。
[0204]
步骤1904,基于global attention的分块信息获取矩阵q和矩阵k的矩阵数据,计算global attention的矩阵块。
[0205]
在基于global attention的分块信息确定global attention结构中的多个矩阵
块之后,则从矩阵q和矩阵k中获取多个矩阵块中各个矩阵对应的矩阵数据,并根据矩阵数据计算得到global attention结构中的多个矩阵块。
[0206]
本步骤中所述的global attention结构中的多个矩阵块例如可以是指上述的多个第二矩阵块。
[0207]
步骤1905,拼接local attention的矩阵块以及global attention的矩阵块。
[0208]
在得到local attention的多个矩阵块以及global attention的多个矩阵块之后,先将local attention的多个矩阵块进行拼接,得到local attention的拼接矩阵;以及将global attention的多个矩阵块进行拼接,得到global attention的拼接矩阵。然后,再进一步拼接local attention的拼接矩阵和global attention的拼接矩阵,得到总的拼接矩阵。
[0209]
其中,local attention的拼接矩阵例如可以为上述实施例所述的第一目标矩阵;global attention的拼接矩阵例如可以为上述实施例所述的第二目标矩阵;总的拼接矩阵例如可以为上述实施例所述的目标矩阵。
[0210]
步骤1906,对拼接后的矩阵执行归一化操作后再拆分。
[0211]
在拼接得到总的拼接矩阵之后,可以对该总的拼接矩阵执行归一化操作,并基于local attention的拼接矩阵和global attention的拼接矩阵的拼接方式拆分归一化操作后的矩阵,从而得到归一化后的local attention的矩阵和归一化后的global attention的矩阵。
[0212]
其中,归一化后的local attention的矩阵例如可以为上述实施例所述的第三目标矩阵;归一化后的global attention的矩阵例如可以为上述实施例所述的第四目标矩阵。
[0213]
步骤1907,对矩阵v、归一化后的local attention矩阵执行矩阵乘运算。
[0214]
在得到归一化后的local attention矩阵之后,即可基于相同的分块方式对归一化后的local attention矩阵和矩阵v进行分块,并对分块后的矩阵执行矩阵乘运算,得到local attention的输出。
[0215]
其中,local attention的输出例如可以为上述实施例所述的第一输出矩阵。
[0216]
步骤1908,对矩阵v、归一化后的global attention矩阵执行矩阵乘运算。
[0217]
在得到归一化后的global attention矩阵之后,可以从矩阵v中取出部分行的矩阵数据,以构成矩阵v的子矩阵。然后,对归一化后的global attention矩阵和矩阵v的子矩阵执行矩阵乘运算,得到global attention的输出。
[0218]
其中,global attention的输出例如可以为上述实施例所述的第二输出矩阵。
[0219]
步骤1909,叠加local attention的输出和global attention的输出。
[0220]
最后,通过将local attention的输出和global attention的输出中相同位置的元素进行相加,即可得到最终的输出矩阵,该输出矩阵即为稀疏注意力网络中的注意力模块的输出。
[0221]
本技术实施例中还提供一种基于稀疏注意力网络的数据处理方法,该方法包括:获取待处理数据;基于稀疏注意力网络,对所述待处理数据进行处理,得到输出数据。其中,在基于所述稀疏注意力网络处理所述待处理数据的期间,根据上述实施例所述的数据处理方法执行所述稀疏注意力网络中与稀疏矩阵相关的运算。
[0222]
可选的,所述待处理数据包括图像数据、文本数据或语音数据。
[0223]
具体地,可以参阅图20,图20为本技术实施例提供的一种基于稀疏注意力网络的数据处理方法的应用场景。如图20所示,电子设备上布署有稀疏注意力网络,该稀疏注意力网络中包括注意力模块,且该稀疏注意力网络用于执行自然语言处理任务或计算机视觉任务。电子设备中的ai加速器用于执行稀疏注意力网络中的运算。在实际应用过程中,通过将文本数据、图像数据或语音数据作为稀疏注意力网络的输入数据,输入至稀疏注意力网络中,并由ai加速器执行稀疏注意力网络相关的运算。其中,aiu加速器基于上述实施例所述的数据处理方法执行稀疏注意力网络中的注意力模块中与稀疏矩阵有关的运算,从而提高稀疏注意力网络的运算效率。
[0224]
为了验证本实施例提供的数据处理方法的有益效果,本实施例将现有的稀疏注意力网络模型中的稀疏算子进行了替换,以使得替换后的稀疏算子能够基于上述实施例所述的数据处理方法来执行数据处理。
[0225]
示例性地,用于替换稀疏算子的网络模型为生成预训练转换器-3(generative pre-trained transformer 3,gpt-3)。gpt-3是一种自动回归语言模型(autoregressive language model),gpt-3使用深度学习来生成类似人的文本。gpt-3的主要输入为一些文字形成的数据,输出为输入文字的预测结果。可以参阅图21,图21为本技术实施例提供的一种gpt-3的数据处理流程示意图。如图21所示,本实施例中主要是将原模型中的multi-head attention部分替换为用于执行本实施例提供的数据处理方法的sparse attention。sparse attention的实现流程如上述实施例所述的数据处理方法1000所述,在此不再赘述。
[0226]
在一个可能的实施例中,本技术实施例提供一种数据处理装置。可以参阅图22,图22为本技术实施例提供的一种数据处理装置2200的结构示意图。如图22所示,该数据处理装置2200包括:获取单元2201和处理单元2202;所述获取单元2201,用于获取稀疏矩阵的分块信息,所述稀疏矩阵为基于所述稀疏注意力网络执行运算的期间所得到的中间矩阵,所述分块信息用于指示所述稀疏矩阵中所划分的多个矩阵块;所述获取单元2201,还用于根据所述分块信息,从第一矩阵和第二矩阵获取所述多个矩阵块中每个矩阵块对应的矩阵数据,所述第一矩阵和所述第二矩阵为用于计算所述稀疏矩阵的矩阵;所述处理单元2202,用于根据所述矩阵数据,执行矩阵乘运算,得到所述多个矩阵块,所述多个矩阵块包括所述稀疏矩阵中所有的非零元素,且所述多个矩阵块中每个矩阵块包括多个元素;所述处理单元2202,还用于将所述多个矩阵块进行拼接,得到目标矩阵,所述目标矩阵用于执行所述稀疏注意力网络中与所述稀疏矩阵相关的运算。
[0227]
在一种可能的实现方式中,所述处理单元2202,具体用于:当所述多个矩阵块中包括目标元素时,将所述多个矩阵块中的目标元素的值调整为零,得到多个调整后的矩阵块,所述目标元素为所述稀疏矩阵中值为零的元素;将所述多个调整后的矩阵块进行拼接,得到所述目标矩阵。
[0228]
在一种可能的实现方式中,所述多个矩阵块中每个矩阵块的行数或列数相同,所述多个矩阵块用于表示局部注意力特征;所述处理单元2202,具体用于:当多个矩阵块中每个矩阵块的行数相同时,在列的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的行数与所述多个矩阵块的行数相同;当多个矩阵块中每个矩阵块的列数相同
时,在行的维度上对所述多个矩阵块进行拼接,得到所述目标矩阵,所述目标矩阵的列数与所述多个矩阵块的列数相同。
[0229]
在一种可能的实现方式中,所述分块信息包括第一分块信息和第二分块信息,所述第一分块信息用于指示所述稀疏矩阵中所划分的多个第一矩阵块,所述多个第一矩阵块的列数相同且所述多个第一矩阵块的总行数等于所述稀疏矩阵的行数,所述第二分块信息用于指示所述稀疏矩阵中所划分的多个第二矩阵块,所述多个第二矩阵块的行数与所述稀疏矩阵的行数相同且所述多个第二矩阵块的列数小于所述稀疏矩阵的列数;所述处理单元2202,具体用于:在行的维度上对所述多个第一矩阵块进行拼接,得到第一目标矩阵;在列的维度上对所述多个第二矩阵块进行拼接,得到第二目标矩阵;在列的维度上对所述第一目标矩阵和所述第二目标矩阵进行拼接,得到所述目标矩阵。
[0230]
在一种可能的实现方式中,所述多个第一矩阵块用于表示局部注意力特征,所述多个第二矩阵块用于表示全局注意力特征。
[0231]
在一种可能的实现方式中,所述处理单元2202,具体用于:若所述第一目标矩阵中的第一元素和所述第二目标矩阵中的第二元素在所述稀疏矩阵中的位置相同,则将所述第二目标矩阵中的第二元素的值调整为零,得到调整后的第二目标矩阵;在列的维度上对所述第一目标矩阵和所述调整后的第二目标矩阵进行拼接,得到所述目标矩阵。
[0232]
在一种可能的实现方式中,所述处理单元2202,还用于:对所述目标矩阵进行归一化操作,得到归一化的目标矩阵;基于所述归一化后的目标矩阵和第三矩阵,得到输出矩阵,所述输出矩阵为所述稀疏注意力网络中注意力模块的输出,所述第一矩阵、所述第二矩阵和所述第三矩阵是基于不同的权重对同一个矩阵进行运算得到的。
[0233]
在一种可能的实现方式中,所述处理单元2202,具体用于:基于所述目标矩阵的拼接方式,对所述归一化的目标矩阵在列的维度上进行拆分,得到第三目标矩阵和第四目标矩阵,所述第三目标矩阵的大小与所述第一目标矩阵的大小相同,所述第四目标矩阵的大小与所述第二目标矩阵的大小相同;基于所述第一目标矩阵的拼接方式,对所述第三目标矩阵和第三矩阵进行拆分,得到所述第三目标矩阵中的多个矩阵块以及所述第三矩阵中的多个矩阵块,所述第三目标矩阵中的矩阵块与所述第三矩阵中的矩阵块具有一一对应的关系;对所述第三目标矩阵和所述第三矩阵中具有对应关系的矩阵块执行矩阵乘运算,并在行的维度上拼接执行矩阵乘运算后所得到的矩阵块,得到第一输出矩阵;对所述第四目标矩阵和第三矩阵的子矩阵执行矩阵乘运算,得到第二输出矩阵,所述子矩阵是由第三矩阵中的多行元素构成的;将所述第一输出矩阵与所述第二输出矩阵相加,得到所述输出矩阵。
[0234]
在另一个可能的实施例中,所述获取单元2201,用于获取待处理数据;所述处理单元2202,用于基于稀疏注意力网络,对所述待处理数据进行处理,得到输出数据;其中,在基于所述稀疏注意力网络处理所述待处理数据的期间,根据第一方面或第一方面任一实现方式所述的方法执行所述稀疏注意力网络中与稀疏矩阵相关的运算。
[0235]
在一种可能的实现方式中,所述待处理数据包括图像数据、文本数据或语音数据。
[0236]
接下来介绍本技术实施例提供的一种执行设备,请参阅图23,图23为本技术实施例提供的执行设备的一种结构示意图,执行设备2300具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,执行设备2300上可以部署有图23对应实施例中所描述的数据处理装置,用于实现图23对应实施例中数据处理的功能。具体的,执行
设备2300包括:接收器2301、发射器2302、处理器2303和存储器2304(其中执行设备2300中的处理器2303的数量可以一个或多个,图23中以一个处理器为例),其中,处理器2303可以包括应用处理器23031和通信处理器23032。在本技术的一些实施例中,接收器2301、发射器2302、处理器2303和存储器2304可通过总线或其它方式连接。
[0237]
存储器2304可以包括只读存储器和随机存取存储器,并向处理器2303提供指令和数据。存储器2304的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储器2304存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
[0238]
处理器2303控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0239]
上述本技术实施例揭示的方法可以应用于处理器2303中,或者由处理器2303实现。处理器2303可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2303可以是通用处理器、数字信号处理器(digital signal processing,dsp)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器2303可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2304,处理器2303读取存储器2304中的信息,结合其硬件完成上述方法的步骤。
[0240]
接收器2301可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器2302可用于通过第一接口输出数字或字符信息;发射器2302还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器2302还可以包括显示屏等显示设备。
[0241]
本技术实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
[0242]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
[0243]
本技术实施例提供的执行设备、训练设备或电子设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的图像处理方法,或者,以使训练设备内的芯片执行上述实
chip存储器。外部存储器私有于该npu硬件架构。
[0255]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述程序执行的集成电路。
[0256]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0257]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
[0258]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0259]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1