当前位置: 首页 > 专利查询>上海大学专利>正文

注意力范围自适应方法、系统及计算机可读存储介质技术方案

技术编号:29157352 阅读:63 留言:0更新日期:2021-07-06 22:57
本发明专利技术提供了注意力范围自适应方法、系统及计算机可读存储介质,其中注意力范围自适应方法,包括以下步骤:S1、通过缓存机制保存模型的隐向量序列,设置保存的最大长度;S2、添加掩盖函数控制模型的注意力范围;根据所述掩盖函数的最长范围确定参与模型计算的隐向量序列长度;S3、训练所述掩盖函数,并通过训练后的掩盖函数确定模型的注意力范围。本注意力范围自适应方法、系统及计算机可读存储介质,不仅可以调节当前层注意力头的注意力范围,还可以调节模型其他层注意力头的注意力范围,在保证让每层的学习到最佳的注意力范围,同时让模型保持最佳的注意力范围。

【技术实现步骤摘要】
注意力范围自适应方法、系统及计算机可读存储介质
本专利技术涉及注意力范围自适应
,尤其涉及注意力范围自适应方法、系统及计算机可读存储介质。
技术介绍
自从“attentionisallyourneed”提出以来,transformer已成为自然语言处理的主要模型,运用在许多任务上,但其结构需要对输入序列设置一个固定的长度,默认长度是512。如果文本序列长度短于固定长度,可以通过填充的方式来解决。如果序列长度超过固定长度,有两种处理方式,一种是增加输入序列长度,但transformer每个字符都需要计算该字符与其他所有字符注意力,导致所需的计算和显存开销与输入序列的长度成二次方,使得Transformer在序列长度上很难扩展,难以作为处理上千字符输入,模型基本上1k个字符就是上限了。然而对于字符级的语言模型来说,上千个字符的输入是比较常见的。另一种处理方式,就是将文本划分为多个片度。在划分片段的时候,没有考虑句子的自然边界,而是根据固定的长度来划分序列,导致分割出来的片段在语义上是不完整的。在训练的时候只能对每个片段单独训练,片段之间没有联系导致每个字符之间最长的依赖关系取决于片段的长度,但不同字符所关联的上下文长度是不同的,有的字符关联的上下文长度远远超过段度长度。简单的将输入文本切分为固定长度不能让模型看到正确的上下文,构建更好的表征。为了让模型可以关联更长上下文,transformerxl设计memory机制缓存上一个段的隐向量序列,让每个片段关联前一个片段,建立更长的上下文依赖。通过memery保存的多个片段可以让字符关联更长的上下文,但在过往的实验中显示上层token关联上下文的范围比下层token关联上下文的范围,增大memory保存序列长度只是满足了上层的注意力范围,却严重增加计算和显存开销。同时transformer的注意力机制会做多头注意力(multi-head)处理,“adaptive(引用)”发现每层的注意力头的注意力范围是不同的,为了让多头注意力学习到最优的注意力关联,让其自己决定需要关注多长的内容,让模型下层关注较少的上下文,模型上层能够关注更长的上下文,从而减少计算量。Transformer的结构上是由多个注意力层排列组成,不同层之间的注意力范围是相互联系的,每层的注意力范围都是随层数的累加。修改某层的注意力范围会影响其他层的注意力范围,例如下层注意力范围的减少会让上层的注意力范围变相的减少。只是让每层获得最佳的注意力范围并不能让所有层都达到最佳的注意力范围。
技术实现思路
有鉴于此,本专利技术要解决的技术问题是提供注意力范围自适应方法、系统及计算机可读存储介质,不仅可以调节当前层注意力头的注意力范围,还可以调节模型其他层注意力头的注意力范围,在保证让每层的学习到最佳的注意力范围,同时让模型保持最佳的注意力范围。本专利技术的技术方案是这样实现的:一种注意力范围自适应方法,包括以下步骤:S1、通过缓存机制保存模型的隐向量序列,设置保存的最大长度;S2、添加掩盖函数控制模型的注意力范围;根据所述掩盖函数的最长范围确定参与模型计算的隐向量序列长度;S3、训练所述掩盖函数,并通过训练后的掩盖函数确定模型的注意力范围。优选的,所述S2中,掩盖函数为:其中,R是控制范围跨度的超参数,z是每层head的参数,l是所有层共享参数,R是超参数,S是最大的注意力范围;注意力层变为:其中,Wq,Wk,Wv是三个权值不同,尺寸相同的矩阵,d是权重矩阵Wk的纬度,相除为了避免权重矩阵纬度不同带来的差异,有利于模型梯度的稳定。优选的,所述训练所述掩盖函数具体包括:在数据集enwiki8和text-8上训练掩盖函数;将enwiki8和text-8的数据集进行预处理;把数据集的每个单词拆分成字符,统计构成数据集的字符个数作为字典大小,按照字典构建模型的输入向量。优选的,还包括:S4、添加带门控单元的前馈层。优选的,所述S4具体包括:将transformer中的第一个投射层替换为门控单元,让输入经过两个线性变换,再将两个线性变换后的分量相乘,其他不变,公式如下:FFNGLU(x,w1,w2,w3)=(GLU(xw1)w2)w3其中,w1,w2表示GLU第一个线性变换,w3是第二个线性变换的参数。优选的,还包括:S5、使用上述步骤学习到的参数来预测下一个字符。本专利技术还提出了一种注意力范围自适应系统,包括:保存模块,用于通过缓存机制保存模型的隐向量序列,设置保存的最大长度;控制模块,用于添加掩盖函数控制模型的注意力范围;根据所述掩盖函数的最长范围确定参与模型计算的隐向量序列长度;训练模块,用于训练所述掩盖函数,并通过训练后的掩盖函数确定模型的注意力范围。优选的,所述掩盖函数为:其中,R是控制范围跨度的超参数,z是每层head的参数,l是所有层共享参数,R是超参数,S是最大的注意力范围;注意力层变为:其中,Wq,Wk,Wv是三个权值不同,尺寸相同的矩阵,d是权重矩阵Wk的纬度,相除为了避免权重矩阵纬度不同带来的差异,有利于模型梯度的稳定。本专利技术还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述任一项所述的注意力范围自适应方法。本专利技术提出的注意力范围自适应方法、系统及计算机可读存储介质,通过引入全层的自适应宽度注意力,让模型调整每层的注意力宽度的时候同时调整全局注意力,让模型学习到最优的注意力范围。附图说明图1为本专利技术实施例提出的注意力范围自适应方法流程图;图2为本专利技术实施例提出的注意力范围自适应系统的结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提出了一种注意力范围自适应方法,包括以下步骤:一种注意力范围自适应方法,包括以下步骤:S1、通过缓存机制保存模型的隐向量序列,设置保存的最大长度;缓存机制用于保存模型每个注意力层学习到的特征向量,将保存的数组的长度设定为模型输入序列的长度的倍数,并根据任务设定需要的最大上下文。S2、添加掩盖函数控制模型的注意力范围;根据所述掩盖函数的最长范围确定参与模型计算的隐向量序列长度。具体的,掩盖函数添加在transformer的每个注意力头上来控制注意力头的注意力跨度。掩盖函数是将距离映射到0和1之间的非增加函数。掩盖函数为:其中,R是控制范围跨度的超参数,z是每层head的参数,本文档来自技高网
...

