System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及人工智能,特别是涉及模型无损压缩方法、模型解压缩方法及装置。
技术介绍
1、近年来,随着计算机技术和大数据的快速发展,基于深度学习的大模型在各个领域取得了显著的成果。大模型是指具有数千万甚至数亿参数的深度学习模型,它利用大量的数据和计算资源来训练具有大量参数的神经网络模型,通过不断地调整模型参数,使得模型能够在各种任务中取得最佳表现。大模型的“大”的特点体现在:参数数量庞大、训练数据量大、计算资源需求高等。模型参数越来越多,也使得其泛化性能和准确性越来越好。而另一方面,“大”的特点也给技术实现和应用带来了一些的问题,如在模型训练和推理过程中会占用大量计算和存储资源,而使其难以在资源有限的硬件上进行部署,其性能优化也受到很大挑战。
2、为在保证模型性能的同时,解决模型参数过多导致的存储和计算问题,模型压缩技术作为一种常用的重要方法,能够减少深度学习模型大小、提高运行效率和降低部署成本。模型压缩技术主要有:剪裁、量化、知识蒸馏、低秩分解、参数共享、神经网络架构搜索等。这些方法虽然在一定程度上改变了现有模型的复杂度或结构,但是在模型压缩的过程中同样会造成不同程度的模型精度损失。
技术实现思路
1、本申请提供了一种模型无损压缩方法,可以实现模型参数的无损压缩。
2、本申请提供了如下方案:
3、根据第一方面,提供了一种模型无损压缩方法,所述方法包括:获取模型所包含一个以上网络层分别对应的参数矩阵;确定所述一个以上网络层分别对应的参数矩阵的数据分布
4、根据本申请实施例中一可实现的方式,所述数据分布包括所述参数矩阵中的唯一数值量,利用所述唯一数值量确定所述编码位数;或,所述数据分布包括所述参数矩阵中的参数出现概率,所述编码位数与所述参数出现概率呈负相关。
5、根据本申请实施例中一可实现的方式,所述利用所述唯一数值量确定所述编码位数包括:确定多个分块尺寸;分别确定采用各分块尺寸对所述参数矩阵进行分块所得到各分块中的唯一数值量以及所需要的所述编码位数;利用所述各分块尺寸对应的所述各分块中的唯一数值量以及所需要的编码位数,从所述多个分块尺寸中选择分块尺寸并确定其所需要的所述编码位数。
6、根据本申请实施例中一可实现的方式,按照所述编码位数,对所述一个以上网络层分别对应的参数矩阵分别进行编码,得到各网络层对应的参数矩阵的编码结果包括:利用选择的分块尺寸对所述一个以上网络层分别对应的参数矩阵分别进行分块,得到多个矩阵块;利用确定的编码位数分别对各矩阵块进行编码,得到各矩阵块对应的编码结果以及各矩阵块对应的编码表以作为所述压缩后的模型数据。
7、根据本申请实施例中一可实现的方式,所述编码结果包含指示矩阵块所对应网络层的标识信息;或者,将所述编码结果按照对应网络层在存储空间中存储。
8、根据本申请实施例中一可实现的方式,所述编码结果和所述编码表存储在全局内存中。
9、根据第二方面,提供了一种模型解压缩方法,所述方法包括:获取压缩后的模型数据,所述压缩后的模型数据包括模型所包含各网络层对应的参数矩阵的编码结果以及编码表,所述编码表包括所述参数矩阵与所述编码结果之间的映射关系;利用所述编码表,对所述各网络层对应的参数矩阵的编码结果分别进行解码,得到各网络层对应的参数矩阵以供推理执行单元读取。
10、根据本申请实施例中一可实现的方式,所述各网络层对应的参数矩阵的编码结果以及编码表包括:各矩阵块的编码结果及对应的编码表,所述矩阵块是对各网络层对应的参数矩阵进行分块得到的;利用所述编码表,对所述各网络层对应的参数矩阵的编码结果分别进行解码,得到各网络层对应的参数矩阵包括:利用各矩阵块对应的编码表,分别对各矩阵块的编码结果进行解码,得到各矩阵块的数据;依据各矩阵块所对应的网络层,得到各网络层对应的参数矩阵的数据。
11、根据本申请实施例中一可实现的方式,所述各矩阵块所对应的网络层是依据各编码结果所包含标识信息或编码结果在存储空间的存储位置确定的。
12、根据本申请实施例中一可实现的方式,所述获取压缩后的模型数据包括:从全局内存中获取模型所包含各网络层对应的参数矩阵的编码结果并加载至第一寄存器;从全局内存中获取所述编码表并加载至高速缓存;利用所述编码表,对所述各网络层对应的参数矩阵的编码结果分别进行解码包括:查询高速缓存中的所述编码表,利用所述编码表对所述各网络层对应的参数矩阵的编码结果分别进行解码,并将解码结果存储于第二寄存器,所述第二寄存器供所述推理执行单元读取。
13、根据第三方面,提供了一种模型无损压缩装置,所述装置包括:参数获取单元,获取模型所包含一个以上网络层分别对应的参数矩阵;数据分析单元,确定所述一个以上网络层分别对应的参数矩阵的数据分布;编码位数确定单元,利用所述数据分布确定编码位数,所述编码位数小于所述参数矩阵中参数所采用的原始位数;编码单元,按照所述编码位数,对所述一个以上网络层分别对应的参数矩阵分别进行编码,得到各网络层对应的参数矩阵的编码结果;数据存储单元,存储压缩后的模型数据,所述压缩后的模型数据包括各网络层对应的参数矩阵的编码结果以及编码表,所述编码表包括所述参数矩阵与所述编码结果之间的映射关系。
14、根据第四方面,提供了一种模型解压缩装置,所述装置包括:数据获取单元,获取压缩后的模型数据,所述压缩后的模型数据包括模型所包含各网络层对应的参数矩阵的编码结果以及编码表,所述编码表包括所述参数矩阵与所述编码结果之间的映射关系;解码单元,利用所述编码表,对所述各网络层对应的参数矩阵的编码结果分别进行解码,得到各网络层对应的参数矩阵以供推理执行单元读取。
15、根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面和第二方面中任一项所述的方法的步骤。
16、根据第六方面,提供了一种电子设备,包括:
17、一个或多个处理器;以及
18、与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面和第二方面中任一项所述的方法的步骤。
19、根据本申请提供的具体实施例,本申请公开了以下技术效果:
20、1)本申请利用参数矩阵的数据分布确定编码位数,该编码位数小于参数矩阵中参数所采用的原始位数,利用该编码位数对参数矩阵进行编码,得到参数矩阵的编码结果以及编码表。本申请在不损失模型精度的前提下,对模型参数进行了压缩编码,节约了参数矩阵的存储空间本文档来自技高网...
【技术保护点】
1.一种模型无损压缩方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据分布包括所述参数矩阵中的唯一数值量,利用所述唯一数值量确定所述编码位数;
3.根据权利要求2所述的方法,其特征在于,所述利用所述唯一数值量确定所述编码位数包括:
4.根据权利要求3所述的方法,其特征在于,按照所述编码位数,对所述一个以上网络层分别对应的参数矩阵分别进行编码,得到各网络层对应的参数矩阵的编码结果包括:
5.根据权利要求4所述的方法,其特征在于,所述编码结果包含指示矩阵块所对应网络层的标识信息;或者,
6.根据权利要求1至5中任一项所述的方法,所述方法还包括:所述编码结果和所述编码表存储在全局内存中。
7.一种模型解压缩方法,其特征在于,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,所述各网络层对应的参数矩阵的编码结果以及编码表包括:各矩阵块的编码结果及对应的编码表,所述矩阵块是对各网络层对应的参数矩阵进行分块得到的;
9.根据权利要求8所述的方法,其特征在于
10.根据权利要求7至9中任一项所述的方法,所述获取压缩后的模型数据包括:从全局内存中获取模型所包含各网络层对应的参数矩阵的编码结果并加载至第一寄存器;从全局内存中获取所述编码表并加载至高速缓存;
11.一种模型无损压缩装置,其特征在于,所述装置包括:
12.一种模型解压缩装置,其特征在于,所述装置包括:
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
14.一种电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种模型无损压缩方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据分布包括所述参数矩阵中的唯一数值量,利用所述唯一数值量确定所述编码位数;
3.根据权利要求2所述的方法,其特征在于,所述利用所述唯一数值量确定所述编码位数包括:
4.根据权利要求3所述的方法,其特征在于,按照所述编码位数,对所述一个以上网络层分别对应的参数矩阵分别进行编码,得到各网络层对应的参数矩阵的编码结果包括:
5.根据权利要求4所述的方法,其特征在于,所述编码结果包含指示矩阵块所对应网络层的标识信息;或者,
6.根据权利要求1至5中任一项所述的方法,所述方法还包括:所述编码结果和所述编码表存储在全局内存中。
7.一种模型解压缩方法,其特征在于,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,所述各网络层对...
【专利技术属性】
技术研发人员:陈龙,韩杰茜,
申请(专利权)人:中科加禾北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。