本技术涉及人工智能技术,特别涉及一种基于解码结构的大模型的推理方法和装置。
背景技术:
1、随着人工智能技术的不断进步,大模型的应用越来越广泛。
2、不同于编码(encoder)结构的大模型,解码(decoder)结构的大模型在推理时一次只能产生一个最小输入单元(token),而且受限于参数量,推理时的批次(batch)数往往不会太大,这就导致在计算时候会有较多的算力浪费。由于大模型推理是一个存储读取瓶颈的问题,因此可以考虑在不增加存储读取任务的前提下,利用闲置的算力,达到较好的推理性能。这里的token指大模型中的最小输入和编码单元。
3、现有的基于decoder结构的大模型,为利用闲置算力而进行改进,希望能够进行多token预测,即一次推理过程后可以生成多个输出token。为实现上述改进,有的改进方案会对大模型做一定的微调训练,这种方案需要额外的训练成本,并且和原模型相比会有一定的结果差异;还有些改进方案则需要改变模型结构,一定程度上会影响模型性能;除此之外的其他改进方案则需要额外的token地图(map)存储,并且会浪费额外的算力用于生成token map,无法将所有闲置算力更大程度地应用到多token预测上。综上,目前利用闲置算力的实现方式均没有做到无额外开销的多token预测生成,从而实现提高大模型推理性能的目的。
技术实现思路
1、本技术提供一种基于解码结构的大模型的推理方法和装置,能够有效提高大模型的推理性能。
2、为实现上述目的,本技术采用如下技术方案:
3、一种基于解码结构的大模型的推理方法,包括:
4、在进行所述大模型的当前次推理前,查询输出列表中是否存在与最后一个输出相同的输出,若是,则将所述第一输出开始的多个输出组成所述当前次推理的输入序列,否则,将所述最后一个输出作为所述当前次推理的输入;
5、在进行当前次推理时,利用所述大模型对所述输入序列进行批次推理,得到对应的推理结果,组成输出序列;基于所述输入序列,验证所述输出序列中第1个推理结果之后的推理结果的有效性,将所述第1个推理结果和通过所述验证的推理结果作为所述当前次推理的输出加入所述输出列表。
6、较佳地,所述验证所述输出序列中第1个推理结果之后的推理结果的有效性,包括:
7、比较所述输出序列和所述输入序列;
8、若所述输出序列中的第1个推理结果到第x个推理结果分别与所述输入序列中第2个输出到第x+1个输出对应且相同,则确定所述输出序列中的第2个推理结果到第x+1个推理结果通过所述验证,x>0;
9、若所述输出序列中的第y个推理结果与所述输入序列中第y+1个输出不同,则确定所述输出序列中的第y个推理结果之后的所有推理结果未通过所述验证,所述y>0。
10、较佳地,当查询到多个所述第一输出时,最多选择m个所述第一输出及其后的n-1个输出,用于组成所述输入序列;
11、其中,对于每个选择的所述第一输出,将该第一输出开始的n个输出组成一个输入序列;在所述当前次推理时,针对每个输入序列,利用所述大模型对该输入序列进行批次推理,组成对应的输出序列,进行所述验证;在验证后,选择通过验证数最多的输出序列,作为所述当前次推理的输出;m和n是基于芯片算力确定出的大于1的正整数。
12、较佳地,选择m个所述第一输出的方式,包括:选择最近输出的m个所述第一输出,或者,随机选择m个所述第一输出。
13、一种基于解码结构的大模型的推理装置,包括:查询单元、推理单元和验证输出单元;
14、所述查询单元,用于在进行所述大模型的当前次推理前,查询输出列表中是否存在与最后一个输出相同的输出,若是,则将所述第一输出开始的多个输出组成所述当前次推理的输入序列,否则,将所述最后一个输出作为所述当前次推理的输入;
15、所述推理单元,用于在进行当前次推理时,利用所述大模型对所述输入序列进行批次推理,得到对应的推理结果,组成输出序列;
16、所述验证输出单元,用于基于所述输入序列,验证所述输出序列中第1个推理结果之后的推理结果的有效性,将所述第1个推理结果和通过所述验证的推理结果作为所述当前次推理的输出加入所述输出列表。
17、较佳地,在所述验证输出单元中,所述验证所述输出序列中第1个推理结果之后的推理结果的有效性,包括:
18、比较所述输出序列和所述输入序列;
19、若所述输出序列中的第1个推理结果到第x个推理结果分别与所述输入序列中第2个输出到第x+1个输出相同,则确定所述输出序列中的第2个推理结果到第x+1个推理结果通过所述验证,x>0;
20、若所述输出序列中的第y个推理结果与所述输入序列中第y+1个输出不同,则确定所述输出序列中的第y个推理结果之后的所有推理结果未通过所述验证,所述y>0。
21、较佳地,在所述查询单元中,当查询到多个所述第一输出时,最多选择m个所述第一输出及其后的n-1个输出,用于组成所述输入序列;
22、其中,对于每个选择的所述第一输出,将该第一输出及其后的n-1个输出组成一个输入序列;
23、在所述推理单元中,在所述当前次推理时,针对每个输入序列,利用所述大模型对该输入序列中的每个输出进行所述处理,组成对应的输出序列;
24、所述验证输出单元,用于针对每个输入序列,进行所述验证;在验证后,选择通过验证数最多的输出序列,用于确定所述当前次推理的输出;
25、m和n是基于芯片算力确定出的大于1的正整数。
26、较佳地,选择m个所述第一输出的方式,包括:选择最近输出的m个所述第一输出,或者,随机选择m个所述第一输出。
27、一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现上述任一项所述的基于解码结构的大模型的推理方法。
28、一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令在被处理器执行时实现如上述任一项所述的基于解码结构的大模型的推理方法。
29、由上述技术方案可见,本技术中,在进行大模型的当前次推理前,在输出列表中除去最后一个输出之外,查询输出列表中是否存在与最后一个输出相同的输出,若是,则将该第一输出开始的多个输出组成当前次推理的输入序列,用于进行大模型的当前次推理;通过上述处理,在输出列表中找到与最新输出相同的历史输出,由此推测出最新输出后可能会出现的后续输出,也就是历史输出之后的若干输出,将这些输出与最新输出(也就是查询到的与最新输出相同的历史输出)一起组成输入序列,这样就可以为当前次推理准备多个输入。那么接下来,在进行当前次推理时,就可以利用大模型对多个输入进行批次处理得到相应的推理结果;基于输入序列中的各个输出,验证相应得到的输出序列中第1个推理结果之后的推理结果的有效性,从而确定是否能够作为大模型当前次推理的真正输出,并将第1个推理结果和通过验证的推理结果作为大模型当前次推理的真正输出加入输出列表。通过上述处理方式,一方面在本次推理前在输出列表中查询到与最新输出相同的历史输出后确定本次推理的多个输入;另一方面在进行本次推理时利用多个输入得到对应的推理结果,并通过验证操作确定可以作为大模型当前次推理输出的一个或多个推理结果,这样就可能在一次推理过程中得到多个大模型输出,且整个处理过程没有模型结构变化,不需要额外的开销,闲置算力尽可能多的应用到多token的预测处理,能够有效提高大模型的推理性能。
1.一种基于解码结构的大模型的推理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求1所述的方法,其特征在于,当查询到多个所述第一输出时,最多选择m个所述第一输出及其后的n-1个输出,用于组成所述输入序列;
4.根据权利要求3所述的方法,其特征在于,选择m个所述第一输出的方式,包括:选择最近输出的m个所述第一输出,或者,随机选择m个所述第一输出。
5.一种基于解码结构的大模型的推理装置,其特征在于,包括:查询单元、推理单元和验证输出单元;
6.根据权利要求5所述的推理装置,其特征在于,在所述验证输出单元中,所述验证所述输出序列中第1个推理结果之后的推理结果的有效性,包括:
7.根据权利要求5所述的推理装置,其特征在于,在所述查询单元中,当查询到多个所述第一输出时,最多选择m个所述第一输出及其后的n-1个输出,用于组成所述输入序列;
8.根据权利要求7所述的推理装置,其特征在于,选择m个所述第一输出的方式,包括:选择最近输出的m个所述第一输出,或者,随机选择m个所述第一输出。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时可实现权利要求1~4任一项所述的基于解码结构的大模型的推理方法。
10.一种计算机程序产品,其特征在于,包括计算机可执行指令,所述计算机可执行指令在被处理器执行时实现如权利要求1~4任一项所述的基于解码结构的大模型的推理方法。