【技术保护点】
1.一种注意力范围自适应方法,其特征在于,包括以下步骤:/nS1、通过缓存机制保存模型的隐向量序列,设置保存的最大长度;/nS2、添加掩盖函数控制模型的注意力范围;根据所述掩盖函数的最长范围确定参与模型计算的隐向量序列长度;/nS3、训练所述掩盖函数,并通过训练后的掩盖函数确定模型的注意力范围。/n

【技术特征摘要】
1.一种注意力范围自适应方法,其特征在于,包括以下步骤:
S1、通过缓存机制保存模型的隐向量序列,设置保存的最大长度;
S2、添加掩盖函数控制模型的注意力范围;根据所述掩盖函数的最长范围确定参与模型计算的隐向量序列长度;
S3、训练所述掩盖函数,并通过训练后的掩盖函数确定模型的注意力范围。


2.如权利要求1所述的注意力范围自适应方法,其特征在于,所述S2中,掩盖函数为:



其中,R是控制范围跨度的超参数,z是每层head的参数,l是所有层共享参数,R是超参数,S是最大的注意力范围;
注意力层变为:



其中,Wq,Wk,Wv是三个权值不同,尺寸相同的矩阵,d是权重矩阵Wk的纬度。


3.如权利要求1所述的注意力范围自适应方法,其特征在于,所述训练所述掩盖函数具体包括:
在数据集enwiki8和text-8上训练掩盖函数;
将enwiki8和text-8的数据集进行预处理;把数据集的每个单词拆分成字符,统计构成数据集的字符个数作为字典大小,按照字典构建模型的输入向量。


4.如权利要求1所述的注意力范围自适应方法,其特征在于,还包括:
S4、添加带门控单元的前馈层。


5.如权利要求4所述的注意力范围自适应方法,其特征在于,所述S4具体包括:
将transformer中的第一个投射层...

【专利技术属性】
技术研发人员:曾庆威沈文枫艾文伟赵时旻黄天印毕湘利
申请(专利权)人:上海大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1