基于制造技术

技术编号:39718110 阅读:5 留言:0更新日期:2023-12-17 23:25
本发明专利技术提供了一种基于

【技术实现步骤摘要】
基于Transformer网络模型的文本生成方法和装置


[0001]本专利技术涉及自然语言处理
,尤其涉及一种基于
Transformer
网络模型的文本生成方法和装置


技术介绍

[0002]Transformer
网络模型是一种基于注意力机制的深度学习模型,由于其能够高效且高精度地处理序列数据,并且具有能够捕捉长距离依赖关系的能力,自
2017
年被首次引入自然语言处理领域以来,
Transformer
网络模型的应用范围已经不断扩展到文本生成

图像处理

推荐系统

语音合成等多个人工智能领域

[0003]Transformer
网络模型由编码器和解码器组成

实际组成网络模型时,取决于任务类型的不同,可以仅使用编码器,或者可以仅使用解码器,也可以两者都用

一般而言,执行分类任务时仅使用编码器,执行文本生成任务时仅使用解码器,执行基于
Transformer
网络模型的翻译

语音识别

语音合成等任务时两者都用

其中,矩阵乘法(
Matrix Multiplication
)是
Transformer
网络模型最核心的数学运算之一,它占据了网络模型整体算力的较大部分

因此,在网络部署中,为了降低模型体积并加快推理速度,通常会将单精度浮点数(
FP32
)或半精度浮点数(
FP16
)的矩阵乘法量化为8位整数(
INT8
),甚至是4位整数(
INT4
)的数据格式进行部署

[0004]对文本生成任务而言,一般仅使用多层
Transformer
解码器堆叠成一个完整的生成网络,并且会将每一轮生成的词重新反馈到输入端以作为网络的新的输入来预测下一个词

也就是说,上一步的输出结果将被当作是下一步的输入来使用,这是一种迭代操作

然而,由于编码器层或解码器层堆叠数量增加,单层编码器层或解码器层体积增大等原因,
Transformer
网络模型的体积越来越大(例如,堆叠数量从早期的
12
层以内增加至当前使用的几十层;单层编码器层或解码器层体积的增大表现为嵌入维度(
Embedding Dimension
)的增加以及多头注意力头数的增多)
。Transformer
网络模型体积增大的情况会导致编码器层或解码器层的输出特征中出现越来越多特别大的数值,即异常值(
outlier


从而,进一步使得矩阵乘法在量化成
INT8

INT4
数据格式后精度大幅降低,并最终使得整个
Transformer
网络模型的精度降低

因此,当用户利用
Transformer
网络模型来获知问题的答案或者续写句子时,由于异常值的出现,使用已有的量化方法会引入较大的量化误差,从而使得最终生成的答案或者续写句子的语义不够准确

[0005]为解决大模型中因出现异常值而难以量化,并导致输出准确性降低的问题,现有技术中提出了一种改进方法,即在模型校准时,统计异常值在输入特征中的分布并找出存在异常值的列的位置

在矩阵乘时,将存在异常值的列单独使用
FP16
进行计算,其他列则使用
INT8
计算

然后将
INT8
的计算结果反量化后再与
FP16
的计算结果采用
FP16
求和,以得到最终结果

上述方法虽然能够改进因存在异常值导致的难以量化的问题,但却引入了新的问题

例如,当在图形处理器(
Graphics Processing Unit

GPU
)或专用硬件上运行时,采用
INT8

FP16
分别计算,将需要调用两种数据类型的内核(
kernel
),从而导致内核调用时间
显著增加

此外,并非所有专用硬件均能够支持
INT8

FP16
两种内核的动态切换运算

[0006]现有技术中还提出了另一种改进方法,即给输入特征的每列各分配一个缩放系数,在校准过程中确定各个缩放系数的值,为保证矩阵乘的结果不变,将权重矩阵每行的缩放系数设置为所对应的输入特征矩阵的缩放系数的倒数

通过此种设置能够将输入特征的异常值转移至权重矩阵中,使得输入特征对零的方差减小,但权重矩阵的方差增加

然而,这种方法需要耗费时间寻找出异常值转移的平衡点才能使得输出特征量化误差小到满足要求,而且平衡点并非一定存在

[0007]因此,上述现有技术中的方法虽然能够在一定程度上改善文本生成任务中因大模型出现异常值而难以量化的问题,但仍然存在其他缺陷


技术实现思路

[0008]鉴于此,本专利技术提供了一种基于
Transformer
网络模型的文本生成方法及装置,以用于解决现有技术中的上述技术问题

[0009]根据本专利技术的一个方面,提供了一种基于
Transformer
网络模型的文本生成方法,其中,该方法包括以下步骤:
S1
:将文本校准数据集输入
Transformer
网络模型进行推理,获得由
Transformer
网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
S2
:对输入特征矩阵中的每个输入特征取绝对值后,计算输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录原始异常值列的位置;
S3
:将原始异常值列复制
N
次后构成的扩张异常值列拼接至输入特征矩阵列尾,构成输入特征扩张矩阵,并将输入特征扩张矩阵中包括的原始异常值列与扩张异常值列中的数值均除以
N
加1之和,其中
N
为预设通道扩张倍数;
S4
:将权重矩阵中与原始异常值列相对应的行复制
N
次,然后拼接至权重矩阵行尾以构成权重扩张矩阵;
S5
:根据输入特征扩张矩阵

权重扩张矩阵以及输出特征矩阵进行量化,获得对应于输入特征扩张矩阵中每一行的行缩放系数组以及对应于权重扩张矩阵中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
Transformer
网络模型的文本生成方法,其特征在于,所述方法包括以下步骤:
S1
:将文本校准数据集输入
Transformer
网络模型进行推理,获得由所述
Transformer
网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
S2
:对所述输入特征矩阵中的每个输入特征取绝对值后,计算所述输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录所述原始异常值列的位置;
S3
:将所述原始异常值列复制
N
次后构成的扩张异常值列拼接至所述输入特征矩阵列尾,构成输入特征扩张矩阵,并将所述输入特征扩张矩阵中包括的所述原始异常值列与所述扩张异常值列中的数值均除以
N
加1之和,其中
N
为预设通道扩张倍数;
S4
:将权重矩阵中与所述原始异常值列相对应的行复制
N
次,然后拼接至所述权重矩阵行尾以构成权重扩张矩阵;
S5
:根据所述输入特征扩张矩阵

所述权重扩张矩阵以及所述输出特征矩阵进行量化,获得对应于所述输入特征扩张矩阵中每一行的行缩放系数组以及对应于所述权重扩张矩阵中每一列的列缩放系数组;
S6
:利用所述行缩放系数组与所述列缩放系数组部署所述
Transformer
网络模型;
S7
:向部署后的
Transformer
网络模型输入提示句并进行推理,获得对应于所述提示句的新文本
。2.
根据权利要求1所述的文本生成方法,其特征在于,
S7
还包括:将提示句输入部署后的
Transformer
网络模型进行推理,获得对应于所述提示句的输出词;将所述输出词作为新一轮推理的输入,再次输入部署后的
Transformer
网络模型进行推理,从而得到新一轮推理的输出词;将每一轮推理得到的输出词作为下一轮推理的输入,反复进行推理直至满足预设条件时停止,然后将每一轮推理得到的输出词按顺序拼接起来,即获得对应于所述提示句的新文本
。3.
根据权利要求2所述的文本生成方法,其特征在于,所述预设条件包括:用户主动终止推理

出现终止词

每一轮网络推理得到的输出词的总数已经达到模型的最大输出个数,在模型推理过程中只要满足所述预设条件中的一个,则推理终止
。4.
根据权利要求3所述的文本生成方法,其特征在于,所述提示句的类型包括提问句以及需要进行文本续写的词语或句子,对应于所述提示句的新文本的类型包括用户输入的问题的答案,或者完成续写的文本
。5.
根据权利要求1所述的文本生成方法,其特征在于,所述预设通道扩张倍数为大于1的正整数
。6.
根据权利要求2所述的文本生成方法,其特征在于,所述预设通道扩张倍数的取值为2的正整数次方倍减去
1。7.
根据权利要求1所述的文本生成方法,其特征在于,所述输入特征扩张矩阵的列数与所述权重扩张矩阵的行数相等,所述输入特征...

【专利技术属性】
技术研发人员:张浩张磊
申请(专利权)人:瀚博半导体上海有限公司
类型:发明
国别省市:

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

1