掌桥专利:专业的专利平台
掌桥专利
首页

应用于Transformer的批量层归一化方法及装置

文献发布时间:2023-06-19 19:28:50


应用于Transformer的批量层归一化方法及装置

技术领域

本申请涉及计算机技术领域,特别涉及一种应用于Transformer的批量层归一化方法及装置。

背景技术

Transformer源于NLP领域,广泛应用于transformer的归一化方法为层归一化(LayerNorm,以下简称为LN),通过LN进行在线归一化处理。然而,随着Transformer所使用的数据维度的增加(例如,从一维数据扩展到二维数据)以及图像分辨率的增加,由于LN的均值和标准差均为变化的,导致计算均值和标准差的过程中的数据统计次数大幅度增加,从而需要消耗大量的计算资源。

因而现有技术还有待改进和提高。

发明内容

本申请要解决的技术问题在于,针对现有技术的不足,提供一种应用于Transformer的批量层归一化方法及装置。

为了解决上述技术问题,本申请实施例第一方面提供了一种应用于Transformer的批量层归一化方法,所述的方法包括:

获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差;

基于所述全局均值和全局标准差,对所述特征图进行归一化;

对归一化后的特征图进行仿射变换,以得到归一化特征图。

所述的应用于Transformer的批量层归一化方法,其特征在于,所述Transformer神经网络的全局标准差为基于Transformer神经网络的全局方差确定的,所述全局均值和所述全局方差在Transformer神经网络训练过程中基于训练样本集获取到的。

所述的应用于Transformer的批量层归一化方法,其中,所述Transformer神经网络的全局均值和全局方差的获取过程具体包括:

对于训练样本集中的每个训练批,统计所述训练批对应批量均值,其中,所述批量均值为基于所述训练批对应的特征图中的各维度的特征值确定的;

统计所述训练批对应批量方差,其中,所述批量方差为基于所述训练批对应的特征图中的所有像素点的特征方差确定的;

基于所述批量均值和批量方差更新所述Transformer神经网络的全局均值和全局方差,以得到Transformer神经网络的全局均值和全局方差。

所述的应用于Transformer的批量层归一化方法,其中,所述基于所述批量均值和批量方差更新所述Transformer神经网络的全局均值和全局标准差具体包括:

获取所述Transformer神经网络的全局均值和全局方差;

将所述批量均值加权至所述全局均值,以更新所述全局均值;

将所述批量方差加权至所述全局方差,以更新所述全局方差。

所述的应用于Transformer的批量层归一化方法,其中,所述对归一化后的特征图进行仿射变换,以得到归一化特征图具体为:

针对归一化后的特征图的通道维度进行仿射变换,以得到归一化特征图。

本申请实施例第二方面提供了一种应用Transformer神经网络的处理方法,所述处理方法具体包括:

获取待处理数据;

将所述待处理数据输入经过训练的Transformer神经网络,通过所述Transformer神经网络确定所述待处理数据对应的处理后数据,其中,所述Transformer神经网络配置有批量层归一化处理过程,其中,所述批量层归一化层处理过程采用如上所述的批量层归一化方法。

所述的应用Transformer神经网络的处理方法,其中,所述Transformer神经网络包括若干堆叠的编码模块,所述编码模块包括线性层和多头注意力模块,所述线性层的输出项通过批量归一化处理后输入所述多头注意力模块。

所述的应用Transformer神经网络的处理方法,其中,所述批量层归一化处理过程通过所述Transformer神经网络设置的批量层归一化层执行,或者是,所述批量层归一化处理过程嵌入所述Transformer神经网络中的线性层,通过所述线性层执行。

本申请实施例第三方面提供了一种应用于Transformer的批量层归一化处理装置,所述装置包括:

读取单元,用于获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差;

归一化单元,用于基于所述全局均值和全局标准差,对所述特征图进行归一化;

仿射单元,用于对归一化后的特征图进行仿射变换,以得到归一化特征图。

本申请实施例第四方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;

所述通信总线实现处理器和存储器之间的连接通信;

