本发明属于存储数据压缩领域,更为具体地讲,涉及一种基于transformer的存储数据相似度量方法来对存储数据切块进行压缩友好的相似性度量。
背景技术:
1、在数据存储领域,需要处理的数据量非常庞大,通过研究先进的压缩算法来减少数据的体积,可以有效地提升存储效率和降低成本。根据研究表明,在应用如zstd这样的压缩算法之前,将结构或内容相似的数据块合并,可以实现比单独压缩每个数据块时更高的压缩比。这种方法的成功关键在于,压缩算法能够更有效地识别并消除合并数据块中的重复信息。实现高效压缩的一个挑战是如何自动地识别并聚集这些相似的数据块。在大数据环境中,这通常涉及到使用机器学习或其他算法来分析数据块的内容,判断它们是否足够相似,可以被聚类在一起以便进行压缩。
2、传统的聚类算法会使用各种距离度量函数,如欧式距离衡量数据点的直线距离,余弦距离评估它们的方向差异,而海明距离计算的是数据点对应位不同的数量。这些度量通常用于识别物理上或统计上相近的数据点,但不一定能反映出哪些数据块在压缩时会表现出高度的冗余。因此,这些传统的度量方法并不适用于优化压缩算法。例如,两个数据块即使在欧式距离上非常接近,它们的内容特征在压缩算法中的表现并不相同,从而不会产生理想的压缩效果。这就需要开发新的方法来衡量数据块的“压缩友好相似性”,也就是它们在合并后对压缩算法的响应度。为了解决这个问题,考虑基于机器学习的方法,通过训练算法识别那些在压缩时能够带来高压缩率的数据块特征。
3、本专利提出了一种利用transformer架构和深度学习技术的方法,用于自动提取与数据压缩相关的模式,通过提取到的压缩表征度量数据块的相似性。transformer架构最初是为解决序列到序列的任务而设计的,其强大之处在于它能够处理长距离依赖关系。transformer能应用于回归任务,特别是在处理序列数据时。存储数据通常以一维序列的形式呈现,transformer能够高效地学习这些数据的信息。transformer引入了自注意力机制,允许模型同时关注输入序列中不同位置的信息,而不仅仅是局限于固定窗口大小的上下文。这个自注意力机制使模型能够动态地加权考虑不同位置的信息,以更好地捕捉输入序列内部的依赖关系。此外,transformer还引入了位置编码,以使模型能够理解序列中的顺序信息。在存储数据中,顺序通常包含了重要的语义信息。transformer的编码器将输入序列编码成中间表示,并通过线性回归将其压缩到低维表征。然后,对这些低维表征进行回归预测,以拟合压缩算法。transformer的自注意力机制、并行性、模块化性质以及位置编码等特点,使其能够有效地学习存储数据的压缩特性。通过transformer提取和拟合压缩模式,能够有效地度量存储数据块之间的压缩友好相似性。
技术实现思路
1、本发明的目的在于克服现有技术的不足,提出一种基于transformer的存储数据相似度量方法来对存储数据切块进行压缩友好的相似性度量,以补全在存储数据压缩领域对数据块不能很好的度量相似性,其可以显著提升对数据块压缩友好相似性的度量。
2、为了实现上述发明目的,本发明基于transformer的存储数据相似度量方法,其特点为在给定存储数据压缩的要求下,对存储数据进行切块,采样获得用于提取token的数据块以及用于训练的数据集,通过transformer对数据块提取压缩相关的数据模式,使用mse损失函数进行训练优化,完成模型训练,使得transformer能拟合压缩算法的特性,通过transformer学习模型进行存储数据相似性度量。具体包括以下步骤:
3、(1)数据收集
4、收集用于压缩存储的数据集,包括但不限于游戏应用数据、图片数据、文本数据、视频数据、系统镜像数据、工业互联网数据。
5、(2)数据预处理
6、将收集的文件数据进行以8kb固定大小的切片,并将切块数据通过转换成二进制的原始数据集,由于原始数据量庞大,采样部分数据用作词典生成,同时采样获得训练数据集,并根据压缩算法计算获得训练数据集的压缩比标签。
7、(3)建立transformer学习模型
8、首先是初始化过程。首先通过embedding层对输入的数据切块进行向量化,使用词典中的编码表征数据切块并进行初始化。之后通过位置编码,以使模型能够处理存储数据序列中的顺序信息,存储数据序列中的顺序通常包含了重要的语义信息。然后通过encoder层进行数据编码。在transformer引入了多头注意力机制,允许模型以不同的关注方式处理不同类型的信息,提高了模型对多层次、多种信息的理解能力。transformer的核心是自注意力机制,它允许模型在处理序列时动态地为不同位置的元素分配不同的权重。这意味着模型可以在不同位置上同时关注到重要的信息,而不受传统循环神经网络(rnn)的限制,rnn通常是逐步处理序列的。自注意力机制能够捕捉长距离的依赖关系,使得模型能够更好地理解序列内部的关联。最后通过线性层将encoder输出表征拉平,映射到低维空间,通过回归预测拟合压缩算法的压缩特性。
9、(4)模型训练
10、将数据划分为训练集、验证集和测试集。采样部分数据用作词典生成,同时采样获得训练数据集,并根据压缩算法计算获得训练数据集的压缩比标签,将训练数据集输入到transformer模型中,获得模型拟合压缩算法的压缩比预测结果。损失函数为根据需求使用均方损失函数,其公式为:
11、
12、其中n表示样本数量,yi表示第i个样本的真实值,表示模型对第i个样本的预测值。mse对于每个样本,计算真实值与预测值之差,将这些残差值进行平方,对所有样本的平方残差值求平均,得到均方误差。优化器使用优化器使用adam优化器,多轮次迭代后达到收敛状态。使用验证集进行超参数的验证,多轮调优后,超参数达到最优。
13、(5)模型测试
14、使用经过训练、验证的模型,固定参数,把测试集输入到模型,获得能代表压缩特性的表征向量,对表征向量进行聚类求nmi的计算,评估对压缩友好相似性的度量。
15、本发明的目的是这样实现的。本发明利用深度神经网络,基于transformer的存储数据相似度量方法来对数据切块进行压缩友好相似性的度量。首先采集用于存储压缩的待压缩数据集,将数据集按照固定8kb大小切片,由于原始数据量庞大,采样部分数据用作词典生成,同时采样获得训练数据集,并根据压缩算法计算获得训练数据集的压缩比标签。通过transformer模型对数据块提取压缩相关的数据模式,使用均方损失函数进行训练优化,完成模型训练,使得transformer能拟合压缩算法。之后将测试的存储数据按照8kb进行切块放入到获得的模型中,通过encoder对数据进行编码到低维表征,对这些表征进行聚类后,计算nmi,互信息越大代表对存储数据块压缩友好相似性度量越好,完成对压缩友好模式的学习,为度量存储数据块相似性提供了一种新方法。
1.一种基于transformer的存储数据相似度量方法其特征在于,包括以下步骤:
2.根据权利要求1所述的transformer度量方法,其特征在于,步骤(2)中,所述的建立transformer学习模型,和步骤(3)中所述的模型训练: