摘要
最先进的深度神经网络使用大量(百万甚至数十亿)数据进行训练。昂贵的计算和内存成本使得在有限的硬件资源上训练它们变得困难,特别是对于最近流行的大型语言模型 (LLM) 和计算机视觉模型 (CV)。因此最近流行的数据集蒸馏方法得到发展,旨在通过梯度匹配合成小规模数据集来减少训练样本的数量。然而,由于梯度计算与特定的网络架构相结合,合成数据集是有偏差的,并且在用于训练unseen architectures时表现不佳。为了解决这些限制,我们提出了数据集量化 (DQ),这是一种将大规模数据集压缩成小子集的新框架,可用于训练任何神经网络架构。大量实验表明,DQ 能够生成压缩的小型数据集,用于训练unseen network architectures,以最大压缩比进行不降低模型性能的训练。据我们所知,DQ 是第一个能够成功提取大规模数据集的方法,例如具有最大的压缩比的 ImageNet-1k。值得注意的是,使用来自 ImageNet 的 60% 数据和来自 Alpaca 指令微调数据的 20% 数据,这些模型训练后用于视觉任务(包括分类、语义分割和目标检测)和语言任务(包括指令调优任务,如BBH和DROP)的性能几乎没有下降。
1 引言
深度神经网络在计算机视觉和自然语言处理等多个领域表现出了优越的性能。它们的性能在很大程度上取决于训练数据量。例如,最近在ImageNet-1K上最先进的模型需要 30 亿数据进行预训练。对于计算资源有限的研究人员来说,这很难负担得起。然而,大型数据集中的所有数据是否有利于训练?是否有可能在不降低训练性能的情况下删除一些冗余样本?在下游任务上使用较少数据的预训练模型的性能是什么?在本文中,我们进行了广泛的实验并对这些问题进行了详细的探索。为了解决第一个问题,最近提出了几个数据集蒸馏 (DD) 算法 [62, 60, 30, 61, 53, 4, 16, 52, 35],通过合成一组明显小于原始数据集的新数据集来减少训练数据集大小。使用新的合成数据集,训练成本显著降低,同时产生与在原始数据集上训练的模型相当的结果。
尽管取得了重大进展,但两个限制使得这些算法难以部署在工业环境中:
- 泛化能力差
- 对更大数据集的可扩展性低
在本文中,我们旨在实现一种结合数据集蒸馏方法和corset方法优点的方法:一种统一的数据集压缩方法,它生成紧凑的数据集,可用于训练各种网络架构,同时保持所有数据保持率下最先进的训练性能。我们首先研究了在低数据率下coreset选择方法性能不佳背后的原因,我们发现它在于一次性选择策略,导致所选数据的多样性较低。
因此,我们提出了一种新的pipeline来克服coreset算法的上述问题,并将其称为数据集量化(DQ)。具体来说,DQ 首先基于子模块收益递归地将整个数据集划分为一组不重叠的 bins,旨在最大化等式1中定义的多样性收益。然后,从所有 bin 中统一采样一小部分数据样本。通过这种方式,对所选样本进行了优化,以尽可能地覆盖整个数据间多样性最大化的数据集。
我们的主要贡献总结如下: - 我们提出了一种新的框架数据集量化 (DQ),将数据集压缩成一个小的紧凑数据集,可用于训练具有最先进压缩性能的看不见的网络架构的神经网络。
- 我们提出了一种可扩展且高效的数据集压缩算法,可用于大型数据集,例如 ImageNet-1K。使用数据集量化,我们能够从 ImageNet-1K 数据集中删除 40% 的数据和Alpaca 指令数据集中删除 80% 的数据,并训练出没有性能损失的模型 。
- 我们验证了使用压缩数据集训练的模型可用于下游任务。在 ImageNet-1K 上用 60% 的数据预训练的模型在 COCO 上实现了对象检测的性能,ADE20K上进行分割。
2 相关工作
在本节中,我们回顾了两种具有代表性的相关方法:数据集蒸馏和核心集选择。我们还介绍了这两种方法的局限性和分析。
2.1 数据集蒸馏
数据集蒸馏(DD)是第一个提出从大型数据集合成少量信息样本的方法。具体来说,它通过最小化在合成数据集上训练的模型的原始训练样本的损失来优化合成样本。然后,人们提出了一系列技术,如数据集凝聚(DC)[63]、DSA[60]和IDC[31]。这些方法建议匹配从原始数据和合成数据计算的损失梯度。CAFE [53] 和 DM [61] 引入了特征分布匹配策略来减少大梯度样本的潜在偏差。最近的工作 [4] 试图最小化原始样本和合成样本之间的训练轨迹的差异。
2.2 核心集选择
核心集选择已被积极探索用于压缩数据集,旨在从目标数据集中选择最具代表性的样本的子集。以往的方法提出了不同的选择标准:geometry-based [8, 1, 44, 46], uncertainty-based [10], error-based [50, 41], decision-boundary-based [18, 38], gradient-matching [39, 28], bilevel optimization [29] and submodularity-based methods[26]。其中,上下文多样性 (CD) [1]、Herding [57] 和 k-Center Greedy [44] 试图根据它们与剩余样本的相似性去除冗余样本。Cal [38] 和 Deepfool [18] 认为核心集应该根据它们的学习困难来选择。Craig [39] 和 GradMatch [28] 试图在网络上训练时找到与整个数据集具有相似梯度值的最佳核心集。Glister [29] 引入了一个验证集来最大化整个数据集的对数似然,其中涉及耗时的双层优化。FL[26]和Graph Cut (GC)[26]同时考虑多样性和信息。
2.3 局限性和分析
DD 方法很难应用于大型数据集或架构,例如 ImageNet-1K 或 ResNet 系列,这主要是由于以下限制:泛化性差、可扩展性差和大型数据集的高计算成本。
3 方法
如第 2 节所述,基于 DD 方法的合成数据集在训练看不见的网络架构方面表现不佳,因为匹配指标与所使用的网络相结合。因此,我们积极探索对模型架构不敏感的数据选择策略。在本节中,我们首先介绍核心集选择方法的预备知识,并从理论上分析其局限性。特别是,我们选择基于 GraphCut 的方法 [26] 为例。然后,我们详细介绍了我们提出的数据集量化 (DQ) 方法。
3.1 核心集选择方法的预备知识
基于核心集的算法解决了 DD 方法的局限性。然而,几乎所有的coreset选择方法只以一次性的方式从整个数据集中选择单个子集。我们凭经验观察到它不可避免地引入了严重的选择偏差——位于数据集分布高密度区域的样本比其他样本更频繁地被选择——并产生多样性有限的选择结果。我们为观察提供了更详细的理论分析。
核心集选择的理论分析。几乎所有的coreset选择方法都使用heuristic metric来选择样本,这很难避免在heuristic metric下选择一些具有相似性能的样本。GraphCut[26]是一种最新的方法,我们选择它作为分析核心集选择过程的示例。 D = ( x k , y k ) k = 1 M D={(x_k,y_k)}^M_{k=1} D=(xk,yk)k=1M表示M个标注样例。我们默认从 D 中选择 K 个样本以形成核心集。核心集初始化为 S 1 1 ← ∅ S^1_1\leftarrow\emptyset S11←∅,并且更新为 S 1 k ← S 1 k − 1 ∪ x k S^k_1\leftarrow S^{k-1}_1\cup x_k S1k←S1k−1∪xk。请注意, S n S_n Sn表示第n个bin, S n k S_n^k Snk表示第n个bin的前k个样例,并且 x k x_k xk表示第k个样例。我们将特征提取器定义为 f (·),在 GraphCut 中,通过最大化特征空间中的子模块增益 P ( x k ) P(x_k) P(xk) 来选择样本,定义如下
其中 S 1 k − 1 S^{k-1}_1 S1k−1表示所选样本集, D / S 1 k − 1 D/S^{k-1}_1 D/S1k−1表示剩余样本集。GraphCut 旨在最大化 P ( x k ) P(x_k) P(xk):它期望最大化 x k x_k xk和所选集合之间的多样性,同时最小化 x k x_k xk和剩余集合之间的距离。因此, S 1 S_1 S1 有望成为覆盖原始分布的核心集,同时保持最大的多样性。不过,当K远小于M, C 1 ( x k ) C_1(x_k) C1(xk)的和值远小于 C 2 ( x k ) C_2(x_k) C2(xk)。 x k x_k xk和剩余集之间的距离在增益计算中采用了主导位置。因此,正如预期的那样,所选 K 个样本的多样性并不能保证,特别是当数据比率较低时。
3.2 DQ概述
基于上述观察和分析,我们提出了数据集量化(DQ),这是一种量化大规模数据集以进行无损训练的新框架,其中考虑了数据效率、可扩展性和计算成本。在本文中,我们首先通过最大化子模块增益将数据集划分为几个不重叠的 bin。
如图3,给定一个数据集 D,使用预定义大小 K 的 bin 从 D 递归采样小信息集 bin,产生一组小 bin [ S 1 , . . . , S n , . . . , S N ] [S_1,...,S_n,...,S_N] [S1,...,Sn,...,SN]其中 N = M/K。每个bin S n = ( x j ( n ) , y j ( n ) ) j = 1 K ⊂ D S_n = {(x^{(n)}_j,y^{(n)}_j)} ^K_{j=1} \subset D Sn=(xj(n),yj(n))j=1K⊂D在递归选择过程中,受限于原始特征分布的数据间多样性和代表性。早期步骤生成的 bin 主要受与剩余集的距离的限制,而后期的 bin 受到数据间多样性的限制。为了更好地捕获完整数据集的分布,并从以上两个角度平衡影响,然后通过从这些bin中均匀采样集成核心集S *进行训练。最终,通过从图像中删除非信息patchs来进一步减轻存储负担,从而去除冗余信息。
数据集 bin 生成,每个 bin 通过最大化等式1中声称的子模块增益来选择。DQ 从 D 递归地选择 bin,其中第 n 个 bin 中的第 i 个样本的选择公式如下:
Bin采样:在生成具有各种特征的数据集 bin 后,为了获得多样化和信息丰富的子集,使用采样器 g(·,·) 从每个 bin 中采样某个部分并形成最终的紧凑集。该过程正式定义为
此外,我们通过将每个样本的冗余数据划分为patch来去除每个样本中的冗余数据。受 Masked Auto-Encoder (MAE) [20] 的启发,它仅使用其中的一些patch来恢复图像,我们删除了不太重要的patch,以减少每张图片用于描述的像素数量。