CN117217318B - 基于Transformer网络模型的文本生成方法和装置 - Google Patents
基于Transformer网络模型的文本生成方法和装置 Download PDFInfo
- Publication number
- CN117217318B CN117217318B CN202311465124.2A CN202311465124A CN117217318B CN 117217318 B CN117217318 B CN 117217318B CN 202311465124 A CN202311465124 A CN 202311465124A CN 117217318 B CN117217318 B CN 117217318B
- Authority
- CN
- China
- Prior art keywords
- matrix
- column
- network model
- expansion
- input feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000011159 matrix material Substances 0.000 claims abstract description 194
- 230000002159 abnormal effect Effects 0.000 claims abstract description 52
- 238000013139 quantization Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 21
- 102100030148 Integrator complex subunit 8 Human genes 0.000 claims description 9
- 101710092891 Integrator complex subunit 8 Proteins 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 101710092887 Integrator complex subunit 4 Proteins 0.000 claims description 5
- 102100037075 Proto-oncogene Wnt-3 Human genes 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000011002 quantification Methods 0.000 abstract description 3
- 230000005856 abnormality Effects 0.000 abstract 2
- 239000010410 layer Substances 0.000 description 27
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Machine Translation (AREA)
Abstract
本发明提供了一种基于Transformer网络模型的文本生成方法和装置。其中,该方法包括对输入特征取绝对值后计算每列平均值,若大于等于预设异常阈值则判定异常并记录位置;扩张输入特征矩阵以及权重矩阵;量化以获得行、列缩放系数组;利用两个缩放系数组部署Transformer网络模型并输入提示句进行推理并获得新文本。本发明所提供的技术方案能够克服因出现异常值而导致的难以量化的问题,既可以在图形处理器上部署,也可设计专用硬件以部署,此外,其还能够减少内核调用的时间,提高整体推理效率。
Description
技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种基于Transformer网络模型的文本生成方法和装置。
背景技术
Transformer网络模型是一种基于注意力机制的深度学习模型,由于其能够高效且高精度地处理序列数据,并且具有能够捕捉长距离依赖关系的能力,自2017年被首次引入自然语言处理领域以来,Transformer网络模型的应用范围已经不断扩展到文本生成、图像处理、推荐系统、语音合成等多个人工智能领域。
Transformer网络模型由编码器和解码器组成。实际组成网络模型时,取决于任务类型的不同,可以仅使用编码器,或者可以仅使用解码器,也可以两者都用。一般而言,执行分类任务时仅使用编码器,执行文本生成任务时仅使用解码器,执行基于Transformer网络模型的翻译、语音识别、语音合成等任务时两者都用。其中,矩阵乘法(MatrixMultiplication)是Transformer网络模型最核心的数学运算之一,它占据了网络模型整体算力的较大部分。因此,在网络部署中,为了降低模型体积并加快推理速度,通常会将单精度浮点数(FP32)或半精度浮点数(FP16)的矩阵乘法量化为8位整数(INT8),甚至是4位整数(INT4)的数据格式进行部署。
对文本生成任务而言,一般仅使用多层Transformer解码器堆叠成一个完整的生成网络,并且会将每一轮生成的词重新反馈到输入端以作为网络的新的输入来预测下一个词。也就是说,上一步的输出结果将被当作是下一步的输入来使用,这是一种迭代操作。然而,由于编码器层或解码器层堆叠数量增加,单层编码器层或解码器层体积增大等原因,Transformer网络模型的体积越来越大(例如,堆叠数量从早期的12层以内增加至当前使用的几十层;单层编码器层或解码器层体积的增大表现为嵌入维度(Embedding Dimension)的增加以及多头注意力头数的增多)。Transformer网络模型体积增大的情况会导致编码器层或解码器层的输出特征中出现越来越多特别大的数值,即异常值(outlier)。从而,进一步使得矩阵乘法在量化成INT8或INT4数据格式后精度大幅降低,并最终使得整个Transformer网络模型的精度降低。因此,当用户利用Transformer网络模型来获知问题的答案或者续写句子时,由于异常值的出现,使用已有的量化方法会引入较大的量化误差,从而使得最终生成的答案或者续写句子的语义不够准确。
为解决大模型中因出现异常值而难以量化,并导致输出准确性降低的问题,现有技术中提出了一种改进方法,即在模型校准时,统计异常值在输入特征中的分布并找出存在异常值的列的位置。在矩阵乘时,将存在异常值的列单独使用FP16进行计算,其他列则使用INT8计算。然后将INT8的计算结果反量化后再与FP16的计算结果采用FP16求和,以得到最终结果。上述方法虽然能够改进因存在异常值导致的难以量化的问题,但却引入了新的问题。例如,当在图形处理器(Graphics Processing Unit,GPU)或专用硬件上运行时,采用INT8和FP16分别计算,将需要调用两种数据类型的内核(kernel),从而导致内核调用时间显著增加。此外,并非所有专用硬件均能够支持INT8与FP16两种内核的动态切换运算。
现有技术中还提出了另一种改进方法,即给输入特征的每列各分配一个缩放系数,在校准过程中确定各个缩放系数的值,为保证矩阵乘的结果不变,将权重矩阵每行的缩放系数设置为所对应的输入特征矩阵的缩放系数的倒数。通过此种设置能够将输入特征的异常值转移至权重矩阵中,使得输入特征对零的方差减小,但权重矩阵的方差增加。然而,这种方法需要耗费时间寻找出异常值转移的平衡点才能使得输出特征量化误差小到满足要求,而且平衡点并非一定存在。
因此,上述现有技术中的方法虽然能够在一定程度上改善文本生成任务中因大模型出现异常值而难以量化的问题,但仍然存在其他缺陷。
发明内容
鉴于此,本发明提供了一种基于Transformer网络模型的文本生成方法及装置,以用于解决现有技术中的上述技术问题。
根据本发明的一个方面,提供了一种基于Transformer网络模型的文本生成方法,其中,该方法包括以下步骤:
S1:将文本校准数据集输入Transformer网络模型进行推理,获得由Transformer网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
S2:对输入特征矩阵中的每个输入特征取绝对值后,计算输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录原始异常值列的位置;
S3:将原始异常值列复制N次后构成的扩张异常值列拼接至输入特征矩阵列尾,构成输入特征扩张矩阵,并将输入特征扩张矩阵中包括的原始异常值列与扩张异常值列中的数值均除以N加1之和,其中N为预设通道扩张倍数;
S4:将权重矩阵中与原始异常值列相对应的行复制N次,然后拼接至权重矩阵行尾以构成权重扩张矩阵;
S5:根据输入特征扩张矩阵、权重扩张矩阵以及输出特征矩阵进行量化,获得对应于输入特征扩张矩阵中每一行的行缩放系数组以及对应于权重扩张矩阵中每一列的列缩放系数组;
S6:利用行缩放系数组与列缩放系数组部署Transformer网络模型;
S7:向部署后的Transformer网络模型输入提示句并进行推理,获得对应于提示句的新文本。
根据本发明的另一个方面,提供了一种基于Transformer网络模型的文本生成装置,其中,该装置包括以下模块:
校准模块,被配置为将文本校准数据集输入Transformer网络模型进行推理,获得由Transformer网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
判定模块,被配置为对输入特征矩阵中的每个输入特征取绝对值后,计算输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录原始异常值列的位置;
输入扩张模块,被配置为将原始异常值列复制N次后构成的扩张异常值列拼接至输入特征矩阵列尾,构成输入特征扩张矩阵,并将输入特征扩张矩阵中包括的原始异常值列与扩张异常值列中的数值均除以N加1之和,其中N为预设通道扩张倍数;
权重扩张模块,被配置为将权重矩阵中与原始异常值列相对应的行复制N次,然后拼接至权重矩阵行尾以构成权重扩张矩阵;
量化模块,被配置为根据输入特征扩张矩阵、权重扩张矩阵以及输出特征矩阵进行量化,获得对应于输入特征扩张矩阵中每一行的行缩放系数组以及对应于权重扩张矩阵中每一列的列缩放系数组;
部署模块,被配置为利用行缩放系数组与列缩放系数组部署Transformer网络模型;
文本生成模块,被配置为向部署后的Transformer网络模型输入提示句并进行推理,获得对应于提示句的新文本。
根据本发明的又一个方面,提供了一种电子设备,包括:一个或多个处理器以及存储器,其中,存储器用于存储可执行指令;一个或多个处理器被配置为经由可执行指令来实现上述的方法。
根据本发明的再另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,使处理器执行上述的方法。
从以上技术方案可以看出,本发明所提供的技术方案能够克服目前Transformer大模型中因出现异常值而导致的难以量化的问题,并至少存在以下优点:
1.本发明所提供的技术方案不仅可以在图形处理器(Graphics ProcessingUnit,GPU)上部署,也可设计专用硬件以部署;
2.本发明所提供的技术方案仅调用单一数据类型的内核(kernel),减少了内核调用的时间;
3.本发明所提供的技术方案无需寻找异常值转移的平衡点就能够使得输出特征的量化误差足够小以满足实际需求;
4. 本发明所提供的技术方案提高了整个Transformer网络模型的精度并使得文本生成任务中获得新文本的准确性提高。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,但并不构成对本发明技术方案的限制。
图1示出了本发明示例性实施例中基于Transformer网络模型的文本生成方法的流程图;
图2示出了本发明示例性实施例中通道扩张操作的示意图;
图3示出了本发明示例性实施例中生成量化后权重矩阵的操作示意图;
图4示出了本发明示例性实施例中根据量化后的权重矩阵部署Transformer网络模型的操作示意图;
图5示出了本发明示例性实施例中OPT-13B网络模型以及Transformer解码器的内部结构图;
图6示出了本发明示例性实施例所提供的文本生成装置的结构框图;
图7示出了本发明示例性实施例所提供的电子设备的结构框图。
具体实施方式
下面将参照附图来详细描述本发明的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,并不作为对本发明及其应用或使用的任何限制。本发明能够以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本发明透彻且完整,并且向本领域技术人员充分表达本发明的范围。
除非明确表明,如果未特意限定要素的数量,则该要素可以是一个也可以是多个。术语“多个/若干”意指两个或更多,术语“基于”应解释为“至少部分地基于”,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。另外,“第一”、“第二”等类似表述仅出于描述目的,而非指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。
本发明公开了一种在自然语言处理技术领域中,基于Transformer网络模型的文本生成方法,该文本生成方法借助通道扩张量化实现。其中,通道扩张量化通过对Transformer网络模型中的矩阵乘操作进行通道扩张的方式来降低量化误差,从而使得量化后Transformer网络模型的输出更加接近未经量化的输出。此外,本发明所提供的技术方案不仅能够在文本生成中进行应用,其在自然语言处理技术领域的其他任务中也能够得以运用并取得有益效果。
本发明所提供技术方案的原理是,如果输入特征矩阵中存在异常值的列能够在输入特征中重复复制N次,则异常值的幅度可降低至使得矩阵相乘的数学结果不变。并且,由于异常值的幅度降低至,按行统计的对零方差也会显著降低。进一步地,由于异常值列的数量只占输入特征矩阵总的列的数量的很小一部分,所以因其重复N次导致的算力增加也可以忽略不计。
请参考图1至图2,其分别示出了本发明示例性实施例中基于Transformer网络模型的文本生成方法的流程图,以及通道扩张操作的示意图。
根据本发明的一个方面,提供了一种基于Transformer网络模型的文本生成方法,其中,该方法通过在量化操作前先进行通道扩张的方式来克服目前Transformer大模型中因出现异常值而导致的难以量化的问题,从而提高了Transformer网络模型的整体精度,并使得文本生成任务中获得新文本的准确性提高,使得最终生成的答案准确或者续写的句子语义准确合理。
具体地,本发明提供的方法包括以下步骤:
S1:将文本校准数据集输入Transformer网络模型进行推理,获得由Transformer网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
S2:对输入特征矩阵中的每个输入特征取绝对值后,计算输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录原始异常值列的位置;
S3:将原始异常值列复制N次后构成的扩张异常值列拼接至输入特征矩阵列尾,构成输入特征扩张矩阵,并将输入特征扩张矩阵中包括的原始异常值列与扩张异常值列中的数值均除以N加1之和(N+1),其中N为预设通道扩张倍数;
S4:将权重矩阵中与原始异常值列相对应的行复制N次,然后拼接至权重矩阵行尾以构成权重扩张矩阵;
S5:根据输入特征扩张矩阵、权重扩张矩阵以及输出特征矩阵进行量化,获得对应于输入特征扩张矩阵中每一行的行缩放系数组以及对应于权重扩张矩阵中每一列的列缩放系数组;
S6:利用行缩放系数组与列缩放系数组部署Transformer网络模型;
S7:向部署后的Transformer网络模型输入提示句并进行推理,获得对应于提示句的新文本。
在S7中,利用行缩放系数组与列缩放系数组部署的Transformer网络模型可用于对提示句做推理以执行文本生成任务,从而回答用户问题或者进行文本续写。
具体而言,文本生成任务的操作流程如下:
首先,用户将提示句输入部署后的Transformer网络模型进行推理,获得对应于提示句的输出词,其中,提示句的类型既可以包括用户想要让模型进行回答的问题,也可以包括用户想要让模型进行文本续写的词语或句子,输出词为用于回答用户问题或者进行文本续写的、对应于提示句的下一个词;
接着,用户将得到的输出词作为新一轮推理的输入,再次重新输入部署后的Transformer网络模型进行推理,从而得到新一轮推理的输出词;
通过迭代计算的方式,将每一轮得到的输出词作为下一轮推理的输入,反复进行推理直至满足预设条件时停止,最终将每一轮网络推理得到的输出词按顺序拼接起来,构成的新文本即为用户输入的问题的答案,或者完成续写的文本。
预设条件包括但不限于如下三种情形,只要满足其中的一个条件则停止推理:
(1)用户主动终止推理;
(2)出现终止词(终止词是用户特殊定义的词,当出现终止词时模型会自动终止文本生成任务);
(3)每一轮网络推理得到的输出词的总数已经达到模型的最大输出个数。
本领域技术人员可以知晓,为满足矩阵乘的需要,输入特征扩张矩阵的列数与权重扩张矩阵的行数相等。预设异常阈值可根据量化精度的需求进行调整;预设通道扩张倍数N为大于1的正整数,其表示每个原始异常值列需要重复N次,一般而言N可以取值为2的正整数次方倍减去1,合适的N值可以从1开始逐渐增大尝试。
此外,S1中使用的文本校准数据集用于对Transformer网络模型进行校准。在一个示例性实施例中,可以选取C4数据集(Colossal Clean Crawled Corpus)作为用于校准的文本校准数据集,但也可以使用本领域中其他数据集作为用于校准的文本校准数据集。也就是说,具体数据集的选取可由用户根据实际任务确定,比如在中文生成任务中使用中文数据集,在英文生成任务中使用英文数据集,生成某领域的文本就可针对性地使用某领域的数据集。
请参考图3至图4,其分别示出了本发明示例性实施例中生成量化后权重矩阵的操作示意图,以及根据量化后的权重矩阵部署Transformer网络模型的操作示意图。
S5中对通道扩张后的输入数据矩阵和权重矩阵进行量化的方式包括INT8量化或
INT4量化,通过量化,可以得到对应于输入特征扩张矩阵中每一行的行缩放系数组,以及对应于权重扩张矩阵中每一列的列缩放系数组;接着,
即可以将行缩放系数组,以及列缩放系数组用于部署
Transformer网络模型,该部署方法步骤包括:
S01:根据列缩放系数组生成量化后的权重矩阵;
S02:根据量化后的权重矩阵部署Transformer网络模型包括的每个矩阵乘。
其中,量化后的权重矩阵可以采用离线或者在线的方式生成。量化算法可采用最大值最小值算法(Min-max)、KL散度算法(Kullback–Leibler Divergence)、百分比算法(Percentage)等,本发明并不以此为限。根据量化后的权重矩阵部署的Transformer网络模型的网络精度可以通过增大预设通道扩张倍数或者降低预设异常阈值的方式进行调整。
以下部分将以开放的预先训练的Transformer-130亿参数(Open Pre-trainedTransformer Language Models-13B,OPT-13B)网络模型为示例对本发明提供的技术方案进行说明。OPT-13B网络模型的网络结构以及Transformer解码器的内部结构如图5所示。OPT-13B网络模型是一个用于文本生成任务的语言模型,该模型共含有130亿个参数,并且其网络中仅具有Transformer解码器,不具有Transformer编码器。OPT-13B网络模型共有40层结构相同但权重不同的Transformer解码器,并且这40层解码器中的每一层解码器各自均需要独立地进行通道扩张操作。OPT-13B网络模型在输入端设有一层嵌入层(Embedding),在输出端设有一层归一化层(LayerNorm)、一层线性层(Linear)以及一层在最后一维求最大值对应的词的层(Arguments of the Maxima,Argmax)用于获得最大概率对应的词。
OPT-13B网络模型的具体参数如下表所示:
Transformer解码器层数: | 40层 |
隐空间大小: | 5120 |
前向全连接层大小: | 20480 |
最长序列长度: | 2048 |
注意力头数: | 40 |
词表大小: | 50272 |
。
OPT-13B网络模型中的Transformer解码器由查询-键-值(Query-Key-Value,QKV)线性层、自注意力层、输出线性层,以及多层感知机(Multilayer Perceptron,MLP)模块中的两层线性层组成。其中,线性层均为激活与权重的矩阵乘,本发明中提出的通道扩张量化技术即部署于该模块中。
在使用INT8或INT4部署前,需要对OPT-13B网络模型进行校准操作,用于得到量化的缩放系数。
首先,设定预设异常阈值T为1以及预设通道扩张倍数N为3,如果输入特征矩阵按列统计的平均值大于等于T,则认定该列是异常值列;如果输入特征矩阵按列统计的平均值小于T,则认定该列不是异常值列。在量化精度不满足要求时可以对预设异常阈值进行调整。一般而言,阈值越低,则选出的异常值列越多,那么通道扩张后的量化误差就越低。
然后,将C4数据集中包括所有的句子首尾相接,拼接成一个长句,并以2048为单位,将首尾相接的长句切分成等长的、长度为2048(OPT-13B模型允许的最长序列长度)的短句。将这些长度为2048的短句输入至OPT-13B网络模型,并使用FP16或更高比特数的数据格式进行推理,然后保存OPT-13B网络模型包括的每个Transformer解码器中的每个线性层的输入特征和输出特征,这些输入特征和输出特征分别构成输入特征矩阵以及输出特征矩阵。
对输入特征矩阵中的每个输入特征取绝对值后,按列计算输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录原始异常值列的位置。以第一层Transformer解码器的输出线性层为例进行说明,该输出线性层的输入特征矩阵尺寸为[BS×2048, 5120],权重尺寸为[5120, 5120],输出特征矩阵尺寸为[BS×2048, 5120],其中BS(Batch Size)为批大小,其值由用于校准的文本校准数据集包括的数据量决定。对输入特征矩阵中的每个输入特征取绝对值,并按列统计平均值,如果某一列的平均值大于等于预设异常阈值1,则认定该列为原始异常值列。记录下所有原始异常值列的位置,组成原始异常值列位置集合。对于每一个Transformer解码器中的矩阵乘操作,均能够获得与其对应的原始异常值列位置集合。
继续以该输出线性层为例进行说明,使用原始异常值列位置集合中的位置索引,对于输入特征矩阵中的原始异常值列,每列复制3(即本实施例中的预设通道扩张倍数N)次以形成扩张异常值列,并将该扩张异常值列拼接至输入特征矩阵列尾以构成输入特征扩张矩阵。此时,输入特征扩张矩阵中共计具有(N+1=4)个异常值列,将这些异常值列中的数值均除以4。然后,将权重矩阵中与原始异常值列相对应的行同样也复制3次,然后拼接至权重矩阵行尾以构成权重扩张矩阵,权重扩张矩阵中的数值无需进行除法操作。
通过上述通道扩张操作,获得了输入特征扩张矩阵以及权重扩张矩阵,然后根据
输入特征扩张矩阵、权重扩张矩阵以及输出特征矩阵进行INT8或INT4量化,从而得到对应
于输入特征扩张矩阵中每一行的行缩放系数组(因为输入有BS×
2048行),以及对应于权重扩张矩阵中每一列的列缩放系数组(因为输入
有5120列)。需要说明的是,行缩放系数组中的某些行缩放系数可能
为相同值,即某些行的行缩放系数是相等的,列缩放系数组中的某些列
缩放系数可能为相同值,即某些列的列缩放系数是相等的。
上述操作适用于OPT-13B网络模型包括的每个Transformer解码器中的每个输入特征矩阵与权重矩阵的矩阵乘操作,以获得输入特征矩阵每行的行缩放系数以及权重矩阵每列的列缩放系数。
至此,带有通道扩张操作的校准步骤完成。校准后就可以对OPT-13B网络模型进行部署。请再次参考图3与图4,网络模型的部署操作可分为以下两个步骤。
步骤一:利用对应于权重扩张矩阵中每一列的列缩放系数组量化权重,并进行通道扩张操作,具体如下:
首先,使用列缩放系数组量化已有的权重矩阵,获得INT8或INT4数据格式的权重矩阵。然后,使用异常行的位置索引,将量化后权重矩阵中的每行对应于原始异常列的异常行复制3次,并拼接至量化后权重矩阵行尾。前述操作可以在线进行,也可以离线进行。其中,在线进行指的是,进行网络推理时,每次当出现新的输入时,则对每一个带有权重的矩阵乘均重复以上的步骤,从而生成通道扩张的量化后权重矩阵。离线进行指的是,在网络推理之前,对每一个带有权重的矩阵乘的权重矩阵预先进行量化与通道扩张操作,然后储存预先处理好的权重矩阵,此后每次当出现新的输入时,则直接取用已储存的权重矩阵,而无需对每个新的输入再进行量化与通道扩张处理。
步骤二:对输入特征矩阵进行推理运算,具体如下:
对于每一个带有权重的矩阵乘,使用异常列的位置索引,把输入特征矩阵中的原始异常列,每列复制3次并拼接到输入特征矩阵列尾(即通道扩张操作),得到输入特征扩张矩阵,然后将输入特征扩张矩阵包括的所有异常值列(包括原始异常值列与扩张异常值列)的数值除以4。然后使用之前已经得到的列缩放系数组对通道扩张后的输入特征扩张矩阵进行量化。接着,使用量化后的输入特征扩张矩阵与第一步中得到的量化后权重矩阵做矩阵乘,得到的结果用列缩放系数组和行缩放系数组做反量化,从而得到最终的输出特征矩阵。
OPT-13B网络模型的输入为一个提示句,对提示句做完推理后,OPT-13B网络模型会生成一个新词,然后将该新词作为新的输入继续进行下一轮推理,从而得到下一个新词。通过前述迭代的推理方式,完成提示句的文本生成任务。除对带有权重的矩阵乘进行通道扩张量化操作外,整个网络模型的其他运算操作保持不变。OPT-13B模型用于文本生成任务的操作流程同样适用前文描述的文本生成任务操作流程,此处不再赘述。
请参考图6,其示出了本发明示例性实施例所提供的文本生成装置的结构框图。
本发明还提供了一种基于Transformer网络模型的文本生成装置。具体地,本发明所提供的装置包括以下模块:
校准模块,被配置为利用文本校准数据集对Transformer网络模型进行推理,获得由Transformer网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
判定模块,被配置为对输入特征矩阵中的每个输入特征取绝对值后,计算输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录原始异常值列的位置;
输入扩张模块,被配置为将原始异常值列复制N次后构成的扩张异常值列拼接至输入特征矩阵列尾,构成输入特征扩张矩阵,并将输入特征扩张矩阵中包括的原始异常值列与扩张异常值列中的数值均除以N加1之和(N+1),其中N为预设通道扩张倍数;
权重扩张模块,被配置为将权重矩阵中与原始异常值列相对应的行复制N次,然后拼接至权重矩阵行尾以构成权重扩张矩阵;
量化模块,被配置为根据输入特征扩张矩阵、权重扩张矩阵以及输出特征矩阵进行量化,获得对应于输入特征扩张矩阵中每一行的行缩放系数组以及对应于权重扩张矩阵中每一列的列缩放系数组;
部署模块,被配置为利用行缩放系数组与列缩放系数组部署Transformer网络模型;
文本生成模块,被配置为向部署后的Transformer网络模型输入提示句并进行推理,获得对应于提示句的新文本。
应当理解,图6中所示的装置可以与本说明书前文描述的方法相对应。由此,上面针对方法描述的操作、特征和优点同样适用于本发明所提供的装置及其包括的模块,上面针对装置及其包括的模块描述的操作、特征和优点同样适用于本发明所提供的方法。为了简洁起见,某些操作、特征和优点将不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本发明技术方案中各个模块的功能也可以分为多个模块进行实现,和/或多个模块的至少一些功能可以组合成单个模块进行实现。本发明技术方案中特定模块执行动作的方式包括,该特定模块本身执行动作,或者由该特定模块调用或以其他方式访问执行动作(或结合该特定模块一起执行动作)。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
除上述技术方案外,本发明还提供了一种电子设备,该电子设备包括一个或多个处理器以及用于存储可执行指令存储器。其中,该一个或多个处理器被配置为经由可执行指令来实现上述方法。本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行上述方法。在本说明书的以下部分,将结合图7来描述前述电子设备、计算机可读存储介质的说明性示例。
图7示出了可以被用来实施本发明所描述的方法的电子设备300的示例配置。本发明技术方案也可以全部或至少部分地由电子设备300或类似设备/系统实现。电子设备300可以是各种不同类型的设备。电子设备300的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备、可穿戴设备、娱乐设备、电视或其他显示设备、汽车计算机等。
电子设备300可包括能够通过系统总线311或其他适当的连接彼此通信的至少一个处理器302、存储器304、(多个)通信接口309、显示设备301、其他输入/输出(I/O)设备310以及一个或更多大容量存储设备303。
处理器302可以是单个或多个处理单元,所有处理单元可以包括单个或多个计算单元或多个核心。处理器302可以被实施成一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除其他能力之外,处理器302可被配置成获取并且执行存储在存储器304、大容量存储设备303或其他计算机可读介质中的计算机可读指令,例如操作系统305或应用程序306或其他程序307的程序代码等。
存储器304和大容量存储设备303是用于存储指令的计算机可读存储介质的示例,指令由处理器302执行来实施前面所描述的各种功能。举例来说,存储器304一般可以包括易失性存储器和非易失性存储器二者。此外,大容量存储设备303一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘、存储阵列、网络附属存储、存储区域网等。存储器304和大容量存储设备303在本发明中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器302作为被配置成实施在本发明的示例中所描述的操作和功能的特定机器来执行。
多个程序可以存储在大容量存储设备303上。这些程序包括操作系统305、一个或多个应用程序306、其他程序307和程序数据308,并且它们可以被加载到存储器304以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):本发明所提供的方法(包括该方法的任何合适的步骤)和/或本发明描述的另外的实施例。
虽然在图7中被示成存储在电子设备300的存储器304中,但模块化的操作系统305、应用程序306、其他程序307和程序数据308或者其部分可以使用可由电子设备300访问的任何形式的计算机可读介质来实施。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。通信介质包括例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质以及能传播能量波的无线介质。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质中的已调制数据信号。
例如,计算机可读存储介质可包括以用于存储如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括但不限于,易失性存储器,例如随机存储器(RAM、DRAM、SRAM);以及非易失性存储器,例如闪存、各种只读存储器(ROM、PROM、EPROM、EEPROM)、磁性和铁磁/铁电存储器(MRAM、FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
一个或多个通信接口309用于通过如网络、直接连接等与其他设备交换数据。此通信接口可以是以下各项中的一个或多个:任何类型的网络接口、有线或无线(如WLAN)接口、Wi-MAX接口、以太网接口、USB接口、蜂窝网络接口、Bluetooth接口、NFC接口等。通信接口309可以促进在多种网络和协议类型内的通信,其中包括有线网络和无线网络、因特网等。通信接口309还可提供与例如存储阵列、网络附属存储、存储区域网等中的外部存储设备(图中未示出)的通信。
在一些示例中,可以包括例如监视器的显示设备301,以用于向用户显示信息和图像。其他I/O设备310可以是接收用户输入并向用户提供输出的设备,并且可以包括触摸/手势输入设备、摄影机、键盘、遥控器、鼠标、音频输入/输出设备等。
本发明描述的技术方案可以由电子设备300的这些各种配置来支持,并且不限于本发明所描述的技术方案的具体示例。前文及附图中对本发明作出的说明和描述并非限制性的,对本领域技术人员而言,显然本发明不限于上述示例性实施例的细节,在不背离本发明精神或基本特征的情况下,也能够以其他的具体形式实现本发明。因此,本发明所要求保护的范围由权利要求而非上述说明限定,落在权利要求的等同要件含义和范围内的所有变化均涵盖在本发明的保护范围内。
Claims (14)
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所述的文本生成方法,其特征在于,所述输入特征扩张矩阵的列数与所述权重扩张矩阵的行数相等,所述输入特征扩张矩阵的行数与所述权重扩张矩阵的列数相等。
8.根据权利要求1所述的文本生成方法,其特征在于,S5中进行量化的方式包括INT8量化或INT4量化。
9.根据权利要求8所述的文本生成方法,其特征在于,S6中部署所述Transformer网络模型的方法包括:
S01:根据所述列缩放系数组生成量化后的权重矩阵;
S02:根据量化后的权重矩阵部署所述Transformer网络模型包括的每个矩阵乘。
10.根据权利要求9所述的文本生成方法,其特征在于,所述量化后的权重矩阵以离线或者在线的方式生成。
11.根据权利要求9所述的文本生成方法,其特征在于,所述根据量化后的权重矩阵部署的Transformer网络模型的网络精度可以通过增大所述预设通道扩张倍数或者降低所述预设异常阈值的方式进行调整。
12.一种基于Transformer网络模型的文本生成装置,其特征在于,所述装置包括以下模块:
校准模块,被配置为将文本校准数据集输入Transformer网络模型进行推理,获得由所述Transformer网络模型包括的每个矩阵乘各自的输入数据与输出数据分别构成的输入特征矩阵以及输出特征矩阵;
判定模块,被配置为对所述输入特征矩阵中的每个输入特征取绝对值后,计算所述输入特征矩阵每一列的平均值,若某一列的平均值大于等于预设异常阈值,则判定其为原始异常值列并记录所述原始异常值列的位置;
输入扩张模块,被配置为将所述原始异常值列复制N次后构成的扩张异常值列拼接至所述输入特征矩阵列尾,构成输入特征扩张矩阵,并将所述输入特征扩张矩阵中包括的所述原始异常值列与所述扩张异常值列中的数值均除以N加1之和,其中N为预设通道扩张倍数;
权重扩张模块,被配置为将权重矩阵中与所述原始异常值列相对应的行复制N次,然后拼接至所述权重矩阵行尾以构成权重扩张矩阵;
量化模块,被配置为根据所述输入特征扩张矩阵、所述权重扩张矩阵以及所述输出特征矩阵进行量化,获得对应于所述输入特征扩张矩阵中每一行的行缩放系数组以及对应于所述权重扩张矩阵中每一列的列缩放系数组;
部署模块,被配置为利用所述行缩放系数组与所述列缩放系数组部署所述Transformer网络模型;
文本生成模块,被配置为向部署后的Transformer网络模型输入提示句并进行推理,获得对应于所述提示句的新文本。
13.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311465124.2A CN117217318B (zh) | 2023-11-07 | 2023-11-07 | 基于Transformer网络模型的文本生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311465124.2A CN117217318B (zh) | 2023-11-07 | 2023-11-07 | 基于Transformer网络模型的文本生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117217318A CN117217318A (zh) | 2023-12-12 |
CN117217318B true CN117217318B (zh) | 2024-01-26 |
Family
ID=89049599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311465124.2A Active CN117217318B (zh) | 2023-11-07 | 2023-11-07 | 基于Transformer网络模型的文本生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117217318B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117852655B (zh) * | 2024-02-27 | 2024-08-09 | 荣耀终端有限公司 | 利用大模型进行推理的方法和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020190772A1 (en) * | 2019-03-15 | 2020-09-24 | Futurewei Technologies, Inc. | Neural network model compression and optimization |
CN112232165A (zh) * | 2020-10-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机及可读存储介质 |
CN113537470A (zh) * | 2021-07-21 | 2021-10-22 | Oppo广东移动通信有限公司 | 模型量化方法及装置、存储介质及电子设备 |
CN114859783A (zh) * | 2022-04-27 | 2022-08-05 | 中煤科工集团重庆智慧城市科技研究院有限公司 | 箱式变电站的数据监控方法及系统 |
CN115861767A (zh) * | 2022-12-23 | 2023-03-28 | 浙江中创天成科技有限公司 | 一种用于图像分类的神经网络联合量化方法 |
WO2023130687A1 (zh) * | 2022-01-05 | 2023-07-13 | 苏州浪潮智能科技有限公司 | 一种自然语言处理方法、装置、设备及可读存储介质 |
CN116451769A (zh) * | 2023-04-13 | 2023-07-18 | 上海交通大学 | 语言模型的量化方法及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140301B2 (en) * | 2007-04-30 | 2012-03-20 | International Business Machines Corporation | Method and system for causal modeling and outlier detection |
US10678508B2 (en) * | 2018-03-23 | 2020-06-09 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
CN111382833A (zh) * | 2018-12-29 | 2020-07-07 | 佳能株式会社 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
JPWO2021157062A1 (zh) * | 2020-02-07 | 2021-08-12 |
-
2023
- 2023-11-07 CN CN202311465124.2A patent/CN117217318B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020190772A1 (en) * | 2019-03-15 | 2020-09-24 | Futurewei Technologies, Inc. | Neural network model compression and optimization |
CN112232165A (zh) * | 2020-10-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机及可读存储介质 |
CN113537470A (zh) * | 2021-07-21 | 2021-10-22 | Oppo广东移动通信有限公司 | 模型量化方法及装置、存储介质及电子设备 |
WO2023130687A1 (zh) * | 2022-01-05 | 2023-07-13 | 苏州浪潮智能科技有限公司 | 一种自然语言处理方法、装置、设备及可读存储介质 |
CN114859783A (zh) * | 2022-04-27 | 2022-08-05 | 中煤科工集团重庆智慧城市科技研究院有限公司 | 箱式变电站的数据监控方法及系统 |
CN115861767A (zh) * | 2022-12-23 | 2023-03-28 | 浙江中创天成科技有限公司 | 一种用于图像分类的神经网络联合量化方法 |
CN116451769A (zh) * | 2023-04-13 | 2023-07-18 | 上海交通大学 | 语言模型的量化方法及电子设备 |
Non-Patent Citations (3)
Title |
---|
DELTA-LORA: FINE-TUNING HIGH-RANK PARAME- TERS WITH THE DELTA OF LOW-RANK MATRICES;Bojia Zi 等;《arXiv:2309.02411v1》;全文 * |
Variation-aware Vision Transformer Quantization;Xijie Huang 等;arXiv:2307.00331v1》;全文 * |
基于动态Transformer的轻量化目标检测算法;方思凯 等;《电光与控制》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117217318A (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240143691A1 (en) | Universal transformers | |
US20190138887A1 (en) | Systems, methods, and media for gated recurrent neural networks with reduced parameter gating signals and/or memory-cell units | |
US11030997B2 (en) | Slim embedding layers for recurrent neural language models | |
US11887008B2 (en) | Contextual text generation for question answering and text summarization with supervised representation disentanglement and mutual information minimization | |
CN117217318B (zh) | 基于Transformer网络模型的文本生成方法和装置 | |
US20140156575A1 (en) | Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization | |
US20220253672A1 (en) | Sparse attention neural networks | |
JP2023529801A (ja) | スパースアテンションメカニズムを備えたアテンションニューラルネットワーク | |
CN113826117A (zh) | 来自神经网络的高效二元表示 | |
US20220108150A1 (en) | Method and apparatus for processing data, and related products | |
US20210004690A1 (en) | Method of and system for multi-view and multi-source transfers in neural topic modelling | |
US20230051625A1 (en) | Method and apparatus with speech processing | |
CN109933806A (zh) | 一种复述生成方法、系统、设备及计算机可读存储介质 | |
CN118468976A (zh) | 模型训练方法、文本生成方法、装置、设备和介质 | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
US11934930B2 (en) | Selective batching for inference system for transformer-based generation tasks | |
CN116842153A (zh) | 一种基于反馈特征学习的多模态情感分析方法、系统 | |
CN113408702B (zh) | 音乐神经网络模型预训练方法及电子设备和存储介质 | |
US20210271981A1 (en) | Electronic apparatus and method for controlling thereof | |
US20220108162A1 (en) | Decimating hidden layers for training transformer models | |
US11657864B1 (en) | In-memory computing apparatus and computing method having a memory array includes a shifted weight storage, shift information storage and shift restoration circuit to restore a weigh shifted amount of shifted sum-of-products to generate multiple restored sum-of-products | |
US20230138659A1 (en) | Device and method with transformer model implementation | |
CN116843006A (zh) | 点积计算硬件装置、方法、芯片及计算设备 | |
CN117892733A (zh) | 基于联合多语义信息的文本匹配方法和系统 | |
JP2024519265A (ja) | フィードフォワード空間変換ユニットを備えたニューラルネットワーク |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |