System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 利用大模型进行推理的方法和电子设备技术_技高网

利用大模型进行推理的方法和电子设备技术

技术编号:40910685 阅读:2 留言:0更新日期:2024-04-18 14:39
本申请提供一种利用大模型进行推理的方法和电子设备,该方法包括:将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到大模型的模型文件,每个权重矩阵对应的重排规则是根据该权重矩阵的运算处理器确定的;当利用目标大模型进行推理时,执行以下步骤:从模型文件中依次读取出目标大模型的每个权重矩阵的重排数据,并利用读取出的重排数据构造该权重矩阵;利用构造好的权重矩阵进行推理运算。该方案使得权重矩阵在重排后更加契合处理器获取权重矩阵和进行运算的规则,从而在推理阶段能够更快速地得到用于计算的权重矩阵,从而缩短推理时长。

【技术实现步骤摘要】

本申请涉及大模型应用,尤其涉及一种利用大模型进行推理的方法和电子设备


技术介绍

1、对于一个模型而言,在用该模型进行推理的时候会将待处理数据输入到模型中,与模型中的权重进行运算之后输出该待处理数据的推理结果。以一个人物识别模型为例,可以将一张图像输入到该人物识别模型,经过该人物识别模型对该输入图像进行处理之后,能够识别出该图像中的人。该识别过程就称之为推理过程,在模型推理的时候会进行权重矩阵与输入数据的运算。随着技术的发展,模型的规模和复杂度越来越高,大模型诞生,大模型具有更加精细和丰富的推理能力,但相对的,大模型的权重矩阵更加复杂,推理过程中的运算量也随之剧增,这就导致大模型的运算过程的时延过长。

2、因此如何提高大模型的计算效率,缩短大模型的推理时长是亟待解决的技术问题。


技术实现思路

1、本申请提供一种利用大模型进行推理的方法和电子设备,能够提高大模型的计算效率,缩短大模型的推理时长。

2、第一方面,提供了一种利用大模型进行推理的方法,该方法包括:将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到大模型的模型文件,每个权重矩阵对应的重排规则是根据该权重矩阵的运算处理器确定的;当利用目标大模型进行推理时,执行以下步骤:从模型文件中依次读取出目标大模型的每个权重矩阵的重排数据,并利用读取出的重排数据构造该权重矩阵;利用构造好的权重矩阵进行推理运算。

3、在本申请技术方案中,主要通过将大模型的权重矩阵按照其运算处理器(会利用该权重矩阵进行运算的处理器)所确定的重排规则进行重排之后存储,使得权重矩阵在重排后更加契合运算处理器的解析权重矩阵的规则和运算特性,从而在利用权重矩阵的重排数据进行运算的时候,能够更快速地得到计算时所需的权重矩阵,然后进行运算,也就是在推理阶段缩短了得到用于计算的权重矩阵的时长(可以理解为计算之前的准备工作的时长),从而缩短推理时长。还应理解,大模型的权重矩阵复杂,每个权重矩阵的数据量相对较大(矩阵维度较大),而且会涉及多种处理器都会参与运算的情况,而不同的处理器如何执行矩阵运算是有所差异的,所以为每个权重矩阵按照矩阵本身的特性和其运算处理器的运算特性设置重排规则进行重排,能够使得在推理过程中更快速地得到用于计算的权重矩阵,降低整体的推理时延。

4、应理解,对于普通的小模型,例如卷积神经网络模型、循环神经网络模型或其他普通神经网络模型或非神经网络模型而言,每个权重矩阵的数据量并不大(矩阵维度较小),数据格式大多为浮点型等其他数据类型,可以在线进行浮点型权重的重排(也就是推理阶段,每次读取之后先重排再计算)。这与本申请的大模型的4比特权重的重排所需方式并不相同,本申请的大模型的4比特权重,在计算之前还需要做更多的准备工作,导致了时延过长,所以才针对该问题,通过本申请所提供的方案,通过离线重排的方式(推理之前就先重排好并存储,在推理阶段就不需要再重排了),来缩短时延。所以上述这类可以在线重排即可的普通小模型不在本申请方案的考虑范围。简而言之,对于普通小模型,不存在因为读取和还原权重矩阵导致的时延过长的问题,所以没有利用本申请方案进行优化以缩短其时延的需求。

