SeTa:面向大规模数据集的尺度高效训练
论文标题:Scale Efficient Training for Large Datasets
作者:Qing Zhou, Junyu Gao, Qi Wang(西北工业大学)
会议:CVPR 2025
arXiv:2503.13385
一句话概括
SeTa 是一个即插即用的动态数据剪枝框架,通过"均匀下采样 → 按损失聚类分层 → 滑动窗口课程式选择"三步流水线,在减少 30–50% 训练数据的同时保持甚至提升模型性能,且完全不需要修改模型架构。

一、研究背景与动机
1.1 大数据集的"甜蜜负担"
深度学习的成功离不开大规模数据集,但数据量增长带来的边际收益在递减——Hestness 等人的研究表明,模型性能随数据量呈幂律增长,意味着翻倍数据量只能换来微小的性能提升。与此同时,训练成本(算力、时间、能耗)却线性增长。
1.2 三类低价值样本
作者指出,大数据集中存在三类对训练贡献有限的样本:
| 样本类型 | 特征 | 问题 |
|---|---|---|
| 冗余样本(Redundant) | 与其他样本高度相似 | 重复学习已掌握的模式,浪费计算 |
| 过难样本(Overly Hard) | loss 持续居高不下 | 模型难以从中学习,可能为标注噪声 |
| 过易样本(Overly Easy) | loss 快速趋近于零 | 已充分学习,继续训练无增益 |
1.3 现有方法的不足
| 方法类别 | 代表工作 | 核心思路 | 局限 |
|---|---|---|---|
| 静态剪枝 | Dataset Pruning, Dataset Quantization | 训练前一次性筛选子集 | 无法适应训练过程中样本价值的变化 |
| 动态剪枝 | InfoBatch, EfficientTrain | 训练中按 loss 动态筛选 | 仅基于单点 loss 值,缺乏全局视角;或需额外预训练阶段 |
| 课程学习 | Self-paced Learning | 由易到难的调度 | 通常需额外计算开销或难以与剪枝结合 |
SeTa 的核心洞察:将聚类分层与滑动窗口课程调度结合,在动态剪枝的框架内同时解决冗余、难度分布和学习节奏三个问题。
二、方法详解
2.1 整体流程
SeTa 的训练流程分为三个阶段,每个 epoch 动态执行:
┌─────────────────────────────────────────────────────┐
│ 每个 Epoch │
│ │
│ Step 1: 均匀下采样 ──→ 去除冗余样本 │
│ │ │
│ Step 2: 按损失 k-means 聚类 ──→ 分成 k 个难度层 │
│ │ │
│ Step 3: 滑动窗口课程式选择 ──→ 由易到难循环选取 │
│ │ │
│ 末段: 部分退火 ──→ 随机采样恢复部分样本 │
└─────────────────────────────────────────────────────┘
2.2 Step 1:均匀下采样去冗余
对原始数据集 D={x1,x2,…,xN}D = \{x_1, x_2, \ldots, x_N\}D={x1,x2,…,xN},以比率 rdr_drd 进行均匀随机下采样,得到子集 D′D'D′:
∣D′∣=N×(1−rd)|D'| = N \times (1 - r_d)∣D′∣=N×(1−rd)
目的:冗余样本在特征空间中分布密集,均匀下采样可以在不显著损失信息多样性的前提下减少数据规模。下采样比率 rdr_drd 建议不超过 0.3。
2.3 Step 2:按损失聚类分层
对 D′D'D′ 中每个样本计算当前模型下的损失 ℓi\ell_iℓi,然后对 {ℓ1,ℓ2,…,ℓ∣D′∣}\{\ell_1, \ell_2, \ldots, \ell_{|D'|}\}{ℓ1,ℓ2,…,ℓ∣D′∣} 进行 k-means 聚类,得到 kkk 个簇 {C1,C2,…,Ck}\{C_1, C_2, \ldots, C_k\}{C1,C2,…,Ck},按簇内平均损失从小到大排列(C1C_1C1 最易,CkC_kCk 最难)。
k-means 目标:
min{Cj}∑j=1k∑ℓi∈Cj∥ℓi−μj∥2\min_{\{C_j\}} \sum_{j=1}^{k} \sum_{\ell_i \in C_j} \|\ell_i - \mu_j\|^2{Cj}minj=1∑kℓi∈Cj∑∥ℓi−μj∥2
其中 μj\mu_jμj 为簇 CjC_jCj 的中心。
关键设计:用聚类而非排序,是因为聚类能自然地将样本按难度分组,为后续的滑动窗口课程调度提供结构化的难度层次。
2.4 Step 3:滑动窗口课程式选择
这是 SeTa 最核心的创新。窗口大小 w=⌈αk⌉w = \lceil \alpha k \rceilw=⌈αk⌉(α∈(0,1]\alpha \in (0, 1]α∈(0,1] 控制每轮选中的簇比例),在第 ttt 个 epoch:
窗口起止位置:
st=nmod (k−w+1),et=st+w−1s_t = n \mod (k - w + 1), \quad e_t = s_t + w - 1st=nmod(k−w+1),et=st+w−1
其中 nnn 为当前 epoch 在一个完整周期内的计数。窗口在第 ttt 个 epoch 覆盖簇 CstC_{s_t}Cst 到 CetC_{e_t}Cet,选中的训练集为这 www 个簇的并集。
直觉解读:
- 窗口从 C1C_1C1(最易)开始,随着训练推进,窗口逐步向高难度簇滑动
- 形成"由易到难"的课程学习效果
- 由于取模运算,窗口会循环滑动——每个难度区间的样本都会被周期性地学习到
- 窗口大小 www 控制了同时学习的难度跨度:www 越大,覆盖的难度范围越宽
窗口尺度参数:实验表明 α∈[0.4,0.6]\alpha \in [0.4, 0.6]α∈[0.4,0.6] 为最佳区间(兼顾学习上下文与计算效率)。
2.5 部分退火(Partial Annealing)
在训练末期(最后若干 epoch),SeTa 不再使用滑动窗口,而是按比率 rrr 从全量数据中随机采样:
Stanneal={xi∣ui<r}S_t^{\text{anneal}} = \{x_i \mid u_i < r\}Stanneal={xi∣ui<r}
其中 ui∼Uniform(0,1)u_i \sim \text{Uniform}(0, 1)ui∼Uniform(0,1)。
为什么不做全量退火? 全量退火(恢复全部数据)会在末期引入大量已无价值的冗余/过易样本,增加计算成本却收效甚微。部分退火通过随机采样恢复一小部分样本,既能"查漏补缺",又控制了开销。消融实验证实部分退火优于全量退火。
2.6 时间节省分析
设原始训练一个 epoch 的计算量为 OmO_mOm(前向+反向传播),SeTa 的额外开销为 OdO_dOd(下采样+聚类+窗口选择)。当 Od≪OmO_d \ll O_mOd≪Om 时,时间节省比率:
ρO≈ρˉ\rho_O \approx \bar{\rho}ρO≈ρˉ
其中 ρˉ\bar{\rho}ρˉ 为平均数据剪枝比率。这意味着 SeTa 的额外计算开销可忽略不计,实际时间节省接近理论数据节省比率。
三、实验结果
3.1 数据集与任务概览
SeTa 在合成大数据集和真实数据集上进行了广泛验证:
| 数据集类型 | 数据集 | 规模 | 任务 |
|---|---|---|---|
| 合成大数据集 | ToCa | 3M | 图像描述 |
| SS1M | 3M | 图像描述 | |
| MJ+ST | 15M | 场景文本识别 | |
| 真实数据集 | ImageNet | 1.28M | 图像分类 |
| COCO | 123K | 图像描述 | |
| CIRR | 36K | 组合图像检索 | |
| WHU-MVS | 1.3M | 多视图立体匹配 | |
| CVACT | 35K | 跨视角地理定位 | |
| CIFAR-100 | 50K | 图像分类 | |
| RefCOCO | 120K | 指称图像分割 | |
| Alpaca | 52K | 指令微调 |
3.2 分类任务(CIFAR)
| 数据集 | 方法 | 剪枝率 | Top-1 Acc. | 与基线差距 |
|---|---|---|---|---|
| CIFAR-10 | Full(基线) | 0% | 95.6 | — |
| SeTa | 70% | 95.0 | -0.6 | |
| CIFAR-100 | Full(基线) | 0% | 79.3 | — |
| SeTa | 70% | 77.7 | -1.6 |
解读:在 70% 剪枝率下(仅用 30% 数据),CIFAR-10 性能仅下降 0.6 个百分点,CIFAR-100 下降 1.6 个百分点,表现出色。
3.3 图像描述任务(ToCa / SS1M / COCO)
| 数据集 | 方法 | 剪枝率 | NoCaps Overall | NoCaps Out | COCO Test |
|---|---|---|---|---|---|
| ToCa (3M) | Full(基线) | 0% | 70.5 | 70.2 | 95.2 |
| SeTa | 31.7% | 71.5 | 71.4 | 95.3 | |
| SS1M (3M) | Full(基线) | 0% | — | COCO B@4: 9.3 | COCO C: 42.4 |
| SeTa | 40% | — | COCO B@4: 10.3 | COCO C: 45.1 |
亮点:在 ToCa 上剪枝 31.7% 后,NoCaps Overall 不仅没降,反而提升了 1.0 个百分点(70.5 → 71.5),COCO Test 也从 95.2 微升至 95.3。在 SS1M 上剪枝 40% 后,COCO B@4 从 9.3 提升至 10.3(+1.0),COCO CIDEr 从 42.4 提升至 45.1(+2.7),提升幅度更为显著。
3.4 场景文本识别(MJ+ST 15M)
| 方法 | 剪枝率 | IIIT5k | SVT | IC15 | SVTP | CUTE80 |
|---|---|---|---|---|---|---|
| ABINet(基线) | 0% | 96.1 | 93.4 | 85.4 | 88.7 | 89.2 |
| SeTa | 71% | 95.8 | 92.9 | 84.9 | 88.2 | 87.5 |
解读:在 1500 万样本的超大规模数据集上剪枝 71%,各指标性能下降幅度为 0.3–1.7 个百分点,整体保持良好。
3.5 ImageNet 跨架构验证
| 架构 | 剪枝率 | Top-1 Acc. | 基线 | 差距 |
|---|---|---|---|---|
| ResNet-18 | 36.1% | 69.6 | 69.5 | +0.1 |
| ResNet-50 | 30.0% | 78.5 | 78.6 | -0.1 |
| MobileNetV3 | 26.2% | 52.2 | 52.2 | 0.0 |
| EfficientNet | 30.0% | 76.3 | 76.1 | +0.2 |
| ViT | 24.6% | 73.3 | 73.3 | 0.0 |
| Swin | 46.4% | 80.0 | 80.0 | 0.0 |
| Vim | 30.0% | 75.7 | 75.7 | 0.0 |
解读:SeTa 在 7 种不同架构(CNN、Transformer、Mamba)上均保持极小的性能差距(-0.1 ~ +0.2),多数架构甚至零性能损失,证明了其模型无关性。在 Swin 上实现了 46.4% 的高剪枝率且性能完全无损。
3.6 大语言模型微调(Alpaca)
| 方法 | 剪枝率 | BBH | DROP | MMLU | Human-Eval | 平均 |
|---|---|---|---|---|---|---|
| DQ(基线) | 0% | 32.9 | 27.6 | 36.6 | 8.5 | 26.3 |
| SeTa | 25.9% | 32.4 | 27.4 | 35.8 | 13.4 | 27.3 |
| SeTa | 40.3% | 32.3 | 27.0 | 35.4 | 11.6 | 26.6 |
| SeTa | 52.5% | 32.3 | 27.3 | 34.8 | 9.8 | 26.1 |
解读:SeTa 在 LLaMA-7B 指令微调中,25.9% 剪枝率下平均性能从 26.3 升至 27.3(+1.0),其中 Human-Eval 从 8.5 飙升至 13.4(+4.9),证明 SeTa 在 LLM 微调场景不仅能节省计算,还能提升代码生成能力。即使在 52.5% 的高剪枝率下,平均性能仅下降 0.2(26.1 vs 26.3),展现了良好的鲁棒性。
3.7 与 InfoBatch 的对比
在 ToCa-3M 数据集上 NoCaps Overall 指标的对比(来自 Table 3):
| 方法 | 剪枝率 | NoCaps Overall | 与基线差距 |
|---|---|---|---|
| ViECap(基线) | 0% | 70.5 | — |
| InfoBatch | 23.6% | 70.2 | -0.3 |
| InfoBatch | 34.1% | 69.2 | -1.3 |
| InfoBatch | 45.9% | 67.7 | -2.8 |
| SeTa | 31.7% | 71.5 | +1.0 |
| SeTa | 41.8% | 69.3 | -1.2 |
| SeTa | 50.1% | 69.4 | -1.1 |
关键发现:SeTa 在 31.7% 剪枝率下不仅未降性能,反而超越基线 1.0 个百分点。而 InfoBatch 在相近剪枝率(34.1%)下已下降 1.3 个百分点。在更高剪枝率(~46% vs ~42%)下,SeTa 下降 1.2 而InfoBatch 下降 2.8,差距达 1.6 个百分点。SeTa 在各剪枝率下均显著优于 InfoBatch。
四、消融实验
4.1 课程方向对比
| 选择策略 | NoCaps Overall |
|---|---|
| 由易到难(Easy→Hard) | 71.5 |
| 由难到易(Hard→Easy) | 69.6 |
由易到难的课程方向明显更优,差距达 1.9 个百分点。
4.2 各组件贡献
| 配置 | 剪枝率 | COCO Test | NoCaps Overall |
|---|---|---|---|
| 全量训练(Full) | 0% | 95.2 | 70.5 |
| 动态随机采样(baseline) | 31.7% | 94.7 | 69.8 |
| 静态随机采样(baseline) | 31.7% | 94.6 | 69.4 |
| Hard→Easy 排序 | 27.0% | 94.8 | 69.6 |
| 连续调度(不归零 s) | 32.8% | 95.1 | 70.7 |
| 全量退火(末期恢复全部数据) | 27.2% | 95.2 | 70.3 |
| SeTa 完整版 | 31.7% | 95.3 | 71.5 |
关键发现:(1) SeTa 完整版以 31.7% 剪枝率取得 71.5 Overall,反超全量训练的 70.5——说明数据筛选不仅降成本,还过滤了干扰样本。(2) 动态采样(每 epoch 重采样)优于静态采样(69.8 vs 69.4)。(3) 由易到难排序优于由难到易(71.5 vs 69.6)。(4) 连续调度(70.7)和全量退火(70.3)各自都低于完整版,说明部分退火+归零策略不可替代。
4.4 超参数敏感性
窗口尺度 α\alphaα:
- 最佳区间:α∈[0.4,0.6]\alpha \in [0.4, 0.6]α∈[0.4,0.6]
- α<0.2\alpha < 0.2α<0.2:性能急剧下降(学习上下文不足)
- α>0.7\alpha > 0.7α>0.7:边际收益递减,计算成本增加
簇数 kkk:
- 稳定区间:k∈[5,15]k \in [5, 15]k∈[5,15]
- 在此范围内波动极小,说明 SeTa 对 kkk 的选择不敏感
下采样比率 rdr_drd:
- rd≤0.3r_d \leq 0.3rd≤0.3 时性能损失可忽略
- rd>0.3r_d > 0.3rd>0.3 时开始出现明显下降
五、训练动态分析
作者通过可视化训练过程中的四项关键指标(训练损失、训练精度、验证精度、剪枝比率)揭示了 SeTa 的工作机制:
-
振荡式学习模式:SeTa 的训练曲线呈现周期性振荡,在基线和 InfoBatch 之间波动。这是滑动窗口周期性切换难度区间导致的,有助于防止模型陷入局部最优。
-
高效学习动态:尽管使用了更少的数据(数据节省曲线持续更高),SeTa 保持了与全量训练相当的训练/验证精度。
-
鲁棒收敛:验证精度曲线显示 SeTa 最终达到与全量训练相当的性能,且始终优于 InfoBatch。
六、总结与评价
核心贡献
- 三步流水线设计:将冗余去除、难度分层、课程调度三个目标统一在一个框架内,各步骤协同增效。
- 滑动窗口机制:通过周期性循环选择不同难度区间的样本,实现了"既覆盖全难度谱系,又遵循课程学习规律"的优雅平衡。
- 广泛验证:在分类、描述、检索、分割、文本识别、LLM 微调等多种任务和 6+ 种架构上验证了通用性。
优势
- 即插即用:不需要修改模型架构,可无缝集成到现有训练流程
- 模型无关:在 CNN、Transformer、Mamba 等架构上均有效
- 鲁棒性强:在高剪枝率下仍保持性能,优于 InfoBatch 等现有方法
- 额外开销小:聚类和窗口选择的计算量远小于训练本身
局限性
- 假设数据集中存在大量冗余:对于本身规模较小或样本多样性高的数据集,剪枝空间可能有限
- 聚类开销:当数据集极大时,k-means 聚类虽有开销但论文指出 Od≪OmO_d \ll O_mOd≪Om,实际影响可控
- 噪声标签场景:SeTa 基于 loss 值进行聚类,在存在标注噪声的数据集中,高 loss 的噪声样本可能被错误地归入"困难"簇。这一问题正是 AlignPrune(arXiv:2604.07306)所要解决的
实践建议
| 超参数 | 推荐范围 | 说明 |
|---|---|---|
| 窗口尺度 α\alphaα | 0.4–0.6 | 性能与效率的最佳平衡点 |
| 簇数 kkk | 5–15 | 对性能不敏感,可灵活选择 |
| 下采样比率 rdr_drd | ≤ 0.3 | 超过 0.3 性能开始下降 |
| 退火策略 | 部分退火 | 优于全量退火和无退火 |
1799



被折叠的 条评论
为什么被折叠?



