本发明涉及人工智能,尤其涉及一种模型推理方法及装置。
背景技术:
1、近年来,随着深度学习的快速发展,transformer模型(一种基于自注意力机制的神经网络架构,)在自然语言处理和其他领域中取得了显著的成就,该模型主要由注意力机制(attention)和前馈神经网络(feed-forward network,ffn)组成。然而,随着模型规模的增大,推理效率成为一个关键问题。
2、在传统的transformer模型中,每次推理时都需要将对应的键向量(key向量,也即k向量)和值向量(value向量,也即v向量)存储到键值缓存(kv cache)中,但随着推理长度的增加,kv cache中保存的键值信息(kv信息)也会越来越多,从而导致推理速度变慢。
3、目前,多对kv cache中的kv信息在隐空间(hidden)维度或序列(seq)维度上进行压缩,以减少kv cache中存储的kv信息量,但该方法通常会丢失部分信息,进而影响模型推理效果。
技术实现思路
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、本发明提供的模型推理方法及装置,通过对至少一个第一注意力头对应的k向量进行位置编码,进而至少一个第一注意力头进行注意力计算时考虑了位置信息,避免位置信息丢失影响推理效果。对于其余注意力头,只对q向量进行位置编码,而不对k向量和v向量进行位置编码,进而在确定当前输入对应token的kv信息为冗余信息的情况下,可以对其余注意力头的kv信息进行压缩,以减少其余注意力头对应kvcache中存储的kv信息量。由于其余注意力头对应kvcache中没有保存位置信息,进而在对其余注意力头的kv信息进行压缩时没有丢弃kvcache中的重要信息,只是将高度冗余的信息进行压缩,接近无损压缩。
1.一种模型推理方法,其特征在于,包括:
2.根据权利要求1所述的模型推理方法,其特征在于,所述若确定所述当前输入对应分词与历史分词相同,则对所述第二注意力计算结果对应注意力头的相应键值信息进行压缩,包括:
3.根据权利要求1所述的模型推理方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的模型推理方法,其特征在于,所述对所述第二注意力计算结果对应注意力头的相应键值信息进行压缩,之后还包括:
5.根据权利要求1所述的模型推理方法,其特征在于,所述基于所述第一注意力头的位置编码后的查询向量、位置编码后的键向量以及值向量,确定所述第一注意力头的第一注意力计算结果,包括:
6.根据权利要求1所述的模型推理方法,其特征在于,所述推理模型为文本生成模型,所述当前输入基于输入文本确定。
7.一种模型推理装置,其特征在于,包括:
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述模型推理方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述模型推理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述模型推理方法。