本公开实施例涉及数据压缩,特别涉及一种数据压缩方法及装置、电子设备、计算机可读存储介质。
背景技术:
1、大语言模型在推理场景中,产生每个token(令牌)的计算量远小于权重参数的传输量,因此压缩大语言模型的总存储量或带宽传输量可大幅提高推理速度。
2、对权重等数据进行无损压缩,可以减少存储和通信量。霍夫曼等熵编码技术根据数据的统计特性确定编码单元的编码长度,实现不定长编码,可以逼近香农信息极限。
3、然而,霍夫曼解码是串行的,需要逐bit(位)的查找解码二叉树完成解码,难以并行。尽管出现了一些并行化的改进方法,将霍夫曼编解码应用于大模型权重到计算芯片的权重传输带宽缩减上,依然面临解码延迟较大而难以应用的问题。而且该解码方法一般难以适配gpu(graphical processing unit,图形处理单元)、类脑芯片等计算芯片,从而难以用到大模型推理带宽缩减等场景上。
技术实现思路
1、本公开实施例提供了一种数据压缩方法及装置、电子设备、计算机可读存储介质。
2、第一方面,本公开实施例提供了一种数据压缩方法,该数据压缩方法包括:
3、根据一组待压缩数据的取值分布规则,确定所述一组待压缩数据中取值分布占比大于预设的占比阈值的目标数据;所述一组待压缩数据取值分布不均匀;
4、基于所述目标数据的大小确定存储空间大小要求;
5、根据所述存储空间大小要求对所述一组待压缩数据进行至少一次分解,获取多组分解数据;至少一组分解数据中的每个数据的大小均小于或等于所述存储空间大小要求;
6、根据每组分解数据的数量对所述每组分解数据进行抛弃或采用相应的存储方式进行存储。
7、第二方面,本公开提供了一种数据压缩装置,该装置包括:
8、第一确定模块,用于根据一组待压缩数据的取值分布规则,确定所述一组待压缩数据中取值分布占比大于预设的占比阈值的目标数据;所述一组待压缩数据取值分布不均匀;
9、第二确定模块,用于基于所述目标数据的大小确定存储空间大小要求;
10、分解模块,用于根据所述存储空间大小要求对所述一组待压缩数据进行至少一次分解,获取多组分解数据;至少一组分解数据中的每个数据的大小均小于或等于所述存储空间大小要求;
11、处理模块,用于根据每组分解数据的数量对所述每组分解数据进行抛弃或采用相应的存储方式进行存储。
12、第三方面,本公开提供了一种电子设备,包括:
13、至少一个处理器;以及
14、与所述至少一个处理器通信连接的存储器;其中,
15、所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的数据压缩方法。
16、第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的数据压缩方法。
17、本公开所提供的实施例根据一组待压缩数据的取值分布规则,确定该组待压缩数据中取值分布占比大于预设的占比阈值的目标数据,从而可以获取该组待压缩数据中占比多且分布较均匀的数据,即目标数据;在基于目标数据的大小确定出存储空间大小要求后,根据该存储空间大小要求对该组待压缩数据进行至少一次分解,获取多组分解数据,根据每组分解数据的数量对每组分解数据进行抛弃或采用相应的存储方式进行存储,可以将通过不定长编码获得的待压缩数据分解为至少一组满足存储空间大小要求的分解数据,例如,在基于二进制数据进行存储的情况下,分解为多组满足位宽要求的分解数据,从而可以使得待压缩数据中位宽较大的数据分解为位宽较小的数据,便于后续对占比多且分布较均匀的目标数据,依据该存储空间大小要求进行等存储空间的稠密化存储,增大稠密化存储的信息量与存储量的比值,而且便于后续对占比少且离散化的数据进行准稀疏化存储或稀疏化存储,提高存储效率(或压缩效率)。另外,对多组分解数据分别进行存储,可以获得多组压缩数据,从而使得在后续对存储的压缩数据进行解码时可以对该多组压缩数据并行解码,为压缩数据的并行处理提供了技术基础,能够实现不定长编码序列(如霍夫曼编码序列)的并行解码,从而降低解码延迟,提高在大模型带宽压缩等场景中的解码速度。
18、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
1.一种数据压缩方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据压缩方法,其特征在于,所述待压缩数据包括大模型权重数据;
3.根据权利要求2所述的数据压缩方法,其特征在于,在众核芯片的片外存储所述每组分解数据以后,所述方法还包括:
4.根据权利要求1所述的数据压缩方法,其特征在于,所述目标数据的大小包括位宽,所述存储空间大小要求包括位宽要求;
5.根据权利要求1所述的数据压缩方法,其特征在于,所述根据所述存储空间大小要求对所述一组待压缩数据进行至少一次分解,获取多组分解数据,包括:
6.根据权利要求1所述的数据压缩方法,其特征在于,所述存储方式包括以下任意一种:稠密化存储、准稀疏化存储和稀疏化存储;
7.根据权利要求6所述的数据压缩方法,其特征在于,所述根据每组分解数据的数量对所述每组分解数据进行抛弃或采用相应的存储方式进行存储,包括:
8.根据权利要求7所述的数据压缩方法,其特征在于,所述在所述第三存储结构中对所述任意一组分解数据进行稀疏化存储,包括:针对所述任意一组分解数据中任意的第一数据进行以下操作;
9.根据权利要求8所述的数据压缩方法,其特征在于,在所述目标位置存储所述第一数据的映射关系,包括:
10.根据权利要求1-9任意一项所述的数据压缩方法,其特征在于,所述基于所述目标数据的大小确定存储空间大小要求,包括:
11.一种数据压缩装置,其特征在于,包括:
12.一种电子设备,其特征在于,包括:
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-10中任一项所述的数据压缩方法。
