System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术为ai数据智能处理,特别是一种适用于gpt模型的分块矩阵相乘高效注意力算法。
技术介绍
1、随着chatgpt的大火,业界基于gpt算法的各种改进模型及产品层出不穷,本专利主要围绕gpt中因果注意力机制模块进行优化,gpt中因果注意力矩阵旨在让当前生成的token仅能感受到之前的token信息,因而因果注意力矩阵为下三角矩阵,也即该矩阵右上方的信息在计算key和query矩阵乘积时,可以默认设置为一个负数,而不需要进行矩阵乘积,为了避免原始gpt中注意力矩阵对角线右上方部分的冗余计算,本专利提出了基于线性代数的分块矩阵相乘的思想,假如当前模型的长度是1536,嵌入维度为2048,通过本专利可以减少[768,768]的大小注意力矩阵计算部分,该冗余部分通过直接赋值而不是矩阵相乘得到,当嵌入维度,文本长度增大时候,本专利提速更加明显,通过本专利可以有效提升gpt模型的在训练和推理阶段的速度,本专利试用条件为嵌入维度,模型文本长度为偶数情况,当前大多数模型皆为偶数,本专利在大语言模型技术中具有广泛的实用价值。
技术实现思路
1、gpt是自然语言处理领域非常重要的一个语言生成模型,具有广泛的使用价值,当前业界基于gpt的模型非常多,且参数量越来越大,这样会逐渐增加训练的成本,及推理的速度,为了能够改善gpt的上述问题,提出了本专利,在gpt模型中因果注意力矩阵是一个遮掩的注意力矩阵,也即该矩阵斜对角线上方的部分是不需要进行计算的,也即直接赋值一个负数即可,然后取softmax函数
2、本专利技术解决现有技术不足提供如下技术方案:
3、一种适用于gpt模型的分块高效注意力算法,包括如下步骤:
4、s1矩阵乘积:
5、a矩阵和b矩阵相乘等效于为a,b矩阵分成若干块;
6、
7、a矩阵和b矩阵乘积
8、证明如下:
9、假如当前矩阵a矩阵大小是[2*m,2*n]维度的大小,b矩阵是[2*n,2*m],则a矩阵第i行第j列记为,b矩阵第i行第j列记为
10、a矩阵和b矩阵相乘的第i行第j列的元素记为,则根据矩阵相乘的定义即:
11、
12、假如a和b矩阵相乘当前在,本专利主要用来证明本专利的实用性,故此处为[m,n]大小,为[n,m],则根据记为p矩阵,记为q,记为m矩阵,记为n,相乘的定义:
13、
14、 在和a矩阵、b矩阵直接相乘完全相等,同法可以证明其它三个部分的值和a、b矩阵相乘对应位置元素相等;
15、s2gpt因果注意力矩阵:
16、当前query矩阵大小为【batch_size, max_len, d_model】,key矩阵的转置大小为【batch_size,d_model,max_len】,且max_len和d_model都是偶数,在gpt注意力机制计算过程中,query查询矩阵和key键矩阵的转置的矩阵为注意力矩阵部分,大小为【batch_size,max_len,max_len】,但在batch_size中单条数据【max_len,max_len】中对角线右上方在计算因果注意力矩阵过程中为一个负数,即接近一半注意力矩阵是多余计算,该负数代表当前字关注当前token前面的token信息;
17、s3矩阵和矩阵分别按块乘积:
18、在当前已有技术中gpt注意力矩阵计算方式为,然后将对角线上方置为一个负数,然后取softmax函数,然后和值矩阵value相乘,将分成块相乘,分块相乘的好处,将对角线上方很大一部分通过直接赋值得到注意力矩阵;
19、
20、矩阵和矩阵分别按块乘积,具体如下:
21、。
22、本专利的主要创新点体现在提出了一种分块注意力矩阵方式旨在解决gpt因果注意力矩阵对角线右上方的部分冗余计算,降低的方式也即通过简单的矩阵分块相乘的思想,使得一部分注意力矩阵不直接计算,而是直接赋值负数,这远比矩阵相乘然后赋值负数效率高。
本文档来自技高网...【技术保护点】
1.一种适用于GPT模型的分块高效注意力算法,其特征在于包括如下步骤:
【技术特征摘要】
1.一种适用于gpt模型的分块高效注...
【专利技术属性】
技术研发人员:曹肖攀,
申请(专利权)人:中电万维信息技术有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。