所述处理器执行所述计算机可读程序时实现如上任一所述的应用于Transformer的批量层归一化方法中的步骤,和/或实现如上所述的应用Transformer神经网络的处理方法中的步骤。。

有益效果:与现有技术相比,本申请提供了一种应用于Transformer的批量层归一化方法及装置,所述方法包括获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差;基于所述全局均值和全局标准差,对所述特征图进行归一化;对归一化后的特征图进行仿射变换,以得到归一化特征图。本申请通过获取全局均值和全局标准差,可以建设归一化操作过程中对数据的统计次数,可以减少归一化所需要的计算资源。同时,本申请在各特征点的均值和标准差均是统一的,这样使得通过Transformer配置的量化参数进行量化时,不会影响Transformer的精度。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的应用于Transformer的批量层归一化方法的流程图。

图2为本申请提供的应用于Transformer的批量层归一化方法中归一化处理后的特征向量的向量与原始向量的向量方向的对比图。

图3为应用Transformer神经网络的处理方法的流程图。

图4为采用LN的Transformer神经网络的结构原理图。

图5为采用LBN替换LN的Transformer神经网络的结构原理图。

图6为采用LBN替换LN并在线性层和多头注意力模块之间增加LBN的Transformer神经网络的结构原理图。

图7为图4、图5和图6的top1精度曲线的对比图。

图8为图6中的LBN嵌入相邻的线性层后的结构原理图。

图9为本申请提供的应用于Transformer的批量层归一化装置的结构原理图。

图10为本申请提供的终端设备的结构原理图。

具体实施方式

本申请提供一种应用于Transformer的批量层归一化方法及装置,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

经过研究发现,Transformer源于NLP领域,广泛应用于transformer的归一化方法为层归一化(LayerNorm,以下简称为LN),通过LN进行在线归一化处理。然而,随着Transformer所使用的数据维度的增加(例如,从一维数据扩展到二维数据)以及图像分辨率的增加,由于LN的均值和标准差均为变化的,导致计算均值和标准差的过程中的数据统计次数大幅度增加,从而需要消耗大量的计算资源。此外,由于当Transformer部署到终端后需要对其进行量化时,由于LN使用一套量化参数,而LN在统计归一化过程中每个特征点均是相互独立,导致均值和标准差非常离散,这就会导致在采用一套量化参数进行量化后,会严重影响模型精度。

为了解决上述问题,在本申请实施例中,获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差;基于所述全局均值和全局标准差,对所述特征图进行归一化;对归一化后的特征图进行仿射变换,以得到归一化特征图。本申请通过获取全局均值和全局标准差,可以建设归一化操作过程中对数据的统计次数,可以减少归一化所需要的计算资源。同时,本申请在各特征点的均值和标准差均是统一的,这样使得通过Transformer配置的量化参数进行量化时,不会影响Transformer的精度。

下面结合附图,通过对实施例的描述,对申请内容作进一步说明。

本实施例提供了一种应用于Transformer的批量层归一化方法,如图1所示,所述方法包括:

S10、获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差。

具体地,特征图可以是Transformer神经网络中的一网络层的输出项,并且所述特征图需要被执行批量归一化处理。例如,特征图为Transformer神经网络中的多头注意力模块的输出项等。全局均值和全局标准差均为用于对特征图进行批量归一化处理,并且特征图中的每个特征点均采用所述全局均值和全局标准差进行批量归一化处理。其中,所述全局均值和全局标准差可以通过对特征图中的所有特征点进行统计得到的,也可以是在Transformer神经网络的训练过程中确定得到的。

在一个实现方式中,所述全局均值和全局标准差为在Transformer神经网络的训练过程中确定得到的,其中,所述Transformer神经网络的全局标准差为基于Transformer神经网络的全局方差确定的。基于此,所述Transformer神经网络的全局均值和全局标准差的获取过程具体包括:

对于训练样本集中的每个训练批,统计所述训练批对应批量均值,其中,所述批量均值为基于所述训练批对应的特征图中的各维度的特征值确定的;

统计所述训练批对应批量方差,其中,所述批量方差为基于所述训练批对应的特征图中的所有像素点的特征方差确定的;