5、可以理解为,大模型的权重矩阵具有数据量大的特点,在端侧部署时需要进行4bit量化,直接存储权重进行推理或者在初始化时进行权重重排都会极大增加时延,也就是说,在推理阶段的计算之前读取数据和利用读取数据构造权重矩阵的时长过长,导致整个推理时长变长。针对该问题,本申请提供了一种新的推理方法,通过先将权重矩阵以更加契合处理器的解析权重矩阵的规则和运算特性的方式重新排布和存储(离线重排和存储),使得一旦推理运算被触发,推理框架能更快速地得到计算所需的权重矩阵,缩短了解析数据(对读取出的数据进行预处理来得到计算所需的权重)的时长,提高了运算效率,进而缩短了整个推理运算过程的时长。相当于通过前期准备(重排之后存储),使得在需要用到权重矩阵的时候,在更短的时间准备好用于计算的权重矩阵。

6、结合第一方面,在第一方面的某些实现方式中,当目标大模型的运算处理器包括中央处理单元(cpu)时,将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到大模型的模型文件,包括:按照cpu解析权重矩阵的规则和运算特性,确定第一权重矩阵的切分规则,切分规则包括切分单位和切分次序,切分单位用于指示切分出的子矩阵的大小,第一权重矩阵为目标大模型的多个权重矩阵中运算处理器为cpu的权重矩阵;按照切分次序并根据切分单位,将第一权重矩阵切分为多个第一子矩阵,每个第一子矩阵对应一个切分单位;按照预设排布策略将每个第一子矩阵中的数据进行重新排布,得到第二子矩阵;将每个第二子矩阵写入模型文件,写入到模型文件的第一权重矩阵对应的所有第二子矩阵的数据构成第一权重矩阵对应的重排数据。对于cpu负责处理的权重矩阵,除了会切分矩阵之外,还会按照预设的排布策略将每个切分出的矩阵中的数据进行重新排布,使得重新排布之后的矩阵在推理阶段更容易解析出权重矩阵。切分规则和预设排布策略都是为了使得重排数据后续在推理的时候能更快速地解析出权重矩阵。

7、结合第一方面,在第一方面的某些实现方式中,在按照cpu解析权重矩阵的规则和运算特性,确定第一权重矩阵的切分规则时,可以包括:按照cpu的读取指令的一次读取的最大数据量、将重排数据解析成计算所需的权重矩阵时所耗费的指令数和矩阵外积计算时的分块大小,确定切分规则。cpu是有特定的解析权重矩阵的规则和运算规则的,所以为了方便存储和后续的快速读取和还原矩阵,会综合cpu的这些规则来确定出将权重矩阵切分成多大更合适以及确定出按照什么样的次序切分更合适。

8、结合第一方面,在第一方面的某些实现方式中,切分次序为交替地先沿行方向切分后沿列方向切分的切分次序。该切分次序也是根据cpu存储和读取数据的规则确定的,以契合cpu的存储和读取需求。交替地先沿行方向切分后沿列方向切分,包括:先沿行方向,按照切分单位依次取值得到小矩阵(第一子矩阵),等一行全都取值完毕后,沿列方向按照切分单元下移一行,再次重复沿行方向按照切分单位依次取值得到第一子矩阵直到这一行都取值完毕的步骤,之后再次重复沿列方向按照切分单元下移一行的步骤,以此类推,直到将整个权重矩阵取值完毕。

