本技术涉及人工智能,尤其涉及一种神经网络模型的压缩方法、装置和存储介质。
背景技术:
1、随着人工智能(artificial intelligence,ai)的不断发展,诸如深度神经网络(deep neural network,dnn)等由于其强大的特征表达能力,已经在图像、视频、语音等多个领域展现出超强的计算能力。由于神经网络模型本身的参数量很大,对存储器的存储能力要求很高,这将会给神经网络模型的部署带来很大的挑战。
2、向量量化(vector quantization,vq)是一种非常有效的压缩神经网络模型的方法,可以实现对神经网络模型的原始参数的压缩,以减少模型的存储量。然而,当前的方法中在进行向量量化后参数的精度损失较大,且神经网络模型的准确度也有待提高,因此,如何在保证神经网络模型准确度的同时,降低存储器对神经网络模型参数的存储压力,是亟待解决的问题。
技术实现思路
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、根据第一方面或第一方面的第一种或第二种或第三种或第四种可能的实现方式,在所述神经网络模型的压缩方法的第五种可能的实现方式中,该第二向量集合的维数为m,m为正整数,该第一向量集合的维数为d,d为1-m之间的任意正整数。
28、根据本技术实施例,通过使得d为小于m的值,可以实现对向量的降维处理,可以使得后续聚类过程更易于实现,且在同样压缩比例的情况下,量化的精度更高,通过预定合适的d的值还可以平衡降维带来的近似误差以及后续聚类时的误差。
29、根据第一方面或第一方面的第一种或第二种或第三种或第四种或第五种可能的实现方式,在所述神经网络模型的压缩方法的第六种可能的实现方式中,该推理任务针对于以下中的任一项:图像数据、音频数据、文本数据。
30、根据本技术实施例,通过推理任务可适用于多种类型的数据,可实现本技术实施例的压缩方法的多场景的应用。
31、第二方面,本技术的实施例提供了一种神经网络模型的压缩装置。该装置包括:
32、第一获取模块,用于响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息,第一向量集合包括压缩后的神经网络模型的参数,变换信息包括向量集合之间的映射关系信息;
33、第一确定模块,用于根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合,第二向量集合包括重排列的神经网络模型的参数,解压缩后的第二向量集合中各向量的维数大于第一向量集合中对应向量的维数;
34、第二确定模块,用于根据解压缩后的第二向量集合,确定解压缩后的神经网络模型;
35、删除模块,用于从存储器中删除第二向量集合。
36、根据第二方面,在所述神经网络模型的压缩装置的第一种可能的实现方式中,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,该第一确定模块,用于:
37、根据训练好的第一向量集合和训练好的第一变换信息,确定第三向量集合,第三向量集合中各向量的维数大于训练好的第一向量集合中对应向量的维数;
38、根据第三向量集合和训练好的第二变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合包括的参数量大于第三向量集合。
39、根据第二方面,在所述神经网络模型的压缩装置的第二种可能的实现方式中,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,该第一确定模块,用于:
40、根据训练好的第一向量集合和训练好的第二变换信息,确定解压缩后的第四向量集合,解压缩后的第四向量集合包括的参数量大于训练好的第一向量集合;
41、根据解压缩后的第四向量集合和训练好的第一变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合中各向量的维数大于解压缩后的第四向量集合中对应向量的维数。
42、根据第二方面的第一种或第二种可能的实现方式,在所述神经网络模型的压缩装置的第三种可能的实现方式中,该装置还包括:
43、第二获取模块,用于获取训练数据、原始神经网络模型参数信息和目标推理任务信息;
44、第三确定模块,用于根据原始神经网络模型参数信息和目标推理任务信息,确定第一变换信息和第四向量集合;
45、第四确定模块,用于以根据第一变换信息和第四向量集合确定的向量集合作为神经网络模型的参数,利用训练数据对神经网络模型进行训练,确定训练好的第一变换信息和训练好的第四向量集合;
46、第五确定模块,用于根据训练好的第四向量集合,确定第一向量集合和第二变换信息;
47、第六确定模块,用于以根据第一向量集合和第二变换信息确定的向量集合作为新的训练好的第四向量集合,根据训练好的第一变换信息和新的训练好的第四向量集合确定解压缩后的第二向量集合;
48、第七确定模块,用于以解压缩后的第二向量集合作为神经网络模型的参数,确定第二变换信息为训练好的第二变换信息,利用训练数据对神经网络模型进行训练,得到训练好的第一向量集合。
49、根据第二方面的第三种可能的实现方式,在所述神经网络模型的压缩装置的第四种可能的实现方式中,该第五确定模块,用于:
50、对训练好的第四向量集合进行聚类,确定第一向量集合和第二变换信息,第一向量集合包括各聚类中心的对应的向量。
51、根据第二方面或第二方面的第一种或第二种或第三种或第四种可能的实现方式,在所述神经网络模型的压缩装置的第五种可能的实现方式中,该第二向量集合的维数为m,m为正整数,该第一向量集合的维数为d,d为1-m之间的任意正整数。
52、根据第二方面或第二方面的第一种或第二种或第三种或第四种或第五种可能的实现方式,在所述神经网络模型的压缩装置的第六种可能的实现方式中,该推理任务针对于以下中的任一项:图像数据、音频数据、文本数据。
53、第三方面,本技术的实施例提供了一种神经网络模型的压缩装置,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
54、第四方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
55、第五方面,本技术的实施例提供了一种终端设备,该终端设备可以执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
56、第六方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
57、本技术的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。