跳转至

Dataset Growth (InfoGrowth)

会议: ECCV2024
arXiv: 2405.18347
代码: https://github.com/NUS-HPC-AI-Lab/InfoGrowth
领域: multimodal_vlm
关键词: 数据清洗, 在线数据选择, 次模函数, 数据效率, 多模态预训练

一句话总结

提出 InfoGrowth,一种高效的在线数据清洗与选择算法,通过近邻搜索估计每个样本的信息增益,实现数据集的持续增长,同时保证清洁度和多样性,在 CC3M 上仅用 1/6 数据即超过全量训练效果。

研究背景与动机

  1. 领域现状:深度学习依赖大规模数据,但网络数据以指数级增长(2024年每天产生 0.33 ZB),LAION-5B、Common Crawl 等超大规模数据集几乎未经清洗
  2. 现有痛点:人工标注/清洗在今天的数据规模下已不可行;现有清洗方法(如 BLIP 的 bootstrapping)需要在全量数据上训练模型,无法扩展到更大规模;且现有方法多为离线设计,只解决噪声或冗余中的一个问题
  3. 核心矛盾:数据持续流入但质量参差不齐,噪声和冗余同时存在,"先收集再清洗"的模式效率低下且需要反复进行
  4. 本文要解决什么:如何在数据流式到达时,一步同时处理噪声和冗余,高效维护一个不断增长且高质量的数据集
  5. 切入角度:将问题递归化——每个新数据点相对于已有数据集只有三种状态:噪声(需过滤/重标)、冗余(降低采样频率)、新信息(正常加入)。通过嵌入空间中的近邻关系可以高效判断
  6. 核心idea:用在线近邻搜索替代全量次模函数计算,将每个样本的信息增益估计复杂度从 \(O(n)\) 降到 \(O(\log n)\),实现流式数据的实时质量评估

方法详解

整体框架

InfoGrowth 是一个流式数据处理 pipeline:输入为流式数据对 \((d_i, c_i)\),经过三个模块后输出干净且多样的数据集: 1. Cleaner:检测噪声样本并重标 2. Gain Calculator:基于 HNSW 近邻搜索计算信息增益 3. Selector/Sampler:根据增益值进行采样

所有数据先通过 BLIP 编码器映射到嵌入空间,后续操作都在嵌入空间中进行。

关键设计

  1. Cleaner(噪声检测与修正)
  2. 做什么:检测多模态数据中图文不匹配的噪声样本,并尝试修正
  3. 核心思路:用 BLIP 编码器计算图像和文本嵌入的余弦相似度,低于阈值 \(\delta\) 的判定为噪声。噪声样本通过 MiniGPT-4 重新生成 caption(recaptioning),重标后再次检测,仍不合格则丢弃
  4. 设计动机:相比 BLIP 原始方法需要额外编码器做 ITM 判断,直接用余弦相似度更高效;用最新的 LLM(MiniGPT-4)做 recaption 质量更好

  5. Gain Calculator(信息增益计算)

  6. 做什么:量化每个样本对数据集的边际信息贡献
  7. 核心思路:利用 HNSW 在线近似近邻搜索找到 \(k\) 个最近邻,计算该样本与近邻的平均余弦距离作为信息增益:\(Gain_{Info} = mean_i[cos\text{-}dis(d, neighbour_i)]\)。距离越大说明样本越"新颖",增益越高
  8. 对单模态分类任务,额外引入熵增益:\(Gain_{Entropy} = 1 - p\),其中 \(p\) 是近邻类别正确预测当前样本类别的概率,让决策边界附近的样本获得更高权重
  9. 设计动机:传统次模函数 \(O(n)\) 复杂度无法扩展到十亿级数据,HNSW 将查询和更新都降到 \(O(\log n)\),同时保持了次模性质(\(U \subseteq V \Rightarrow f(x,U) \geq f(x,V)\)

  10. Sampler(采样策略)

  11. 做什么:根据增益值选择高价值样本
  12. 静态采样:按增益值归一化的概率 \(\mathcal{P}(x_i) = G_i / \sum G_j\) 无放回采样到目标数量
  13. 动态两阶段采样:第一阶段按增益概率采样保证全局多样性;第二阶段反转增益 \(G'(x_i) = \max(0.1, 1-G_i)\) 采样保证局部多样性/泛化性。两阶段逐 epoch 交替,可节省 45%+ 训练开销
  14. 设计动机:纯增益采样可能忽略"常见但重要"的样本,两阶段策略在多样性和泛化之间取得平衡

损失函数 / 训练策略

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结合做在线数据选择思路新颖,统一的贝叶斯视角有启发性
  • 实验充分度: ⭐⭐⭐⭐ 多模态和单模态都有验证,消融全面,但缺少更大规模数据集的实验
  • 写作质量: ⭐⭐⭐⭐ 理论分析清晰,动机到方法推导流畅
  • 价值: ⭐⭐⭐⭐ 解决实际问题,方法实用且可扩展,对大规模数据工程有参考价值