基于所述批量均值和批量方差更新所述Transformer神经网络的全局均值和全局方差,以得到Transformer神经网络的全局均值和全局方差。

具体地,所述训练批对应的特征图包括四个维度,分别批量数、特征图通道数,特征图的高和特征图的宽。由此,训练批对应的特征图可以记为X,X的特征维度为B×C×H×W,B为批量数,C为特征通道数,H为特征图的高,W为特征图的宽。

统计所述训练批对应批量均值为累加特征图X各维度的特征,并除以总特征数,其中,各维度包括B维度、C维度、H维度和W维度。由此,批量均值的计算公式可以为:

其中,N=B×C×H×W为总特征数,μ

同理,统计所述训练批对应批量方差为累加特征图X各维度的特征方差,并除以总特征数,其中,各维度包括B维度、C维度、H维度和W维度。由此,批量方差的计算公式可以为:

其中,μ表示Transformer神经网络的全局均值,σ

进一步,在获取到批量方差后,为了避免批量方差为零而影响基于批量方差对训练批对应的特征图进行归一化处理,基于批量方差确定候选全局标准差时,在批量方差上累加一个预设调节参数,然后根据累加了预设调节参数的批量方差来计算候选全局标准差,最后基于候选全局标准差对特征图X进行归一化处理。其中,基于候选全局标准差对特征图X进行归一化处理可以表示为:

其中,

进一步,在获取到批量均值和批量方差后,将批量均值和批量方差更新所述Transformer神经网络的全局均值和全局方差,其中,所述更新过程可以包括:

获取所述Transformer神经网络的全局均值和全局方差;

将所述批量均值加权至所述全局均值,以更新所述全局均值;

将所述批量方差加权至所述全局方差,以更新所述全局方差。

具体地,所述Transformer神经网络内设置有全局均值和全局方差,其中,当训练批为对Transformer神经网络进行训练的第一训练批,那么可以直接将批量均值作为全局均值,批量方差作为全局方差,也可以是,所述Transformer神经网络设置有初始全局均值和初始全局方差,然后基于批量均值和初始全局均值确定全局均值,基于批量方差和初始全局方差确定全局方差,并将确定的全局均值和全局方差作为Transformer神经网络的全局均值和全局方差。反之,当训练批不为对Transformer神经网络进行训练的第一训练批,直接基于Transformer神经网络中的全局均值和批量均值更新全局均值,基于Transformer神经网络中的全局方差和批量方差更新全局方差。

在一个实现方式中,所述全局均值的更新过程和全局方差的更新过程均通过加权得到的。此外,由于全局标准差为通过对全局方差进行开平方得到的,从而Transformer神经网络可以直接存储全局方差,通过批量方差对全局方差进行更新。由此,全局均值的更新公式和全局方差的更新公式可以分别表示为:

μ=α×μ+(1-α)×μ

σ

其中,μ为全局均值,α为预设权重系数,μ

S20、基于所述全局均值和全局标准差,对所述特征图进行归一化。

具体地,在获取到全局均值和全局标准差后,基于全局均值和全局标准差对特征图中的每个特征进行归一化,其中,归一化过程可以表示为:

其中,

S30、对归一化后的特征图进行仿射变换,以得到归一化特征图。

具体地,所述仿射变换用于对基于全局均值和全局标准差进行归一化处理后的特征图进行仿射变换,其中,所述仿射变换针对归一化后的特征图的通道维度,针对归一化后的特征图的通道维度进行仿射变换,以得到归一化特征图。在一个具体实现方式中,所述仿射变换可以表示为:

其中,Y

进一步,如图2所示,归一化特征图中的特征向量的向量方向与原始特征向量的向量方向相同,即通过给本实施例提供的批量层归一化方法(LayerBatchNorm,LBN)处理后的特征向量C

