本公开涉及人工智能,特别是涉及一种序列处理方法、电子设备和介质。
背景技术:
1、大语言模型在处理输入的数据时,往往是将输入的原始数据转换成多个输入词元,再将每个输入词元编码成相应的特征表示并输入到注意力机制中进行注意力处理,以生成相应的输出的。而注意力机制本身无法捕捉到输入的输入词元的位置信息,当输入词元的位置(即各个输入词元在序列中的顺序)变化时,注意力机制的输出会保持不变,注意力机制的输出和输入的输入词元的顺序无关,这不符合自然语言的特性,也会使得大语言模型的输出准确度降低。因此,在大语言模型中,往往需要对输入词元进行位置编码。
2、现有技术中,在训练大语言模型时,处于训练效率和设备内存资源等方面的限制,训练用的样本序列的长度往往较短,大语言模型在训练过程中只学习到如何处理一定的窗口长度内的位置编码。而在推理过程中,当大语言模型实际的输入序列的长度超出训练时的窗口长度时,对于超出窗口长度的部分所使用的位置编码都是没有经过训练的,大语言模型在训练过程中没有学习如何准确地处理这些超出窗口长度的位置编码,这使得大语言模型此时生成的输出的质量会变低,大语言模型的性能会明显下降,大语言模型的外推性较差。
技术实现思路
1、本公开实施例提供了一种序列处理方法、电子设备和存储介质,它能保证大语言模型在推理过程中所使用的位置编码是经过训练的,以保证大语言模型的性能不会下降,提高大语言模型在推理过程中的外推性。
2、根据本公开的一方面,提供了一种序列处理方法,所述方法包括:
3、将大语言模型的输入数据转换成对应的输入序列,并确定所述输入序列的第一长度;
4、基于所述第一长度和所述大语言模型对应的第一预设序列长度确定第一批次数,将所述输入序列分割成有序的第一批次数个子序列,并确定各个所述子序列对应的子序列序号;
5、针对各个子序列,基于对应的所述子序列序号确定所述子序列中的各个输入词元对应的第一位置编码,其中,单个所述子序列中各个输入词元对应的第一位置编码相同;
6、针对各个输入词元,基于所述输入词元在对应的所述子序列中的位置序号进行位置编码,得到各个所述输入词元对应的第二位置编码,并基于所述输入词元对应的所述第一位置编码和所述第二位置编码确定所述输入词元对应的目标位置编码;
7、针对各个输入词元,生成所述输入词元对应的第一查询向量、第一键向量和值向量,基于所述输入词元对应的所述目标位置编码调整所述输入词元对应的所述第一查询向量和所述第一键向量,得到所述输入词元对应的第二查询向量和第二键向量;
8、基于各个所述输入词元对应的各个所述第二查询向量、各个所述第二键向量和各个所述值向量进行注意力处理,并基于注意力处理的结果得到与所述输入数据对应的输出序列。
9、可选地,所述将大语言模型的输入数据转换成对应的输入序列,并确定所述输入序列的第一长度,包括:
10、对所述输入数据进行分词处理,得到多个子词,并对各个所述子词进行词元化处理,得到各个子词对应的所述输入词元,并确定所述多个输入词元对应的第一数目,所述第一数目是对所述输入数据进行分词后得到的输入词元的个数;
11、基于所述多个输入词元确定所述输入序列,并基于所述第一数目确定所述第一长度。
12、可选地,所述基于所述第一长度和所述大语言模型对应的第一预设序列长度确定第一批次数,将所述输入序列分割成有序的第一批次数个子序列,包括:
13、确定所述第一长度和所述第一预设序列长度的第一商,并对所述第一商进行向上取整,得到所述第一批次数;
14、将所述输入序列中每第一预设序列长度个输入词元依次划分为一个子序列,直至所述将所述输入序列的各个输入词元均划分至一个子序列,得到第一批次数个所述子序列。
15、可选地,所述将所述输入序列中每第一预设序列长度个输入词元依次划分为一个子序列,包括:
16、确定各个所述输入词元在所述输入序列中的原始位置序号;
17、针对各个所述输入词元,确定对应的所述原始位置序号和所述第一预设序列长度之间的第二商,并对所述第二商进行向下取整,得到所述输入词元对应的第一序号;
18、将对应于同一所述第一序号的多个所述输入词元划分为一个子序列,并将所述子序列中的所述输入词元对应的第一序号作为所述子序列的子序列序号。
19、可选地,所述基于所述输入词元在对应的所述子序列中的位置进行位置编码,得到各个所述输入词元对应的第二位置编码,包括:
20、基于所述输入词元在所述输入序列的位置确定所述输入词元对应的原始位置序号;
21、基于所述输入词元对应的所述原始位置序号对所述第一预设序列长度进行取模,得到第一余数;
22、对所述第一余数进行旋转位置编码,得到所述输入词元对应的第二位置编码。
23、可选地,所述基于各个所述输入词元对应的所述第二查询向量、所述第二键向量和所述值向量进行注意力处理,包括:
24、针对单个所述第二查询向量,将所述第二查询向量和各个所述第二键向量进行矩阵乘,得到第一输入词元和各个第二输入词元之间的注意力分数,其中,所述第一输入词元是所述第二查询向量对应的输入词元,所述第二输入词元是所述第二键向量对应的输入词元,各个所述注意力分数构成注意力分数矩阵;
25、基于所述第一输入词元对应的子序列的所述子序列序号和所述第二输入词元对应的子序列的所述子序列序号的差,确定注意力缩放因子,并基于所述注意力缩放因子对所述第一输入词元和所述第二输入词元之间的注意力分数进行缩放,得到所述第二输入词元对应的缩放后注意力分数,各个所述缩放后注意力分数构成缩放后注意力分数矩阵;
26、对所述缩放后注意力分数矩阵进行指数归一化处理,得到注意力权重矩阵,并将所述注意力权重矩阵和值矩阵进行矩阵乘,得到注意力处理的结果,其中,所述值矩阵由各个所述值向量拼接构成。
27、可选地,所述大语言模型通过以下方式训练:
28、获取用于训练所述大语言模型的样本序列,其中,所述样本序列包括多个样本词元,所述样本序列的序列长度不大于所述第一预设序列长度;
29、将所述样本序列分成多个样本子序列,确定各个所述样本词元对应的样本子序列序号,并基于所述样本子序列序号生成各个所述样本词元对应的样本第一位置编码;
30、基于所述样本词元在对应的样本子序列中的位置对各个所述样本词元进行旋转位置编码,得到各个所述样本词元对应的样本第二位置编码,并将各个所述样本词元对应的所述样本第二位置编码分别与所述样本第一位置编码叠加,得到各个所述样本词元对应的样本目标位置编码;
31、基于各个所述样本词元生成对应的样本第一查询向量、样本第一键向量和样本值向量;
32、针对各个所述样本词元,基于对应的所述样本目标位置编码调整对应的所述样本第一查询向量和样本第一键向量,得到所述样本词元对应的样本第二查询向量和样本第二键向量;
33、基于多个所述样本词元对应的所述样本第二查询向量、所述样本第二键向量和所述样本值向量进行注意力处理,并基于注意力处理的结果生成与所述样本序列对应的样本输出序列,基于所述样本输出序列进行反向传播以优化所述大语言模型的参数,直至满足第一条件,得到训练后的所述大语言模型。
34、可选地,所述确定各个所述样本词元对应的样本子序列序号,包括:
35、基于所述第一预设序列长度和预设外推长度确定第二数目,并基于所述第二数目确定第三数目,其中,所述第三数目是不大于所述第二数目的正整数;
36、确定所述第一预设序列长度和所述第三数目之间的第三商,并对所述第三商进行向上取整,得到第四数目,将所述样本序列中每第四数目个所述样本词元划分为一个样本子序列,得到有序的第三数目样本子序列,并确定各个所述样本子序列对应的序号,作为所述样本子序列中的样本词元对应的所述样本子序列序号。
37、可选地,所述基于所述样本词元在对应的样本子序列中的位置对各个所述样本词元进行旋转位置编码,得到各个所述样本词元对应的样本第二位置编码,包括:
38、确定各个所述样本词元在所述样本序列中的样本原始位置序号;
39、针对各个所述样本词元,基于对应的所述样本原始位置序号对所述第四数目进行取模,得到第二余数,并基于所述第二余数进行旋转位置编码,得到所述样本词元对应的样本第二位置编码。
40、可选地,所述基于多个所述样本词元对应的所述样本第二查询向量、所述样本第二键向量和所述样本值向量进行注意力处理,包括:
41、针对单个样本第二查询向量,将所述单个样本第二查询向量与各个所述样本第二键向量进行矩阵乘,得到第一样本词元与各个第二样本词元之间的样本注意力分数,所述第一样本词元是所述单个样本第二查询向量对应的样本词元,所述第二样本词元是所述样本第二键向量对应的样本词元;
42、基于所述第一样本词元对应的样本子序列序号与所述第二样本词元对应的样本子序列序号的差,确定所述第一样本词元和所述第二样本词元之间的样本注意力缩放因子,并基于所述样本注意力缩放因子将对应的所述样本注意力分数缩放,得到对应的缩放后样本注意力分数,各个所述缩放后样本注意力分数构成缩放后样本注意力分数矩阵;
43、对所述缩放后样本注意力分数矩阵进行指数归一化处理,得到样本注意力权重矩阵,并将所述样本注意力权重矩阵和样本值矩阵进行矩阵乘运算,得到注意力处理的结果,其中所述样本值矩阵由各个所述样本词元对应的样本值向量拼接构成。
44、根据本公开的一方面,提出一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器运行时实现如上所述的序列处理方法。
45、根据本公开的一方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器运行,以实现如上所述的序列处理方法。
46、本公开提出一种序列处理方法、电子设备和介质,方法通过在将大语言模型的输入数据转换成相应的输入序列之后,基于输入序列的第一长度和第一预设序列长度将输入序列切分成多个子序列并确定每个子序列对应的子序列序号,第一预设序列长度表征了在训练过程中,输入到大语言模型的样本序列的长度,即第一预设序列长度内的位置编码都是经过训练的。之后,基于各个输入词元所属的子序列的子序列序号确定输入词元对应的第一位置编码,并根据输入词元在对应的子序列中所处的位置确定输入词元对应的第二位置编码,此时,由于每个子序列的长度不大于第一预设序列长度,每个输入词元对应的第二位置编码都是经过训练的。同时,通过基于输入词元所在的子序列对应的子序列序号确定输入词元对应的第一位置编码,并基于输入词元相应的第一位置编码和第二位置编码确定输入词元对应的目标位置编码,这样在训练大语言模型的过程中,只需要同时训练第一预设序列长度内的第二位置编码以及基于子序列序号生成的第一位置编码,即可保证每个输入词元对应的目标位置编码都是经过训练的。如此,在推理的过程中,即使大语言模型的输入序列的长度超出第一预设序列长度,也能保证每个输出词元所使用的位置编码都是经过训练的。之后,基于输入词元对应的目标位置编码调整输入词元对应的第一查询向量和第一键向量,得到相应的第二查询向量和第二键向量,将训练过的目标位置编码对应的位置信息注入到注意力处理的过程,并各个输入词元对应的基于第二查询向量、第二键向量和值向量进行注意力处理,得到与输入序列对应的输出序列,使大语言模型在处理长度超出大语言模型在训练过程中所学习的窗口长度时,所使用的位置编码也是经过训练的,以保证大语言模型的性能不会下降,提高大语言模型在推理过程中的外推性。
47、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
1.一种序列处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的序列处理方法,其特征在于,所述将大语言模型的输入数据转换成对应的输入序列,并确定所述输入序列的第一长度,包括:
3.根据权利要求1所述的序列处理方法,其特征在于,所述基于所述第一长度和所述大语言模型对应的第一预设序列长度确定第一批次数,将所述输入序列分割成有序的第一批次数个子序列,包括:
4.根据权利要求3所述的序列处理方法,其特征在于,所述将所述输入序列中每第一预设序列长度个输入词元依次划分为一个子序列,包括:
5.根据权利要求1所述的序列处理方法,其特征在于,所述基于所述输入词元在对应的所述子序列中的位置进行位置编码,得到各个所述输入词元对应的第二位置编码,包括:
6.根据权利要求1所述的序列处理方法,其特征在于,所述基于各个所述输入词元对应的所述第二查询向量、所述第二键向量和所述值向量进行注意力处理,包括:
7.根据权利要求1所述的序列处理方法,其特征在于,所述大语言模型通过以下方式训练:
8.根据权利要求7所述的序列处理方法,其特征在于,所述确定各个所述样本词元对应的样本子序列序号,包括:
9.根据权利要求8所述的序列处理方法,其特征在于,所述基于所述样本词元在对应的样本子序列中的位置对各个所述样本词元进行旋转位置编码,得到各个所述样本词元对应的样本第二位置编码,包括:
10.根据权利要求8所述的序列处理方法,其特征在于,所述基于多个所述样本词元对应的所述样本第二查询向量、所述样本第二键向量和所述样本值向量进行注意力处理,包括:
11.一种电子设备,其特征在于,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器运行时实现如权利要求1至10中任一项所述的序列处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器运行,以实现如权利要求1至10中任一项所述的序列处理方法。