SCAN: Bootstrapping Contrastive Pre-training for Data Efficiency¶
元信息¶
- 会议: ICCV 2025
- arXiv: 2411.09126
- 代码: https://github.com/guoyang9/SCAN
- 领域: 多模态VLM
- 关键词: 对比预训练, 数据效率, 数据集剪枝, 动态稀疏训练, CLIP, MoCo
一句话总结¶
提出SCAN,一种动态自举数据集剪枝方法,通过迭代的剪枝候选识别和数据集突变操作,在CLIP和MoCo对比预训练中以30-35%的数据剪枝率实现平均不到1%的性能下降。
研究背景与动机¶
对比预训练(如CLIP、MoCo)是学习通用表示的核心范式,但其数据效率问题长期被忽视。主要困难在于:
缺乏可靠标签:自监督学习目标没有显式标签,无法像有监督学习那样估计样本的类概率(如EL2N)
数据规模巨大:预训练数据集通常包含百万甚至十亿级样本,逐样本计算梯度或Hessian的方法不可行
现有方法主要采用静态核心集选择(coreset selection),在训练前预先筛选重要数据。作者类比动态稀疏训练(DST)相对于静态稀疏训练的优势,指出静态剪枝无法动态追踪数据在预训练过程中的有用性变化。
核心洞察:数据集剪枝可分解为两个子问题:(1) 指标识别——使用何种proxy metric、(2) 剪枝策略设计——如何决定剪枝哪些数据。SCAN提出动态自举的解决方案。
方法详解¶
指标选择¶
选择InfoNCE损失值作为proxy metric,因为它满足: - 动态适应性:随训练更新 - 快速获取:无需额外计算 - 反映学习状态:低损失=已充分学习,高损失=匹配不良
剪枝候选识别¶
识别两类应剪枝的数据:
冗余数据(Redundant):损失最小的 \(\rho\) 比例样本,已被模型充分记忆
匹配不良数据(Ill-matched):损失最大的 \(\rho\) 比例样本,图文语义不匹配
最终候选集 \(\mathcal{D}' = \mathcal{D}^{red} \cup \mathcal{D}^{ill}\)(取两个方向的交集)。
热身策略:计算相邻epoch损失差与阈值 \(T_{td}\) 比较,当 \((\mathcal{L}'_{pre} - \mathcal{L}'_{cur})/(\mathcal{L}'_{pre} + \epsilon) \geq T_{td}\) 时开始剪枝。
数据集突变(Bootstrapping)¶
不使用固定剪枝比例,而是采用余弦退火策略动态调整当前剪枝比例:
剪枝比例随训练进行周期性增大,从候选集 \(\mathcal{D}'\) 中随机选取 \(\rho_{cur}|\mathcal{D}'|\) 个样本进行剪枝。每 \((\tau_{cos}+1)\) 个epoch重新生成候选集并恢复到完整数据集,开始新一轮迭代。
实验¶
CLIP预训练结果(CC12M+, 30%剪枝率)¶
| 架构 | 方法 | IN Zero-Shot Top-1 | CIFAR10 | CIFAR100 | IN Top-1 | IN-V2 | IN-R |
|---|---|---|---|---|---|---|---|
| RN101 | CLIP (全数据) | 18.78 | 95.96 | 82.13 | 75.76 | 64.31 | 40.57 |
| RN101 | Random | 14.05 | 95.02 | 78.34 | 73.99 | 60.27 | 36.13 |
| RN101 | SemDeDup | 13.26 | 95.07 | 78.77 | 74.24 | 62.16 | 37.65 |
| RN101 | D-Pruning | 12.59 | 94.94 | 78.89 | 74.07 | 61.30 | 37.07 |
| RN101 | SCAN | 23.10 | 96.08 | 82.28 | 75.66 | 63.75 | 40.10 |
| ViT-B/32 | CLIP (全数据) | 24.62 | 95.62 | 82.11 | 63.40 | 49.97 | 31.09 |
| ViT-B/32 | Random | 9.12 | - | - | - | - | - |
| ViT-B/32 | SCAN | 23.10+ | 95.5+ | 82.0+ | 63.0+ | 49.5+ | 31.0+ |
SCAN在30%剪枝率下性能几乎无损甚至略有提升(RN101零样本+4.3分),大幅超越静态方法。
MoCo预训练结果(ImageNet, 35%剪枝率)¶
| 方法 | IN Linear Probing | IN Fine-tuning |
|---|---|---|
| MoCo-v3 (全数据) | 76.2 | 83.2 |
| Random | 74.8 | 82.5 |
| SCAN | 75.9 | 83.0 |
在视觉自监督域同样有效,仅0.2-0.3%性能下降。
消融实验¶
| 策略 | IN Zero-Shot (RN101) |
|---|---|
| 静态剪枝(固定比例) | 16.52 |
| 仅剪枝冗余数据 | 19.84 |
| 仅剪枝匹配不良数据 | 18.73 |
| SCAN(动态+两类) | 23.10 |
动态自举优于静态方法6.6分,两类数据的联合剪枝优于单一类型。
关键发现¶
- 对比预训练中存在大量冗余和匹配不良数据,可安全剪枝30-35%
- 动态剪枝显著优于静态方法,因为数据的"重要性"随训练进展而变化
- SCAN的副产品(剪枝后的coreset)作为静态数据集也优于其他coreset选择方法
- 方法在CLIP和MoCo两种范式、7种架构上普遍有效
亮点与洞察¶
- DST类比数据集剪枝的视角新颖——将稀疏训练中"哪些权重重要"的思路迁移到"哪些数据重要"
- 双端剪枝同时去除冗余(低损失)和噪声(高损失)数据
- 余弦退火式自举在剪枝稳定性和效率间取得平衡
- 方法具有强通用性——跨模态(CLIP)和单模态(MoCo)均适用
局限性¶
- 仍需在完整数据集上运行前几个epoch的热身,不能从一开始就剪枝
- batch内的损失比较在不同batch间可比性有限
- 大规模(>10M)数据上的剪枝候选存储和更新有一定开销
- 未探索更极端的剪枝率(如50%+)
相关工作¶
- 数据集剪枝:EL2N(梯度)、Forgetting(遗忘次数)、Influence Functions
- 对比预训练:CLIP、MoCo、SimCLR
- 动态稀疏训练:RigL、SET、DST
- VLP数据过滤:SemDeDup、D-Pruning、DataComp
评分¶
- 创新性: ★★★★☆ — 动态数据集剪枝+对比预训练的交叉创新
- 实用性: ★★★★★ — 30%计算节省且几乎无损,直接减少碳排放
- 实验完整度: ★★★★★ — 16个预训练模型、两种范式、多数据集验证
- 写作质量: ★★★★☆ — 方法描述清晰,类比恰当
相关论文¶
- [ICCV 2025] Training-Free Personalization via Retrieval and Reasoning on Fingerprints
- [ICLR 2026] WebDS: An End-to-End Benchmark for Web-based Data Science
- [ICCV 2025] R1-VL: Learning to Reason with Multimodal Large Language Models via Step-wise Group Relative Policy Optimization
- [ICCV 2025] MM-IFEngine: Towards Multimodal Instruction Following
- [ICCV 2025] MolParser: End-to-end Visual Recognition of Molecule Structures in the Wild