综上所述,本实施例提供了一种应用于Transformer的批量层归一化方法及装置,所述方法包括获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差;基于所述全局均值和全局标准差,对所述特征图进行归一化;对归一化后的特征图进行仿射变换,以得到归一化特征图。本实施例提供的应用于Transformer的批量层归一化方法在对特征进行归一化时,所有特征共用归一化参数(即全局均值和全局方差),其不改变特征向量的向量方向,只是单纯的平移和缩放。由此,本实施例提供的批量层归一化方法可以应用于Transformer神经网络,替代Transformer神经网络中的LN层,减少了Transformer神经网络中的批归一化处理的消耗,进而减少了Transformer神经网络消耗。同时,由于本实施例提供的批量层归一化方法在各特征点的均值和标准差均是统一的,这样使得通过Transformer配置的量化参数进行量化时,不会影响Transformer的精度。

基于上述应用于Transformer的批量层归一化方法,本实施例提供了一种应用Transformer神经网络的处理方法,如图3所示,所述处理方法具体包括:

N10、获取待处理数据;

N20、将所述待处理数据输入经过训练的Transformer神经网络,通过所述Transformer神经网络确定所述待处理数据对应的处理后数据。

具体地,待处理数据为Transformer神经网络的输入项,通过Transformer神经网络对待处理数据进行处理,例如,待处理数据为带处理图像,处理后数据为待处理图像中的目标物区域。Transformer神经网络配置有所述Transformer神经网络配置有批量层归一化处理过程,所述批量层归一化层处理过程采用如上所述的批量层归一化方法。可以理解的是,Transformer神经网络配置通过若上所述的批量层归一化方法对Transformer神经网络中的需要进行归一化处理的特征图进行归一化操作。

所述Transformer神经网络包括若干堆叠的编码模块,所述编码模块包括线性层和多头注意力模块,所述线性层的输出项通过批量归一化处理后输入所述多头注意力模块,其中,所述批量归一化处理可以通过批量归一化层来执行,也可以嵌入到线性层里面,在线性层执行的过程至执行批量归一化处理,使得批量层归一处理不会额外增加算力消耗。也就是说,所述批量层归一化处理过程通过所述Transformer神经网络设置的批量层归一化层执行,或者是,所述批量层归一化处理过程嵌入所述Transformer神经网络中的线性层,通过所述线性层执行。

如图4所示的采用LN的Transformer神经网络、如图5所示的采用LBN的Transformer神经网络以及如图6所示的采用LBN并对QKV植入LBN的Transformer神经网络分别对image1K数据集训练170个epoch后得到的各Transformer神经网络中,如图7所示,当训练超过15个epoch时,采用LBN并对QKV植入LBN的Transformer神经网络的模型精度明显高出另外两个Transformer神经网络。

在一个实现方式中,如图6所示,Transformer神经网络的编码器包括依次连接的批量归一化层、线性层、批量归一化层、多头注意力模块、批量归一化层以及多层感知模块,其中,Transformer神经网络的编码器中的批量归一化层均采用上述实施例所述的应用于Transformer神经网络的批量层归一化方法,提高了Transformer神经网络的模型性能。

在一个实现方式中,由于批量归一化处理为线性运算,从而如图6所示的Transformer神经网络的编码器中的批量归一化层所执行的批量归一化处理嵌入批量归一化层相邻的线性层,得到如图8所示的Transformer神经网络的编码器。如图8所示的Transformer神经网络的编码器,在运行线性层时执行了批量归一化处理,使得批量层归一处理不会附加算力消耗。

基于上述应用于Transformer的批量层归一化方法,本实施例提供了一种应用于Transformer神经网络的批量层归一化处理装置,如图9所示,所述装置包括:

读取单元100,用于获取待批量归一化处理的特征图,读取所述Transformer神经网络的全局均值和全局标准差;

归一化单元200,用于基于所述全局均值和全局标准差,对所述特征图进行归一化;

仿射单元300,用于对归一化后的特征图进行仿射变化,以得到归一化特征图。

基于上述应用于Transformer的批量层归一化方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的应用于Transformer的批量层归一化方法中的步骤。

基于上述应用于Transformer的批量层归一化方法,本申请还提供了一种终端设备,如图10所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communicat ions I nterface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。

此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。

存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 应用于Transformer神经网络的层归一化处理硬件加速器及方法
  • 一种基于批量归一化层的模型自动评估方法及装置
技术分类

06120115919633