Dataset Growth (InfoGrowth)¶
会议: ECCV2024
arXiv: 2405.18347
代码: https://github.com/NUS-HPC-AI-Lab/InfoGrowth
领域: multimodal_vlm
关键词: 数据清洗, 在线数据选择, 次模函数, 数据效率, 多模态预训练
一句话总结¶
提出 InfoGrowth,一种高效的在线数据清洗与选择算法,通过近邻搜索估计每个样本的信息增益,实现数据集的持续增长,同时保证清洁度和多样性,在 CC3M 上仅用 1/6 数据即超过全量训练效果。
研究背景与动机¶
- 领域现状:深度学习依赖大规模数据,但网络数据以指数级增长(2024年每天产生 0.33 ZB),LAION-5B、Common Crawl 等超大规模数据集几乎未经清洗
- 现有痛点:人工标注/清洗在今天的数据规模下已不可行;现有清洗方法(如 BLIP 的 bootstrapping)需要在全量数据上训练模型,无法扩展到更大规模;且现有方法多为离线设计,只解决噪声或冗余中的一个问题
- 核心矛盾:数据持续流入但质量参差不齐,噪声和冗余同时存在,"先收集再清洗"的模式效率低下且需要反复进行
- 本文要解决什么:如何在数据流式到达时,一步同时处理噪声和冗余,高效维护一个不断增长且高质量的数据集
- 切入角度:将问题递归化——每个新数据点相对于已有数据集只有三种状态:噪声(需过滤/重标)、冗余(降低采样频率)、新信息(正常加入)。通过嵌入空间中的近邻关系可以高效判断
- 核心idea:用在线近邻搜索替代全量次模函数计算,将每个样本的信息增益估计复杂度从 \(O(n)\) 降到 \(O(\log n)\),实现流式数据的实时质量评估
方法详解¶
整体框架¶
InfoGrowth 是一个流式数据处理 pipeline:输入为流式数据对 \((d_i, c_i)\),经过三个模块后输出干净且多样的数据集: 1. Cleaner:检测噪声样本并重标 2. Gain Calculator:基于 HNSW 近邻搜索计算信息增益 3. Selector/Sampler:根据增益值进行采样
所有数据先通过 BLIP 编码器映射到嵌入空间,后续操作都在嵌入空间中进行。
关键设计¶
- Cleaner(噪声检测与修正):
- 做什么:检测多模态数据中图文不匹配的噪声样本,并尝试修正
- 核心思路:用 BLIP 编码器计算图像和文本嵌入的余弦相似度,低于阈值 \(\delta\) 的判定为噪声。噪声样本通过 MiniGPT-4 重新生成 caption(recaptioning),重标后再次检测,仍不合格则丢弃
-
设计动机:相比 BLIP 原始方法需要额外编码器做 ITM 判断,直接用余弦相似度更高效;用最新的 LLM(MiniGPT-4)做 recaption 质量更好
-
Gain Calculator(信息增益计算):
- 做什么:量化每个样本对数据集的边际信息贡献
- 核心思路:利用 HNSW 在线近似近邻搜索找到 \(k\) 个最近邻,计算该样本与近邻的平均余弦距离作为信息增益:\(Gain_{Info} = mean_i[cos\text{-}dis(d, neighbour_i)]\)。距离越大说明样本越"新颖",增益越高
- 对单模态分类任务,额外引入熵增益:\(Gain_{Entropy} = 1 - p\),其中 \(p\) 是近邻类别正确预测当前样本类别的概率,让决策边界附近的样本获得更高权重
-
设计动机:传统次模函数 \(O(n)\) 复杂度无法扩展到十亿级数据,HNSW 将查询和更新都降到 \(O(\log n)\),同时保持了次模性质(\(U \subseteq V \Rightarrow f(x,U) \geq f(x,V)\))
-
Sampler(采样策略):
- 做什么:根据增益值选择高价值样本
- 静态采样:按增益值归一化的概率 \(\mathcal{P}(x_i) = G_i / \sum G_j\) 无放回采样到目标数量
- 动态两阶段采样:第一阶段按增益概率采样保证全局多样性;第二阶段反转增益 \(G'(x_i) = \max(0.1, 1-G_i)\) 采样保证局部多样性/泛化性。两阶段逐 epoch 交替,可节省 45%+ 训练开销
- 设计动机:纯增益采样可能忽略"常见但重要"的样本,两阶段策略在多样性和泛化之间取得平衡
损失函数 / 训练策略¶
InfoGrowth 本身不改变下游模型的训练损失。BLIP 使用对比损失 + ITM 损失 + LM 损失训练。InfoGrowth 的价值在数据层面——提供更高质量的训练数据。
实验关键数据¶
主实验¶
| 数据集/任务 | 数据量 | COCO TR@1 (zero-shot) | COCO IR@1 (zero-shot) | Flickr TR@1 (finetune) | Flickr IR@1 (finetune) |
|---|---|---|---|---|---|
| CC3M (原始) | 2.71M | 34.7 | 28.0 | 89.2 | 75.1 |
| InfoGrowth | 0.40M | 37.1 (+2.4) | 28.1 (+0.1) | 84.6 | 69.5 |
| InfoGrowth | 0.68M | 41.1 (+6.4) | 32.8 (+4.8) | 89.0 | 74.6 |
| InfoGrowth | 1.35M | 47.7 (+13.0) | 38.1 (+10.1) | 91.5 | 77.7 |
仅用 0.4M 数据(原来的 15%)在 COCO zero-shot 检索上即可超过全量 CC3M,且在 VQA、NLVR2、图像描述等下游任务上也有提升。
消融实验¶
| 配置 | TR@1 | IR@1 | 说明 |
|---|---|---|---|
| Random baseline | 21.8 | 18.7 | 随机选 0.4M |
| + Recaption only | 34.1 | 27.1 | 只做噪声清洗 |
| + Sampling only | 23.9 | 21.0 | 只做增益采样 |
| + Recaption + Sampling | 37.1 | 28.1 | 完整 InfoGrowth |
| Full CC3M (2.7M) | 34.7 | 28.0 | 全量数据对照 |
关键发现¶
- 清洗(recaption)贡献最大,将 TR@1 从 21.8 提升到 34.1;增益采样再提升到 37.1
- 近邻数 \(k=4\) + 算术平均效果最好,\(k\) 过大反而性能下降
- 多模态增益(图像+文本)优于单模态增益
- 在 ImageNet 单模态任务上,50% 数据量下达到 75.8% accuracy,优于 GC (72.8%)、EL2N (74.6%)、UCB (75.3%)
- 方法对 CLIP 架构同样有效,不依赖特定模型结构
- 对人为注入 10%/25% 噪声的场景也有较好的抗噪声能力
亮点与洞察¶
- 在线流式处理设计:不需要"先收集全部数据再处理",适合真实世界数据引擎的持续运行场景,这在大规模数据处理中非常实用
- HNSW 替代全量次模计算:将 \(O(n^2)\) 总开销降到 \(O(n \log n)\),且保持次模性质的理论保证,是一个优雅的工程-理论平衡
- 两阶段动态采样:交替关注全局多样性和局部泛化性,节省 45% 训练开销的同时不损失性能
- 统一的贝叶斯视角:将分类、检索、生成等不同任务的数据集统一为条件分布 \(P(d|c)\) 的视角,为跨任务数据选择提供理论基础
局限性 / 可改进方向¶
- 依赖预训练 BLIP 编码器的质量:如果编码器本身对某类数据表现差,清洗和增益估计都会受影响
- Recaption 依赖 MiniGPT-4,引入额外的计算开销和模型依赖
- 只在 CC3M(2.7M)和 ImageNet-1K 上验证,未在更大规模(如 LAION-5B 级别)上做实验
- 动态采样的两阶段交替策略比较启发式,缺乏关于最优交替频率的理论分析
- 阈值 \(\delta\) 的选取对结果有影响,但论文中未充分讨论自适应 \(\delta\) 的效果
相关工作与启发¶
- vs BLIP bootstrapping:BLIP 需要在全量数据上训练模型做 filter + recaption,InfoGrowth 在嵌入空间中做流式处理,不需要全量训练
- vs DivideMix:DivideMix 用双模型互相监督检测噪声,专注于噪声问题;InfoGrowth 同时处理噪声和冗余
- vs 传统 coreset selection(GC, EL2N, UCB):这些方法需要预先训练模型获得梯度/损失信息,是离线的;InfoGrowth 是在线的且不需要预训练
- 这个数据清洗的思路可以迁移到视频-文本、音频-文本等其他多模态数据的处理
评分¶
- 新颖性: ⭐⭐⭐⭐ 将次模函数+HNSW结合做在线数据选择思路新颖,统一的贝叶斯视角有启发性
- 实验充分度: ⭐⭐⭐⭐ 多模态和单模态都有验证,消融全面,但缺少更大规模数据集的实验
- 写作质量: ⭐⭐⭐⭐ 理论分析清晰,动机到方法推导流畅
- 价值: ⭐⭐⭐⭐ 解决实际问题,方法实用且可扩展,对大规模数据工程有参考价值