9、结合第一方面,在第一方面的某些实现方式中,第一权重矩阵的行数是n1的倍数,切分单位为n1行n2列,n1和n2均为正整数;n1和n2是根据cpu解析权重矩阵的规则和运算特性以及目标大模型的每个权重参数的数据大小确定的;预设排布策略为将第一子矩阵中的每一行的数据按照预设间隔交替排布。在这种实现方式中,除了按照上述的cpu解析权重矩阵的规则和运算特性来确定切分单位之外,还考虑了目标大模型的每个权重参数的数据大小,使得切分单位更加合理,预设排布策略则是根据cpu的运算规则和切分单位的大小来确定出的,按照将第一子矩阵中的每行数据按照预设间隔本文档来自技高网...

【技术保护点】

1.一种利用大模型进行推理的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,当所述目标大模型的运算处理器包括中央处理单元CPU时,所述将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到所述大模型的模型文件,包括:

3.根据权利要求2所述的方法,其特征在于,所述按照CPU解析权重矩阵的规则和运算特性,确定所述第一权重矩阵的切分规则,包括:

4.根据权利要求2所述的方法,其特征在于,所述切分次序为交替地先沿行方向切分后沿列方向切分的切分次序。

5.根据权利要求2所述的方法,其特征在于,所述第一权重矩阵的行数是n1的倍数,所述切分单位为n1行n2列,n1和n2均为正整数;n1和n2是根据CPU解析权重矩阵的规则和运算特性以及所述目标大模型的每个权重参数的数据大小确定的;所述预设排布策略为将所述第一子矩阵中的每一行的数据按照预设间隔交替排布。

6.根据权利要求1所述的方法,其特征在于,当所述目标大模型的运算处理器包括图形处理器GPU时,所述将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到所述大模型的模型文件,包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求6所述的方法,其特征在于,所述取值次序为:沿列方向对所述第二权重矩阵中所述取值单位对应的第i列取值,直到所述第i列取值完毕后,沿行方向按照所述取值单位平移一列,到所述第二权重矩阵中所述取值单位对应的第i+1列;沿列方向对所述第i+1列取值,直到所述第i+1列取值完毕后,沿行方向按照所述取值单位平移一列;以此类推,直到将所述第二权重矩阵的所有数据都取值完毕,i为正整数。

9.根据权利要求6所述的方法,其特征在于,每个备选取值规则的取值单位的数据量相同;所述多个备选取值规则中至少有两个备选取值规则的取值单位的大小不同。

10.根据权利要求6所述的方法,其特征在于,所述根据第二权重矩阵的结构,从所述多个备选重排规则中确定出所述第二权重矩阵对应的目标重排规则,包括:

11.根据权利要求1至10 中任一项所述的方法,其特征在于,所述目标大模型的每个权重参数的数据大小为4比特。

12.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器,以及存储器;

13.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如权利要求1至11中任一项所述的方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至11中任一项所述的方法。

...

【技术特征摘要】

1.一种利用大模型进行推理的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,当所述目标大模型的运算处理器包括中央处理单元cpu时,所述将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到所述大模型的模型文件,包括:

3.根据权利要求2所述的方法,其特征在于,所述按照cpu解析权重矩阵的规则和运算特性,确定所述第一权重矩阵的切分规则,包括:

4.根据权利要求2所述的方法,其特征在于,所述切分次序为交替地先沿行方向切分后沿列方向切分的切分次序。

5.根据权利要求2所述的方法,其特征在于,所述第一权重矩阵的行数是n1的倍数,所述切分单位为n1行n2列,n1和n2均为正整数;n1和n2是根据cpu解析权重矩阵的规则和运算特性以及所述目标大模型的每个权重参数的数据大小确定的;所述预设排布策略为将所述第一子矩阵中的每一行的数据按照预设间隔交替排布。

6.根据权利要求1所述的方法,其特征在于,当所述目标大模型的运算处理器包括图形处理器gpu时,所述将目标大模型的多个权重矩阵按照每个权重矩阵对应的重排规则进行重排,并将每个权重矩阵的重排数据存储到所述大模型的模型文件,包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求6所述的方法,其特征在于,所述取值次序为:沿...

【专利技术属性】
技术研发人员:伍国林王哲
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

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

1