会议 :CVPR 2025(Open Access 版本,pp. 26262--26273)
机构 :FAIR at Meta,UCLA
数据 :https://huggingface.co/datasets/facebook/HoneyBee
一句话总结:一篇"数据配方"论文------通过严格控制训练/评测设置,系统消融了 VL reasoning CoT 数据的三大设计维度(context 来源、data intervention、scaling 轴),并据此构建了 2.5M 规模的 HoneyBee 数据集。
1. Motivation
现在的强 VLM(GPT-4o、o3、Gemini-2.5、Llama-4)在视觉推理上的表现,很大程度上来自在高质量合成 CoT 数据上的后训练。但问题在于:这些多模态 CoT 数据集和它们的构建配方几乎都是闭源的,设计空间里的关键问题没人系统回答过。作者把 gap 归纳成三条:
- Context(image--question pair)来源的影响不清楚。Math-LLaVA、LLaVA-CoT 等工作各自从已有 image QA 数据集里挑分布、各自设计 CoT 生成策略,导致最终模型的推理性能里有多少来自 context 本身的质量、多少来自 CoT 生成方式,完全无法解耦。
- Data intervention 的探索太窄。已有工作只验证过 visual perturbation、difficulty filtering 之类少数几种干预,其他可能提升数据质量的手段基本是空白。
- Scaling 的轴不明确。VL 数据比纯文本多了图像这个维度,到底该沿"图像数量 / 每张图的问题数 / 每个 (image, question) 的 CoT 数"哪个轴扩,没有结论。
除此之外还有一个方法论层面的动机,我觉得是这篇文章最值得强调的部分:缺乏公平且鲁棒的对比。作者主张,衡量一个设计选择的直接效果,必须固定训练设置(从同一个 base model 开始 SFT)和评测协议;为了鲁棒性,还要在多个模型规模(3B / 8B)上训练、在一组评测集而非单个数据集上评。这套"控制变量做数据消融"的做法,才是整篇文章的骨架。
2. Related Work
论文没有独立的 Related Work 章节,相关工作散在 Introduction 和 Preliminaries 里,大致可归为四类:
(1) 文本推理的数据配方。已有大量工作表明 SFT 阶段 CoT 数据的质量对 LLM 推理至关重要(OpenThoughts、Llama-Nemotron、s1、Sky-T1),并且是后续 RL 训练的基础(AceReason-Nemotron)。HoneyBee 本质上是把 OpenThoughts 那套"data recipe"的研究范式搬到了 VL 空间。
(2) VL reasoning 数据集构建。Math-LLaVA、LLaVA-CoT、R1-OneVision、ViRL、ThinkLite-VL-Hard、MMK12、VisualWebInstruct------这些既是本文的对比对象,也是本文 context 来源的候选池。作者的批评是它们把"context 选择"和"CoT 生成策略"耦合在一起了。
(3) 数据干预手段。视觉扰动提升多模态数学推理(Vision Matters)、text-rich 视觉推理(ConTextual)、以及 replacement(Rephrasing the Web)/ augmentation / filtering(DataComp)三类通用数据操作范式。
(4) 训练范式。用大 generator 给小 student 生成数据属于知识蒸馏;generator 自己当 student 是 self-improvement(ReST-EM);用弱模型数据训强模型是 weak-to-strong reasoning。本文主体走的是第一条路线,但在 Appendix 里也验证了 self-improvement 场景。
3. Method

3.1 问题形式化
源数据集 D={(Ij,Qj,Aj)}j=1N\mathcal{D} = \{(I_j, Q_j, A_j)\}{j=1}^ND={(Ij,Qj,Aj)}j=1N,其中 AjA_jAj 是可选的最终答案。合成数据生成器 G\mathcal{G}G 产出 CoT:Cj=G(Ij,Qj)C_j = \mathcal{G}(I_j, Q_j)Cj=G(Ij,Qj),其中 Cj=Sj;PjC_j = S_j; P_jCj=Sj;Pj,SjS_jSj 是包含 step-by-step 求解、planning、self-verification、self-reflection 的推理步骤,PjP_jPj 是预测答案。合成数据记为 DG={(Ij,Qj,Cj,Aj)}\mathcal{D}{\mathcal{G}} = \{(I_j, Q_j, C_j, A_j)\}DG={(Ij,Qj,Cj,Aj)}。
训练目标就是标准 SFT:
E(Ij,Qj,Cj)∈DGlogpθ(Cj∣Ij,Qj)\mathbb{E}{(I_j,Q_j,C_j)\in\mathcal{D}\mathcal{G}}\left\\log p_\\theta(C_j \\mid I_j, Q_j)\\rightE(Ij,Qj,Cj)∈DGlogpθ(Cj∣Ij,Qj)
3.2 三阶段数据构建 pipeline
阶段一:Context Curation
- Sourcing:单独用每个源数据集的 (image, question) 生成 CoT、训练模型、按下游平均准确率排名。
- Mixing:把上一阶段的 top-2 / top-4 / 全部数据混合,各采样 50K 子集。
阶段二:Data Interventions
在最优数据基础上做定向干预,分两类目标------感知增强 和问题求解增强。
感知增强(Perception Enhancement):
| 干预 | 做法 | 类型 |
|---|---|---|
| visual perturbation | 对原图做旋转、拼接 distractor、dominance-preserving mixup | augmentation |
| text-rich images | 把问题和原图程序化地嵌到不同颜色的空白背景上生成新图 | augmentation |
| perceptual redundancy | 过滤掉"generator 不看图也能答对"的样本 | filtering |
| shallow perception | 过滤掉"generator 只看 question + caption 就能答对"的样本 | filtering |
| caption and solve | 在 CoT 中前置模型生成的图像 caption 作为辅助视觉信号 | replacement |
其中 caption and solve 的输出格式是:
<caption> description </caption> solution \boxed{answer}
问题求解增强(Problem-Solving Enhancement):
| 干预 | 做法 |
|---|---|
| text-only reasoning | 混入高质量纯文本推理数据(OpenThoughts) |
| increased distractors | 把原题改成十选项,并相应改写 CoT |
| length | 按 CoT 长度对半切,只训长的那一半,鼓励更长的推理 |
| difficulty | 过滤使各难度等级分布大致均衡,整体提难 |
阶段三:Scaling
三个轴分别做 DN/8,DN/4,DN/2,DN\\mathcal{D}_{N/8}, \\mathcal{D}_{N/4}, \\mathcal{D}_{N/2}, \\mathcal{D}_NDN/8,DN/4,DN/2,DN 的规模消融:
- scaling images:随机采样子集(等价于扩 unique image 数)
- scaling questions:用 question generator 基于 (image, question) 生成合理、可解、难度相近的新问题
- scaling CoTs:对同一 (image, question) 增加 CoT trace 数量
3.3 HoneyBee 数据集的组装
- 取 ViRL 的全部真实数据:39K 个 (image, question, answer) 三元组;
- 每个真实 (image, question) 生成 16 条 CoT,过滤掉最终答案错误的,得到约 400K 实例;
- 每张图额外生成 14 个新问题 (合计每图 15 个问题)。新问题没有 ground-truth answer,于是每题生成 4 条 CoT,用 majority voting(答案出现 ≥3 次)近似最终答案,只保留与该 proxy answer 一致的 CoT,得到约 1M 实例;
- 为所有图像生成 caption,按 caption-and-solve 格式组合成 (image, question, (caption, solution CoT)),得到 1.5M 的 VL 子集;
- 与 1M 纯文本推理数据 合并 → 最终 2.5M。
数据统计:28K unique images,350K unique questions,平均 CoT 长度约 600 词(780 tokens)。
3.4 Shared Caption 解码(高效 test-time scaling)
观察:HoneyBee 的每条 CoT 天然可拆成理解部分 ICI^CIC(caption tokens)和求解部分 SSS,即 C=IC;SC = I\^C; SC=IC;S。
朴素的 self-consistency TTS 要生成 NNN 遍完整 CoT,开销是 N×(LC+LS)N \times (L_C + L_S)N×(LC+LS)。shared captions 的做法是:只生成一次完整 CoT 得到 (I1C,S1)(I_1^C, S_1)(I1C,S1),之后把 I1CI_1^CI1C 复用为后续 N−1N-1N−1 次求解的 context,开销降到 LC+N×LSL_C + N \times L_SLC+N×LS。
这一步设计得挺巧------它其实是把训练阶段的 caption-and-solve 格式,在推理阶段兑现成了一次计算红利。
4. Experiments
4.1 实验设置
- 源数据集 (6 个):ViRL、Math-LLaVA、R1-OneVision、ThinkLite-VL-Hard、LLaVA-CoT、MMK12。每个截断到 50K,用 pHash 精确去重做评测集去污染。
- Generator:Llama4-Scout(109B 总参 / 17B 激活),单 A100 节点上用 vLLM 推理。
- Student :PLM-3B / PLM-8B(Perception Language Models)。选它的理由很关键------PLM 本身没有 VL CoT 指令数据,生成不了 CoT,所以是干净的 base model,不会有既有 reasoning 能力污染消融结论。
- 验证集(hill-climbing 用):MathVerse (vision-only)、MathVista、MathVision、MMMU-Pro (vision)、We-Math,五个数据集在 3B/8B 两次训练上取平均。
- 额外测试集:DynaMath、LogicVista(未参与数据构建)、HallusionBench(视觉感知)、MATH500 / GPQA(纯文本推理)。
- 解码 :greedy,max length 2048,统一要求
\boxed{}格式。
4.2 主要结果
(a) Context sourcing 影响显著(Table 2)
| Dataset | Avg. | PLM-3B | PLM-8B |
|---|---|---|---|
| ViRL | 40.1 | 38.8 | 41.3 |
| MathLLaVA | 37.7 | 36.3 | 39.2 |
| R1-Vision | 37.3 | 35.7 | 38.8 |
| ThinkLite | 37.1 | 34.6 | 39.5 |
| LLaVA-CoT | 36.3 | 34.6 | 37.9 |
| MMK12 | 36.0 | 34.6 | 37.3 |
最好和最差之间有 11.4% 的相对差距(40.1 vs 36.0)。
(b) Mixing 反而没用。top-2 / top-4 / all 的混合都没超过单独用 ViRL。作者的解释是异构分布带来了冲突偏置。这是个反直觉的负结果。
© 大部分 intervention 都失败了(Table 3,baseline = 40.1)
| Method | Skill | Average |
|---|---|---|
| Original Data | -- | 40.1 |
| Perception Enhancement | ||
| Caption and Solve | Auxiliary Signal | 41.4 |
| Visual Perturb | Robustness | 38.5 |
| Text-Rich Images | Synthetic Images | 38.8 |
| Perceptual Redundancy | Feasibility wo/ image | 36.5 |
| Shallow Perception | Feasibility w/ caption | 35.6 |
| Problem-solving Enhancement | ||
| Text-Only Data | Cross-modal transfer | 43.1 |
| Increased Distractors | Robustness | 34.6 |
| Length | Long Thinking | 36.4 |
| Uniform Difficulty | Hardness | 34.6 |
十个干预里只有两个有效:caption-and-solve(+3.3% 相对)和混入纯文本推理数据(+7.5% 相对)。其余八个全部低于 baseline,有的(increased distractors、uniform difficulty)掉了 5.5 个点。
(d) 三个 scaling 轴全都单调有效(Figure 3)。images / questions / CoTs 在 3B 和 8B 上都随规模稳定提升,没有饱和迹象。
(e) 主结果(Table 1):PLM-HoneyBee 在 1B / 3B / 8B 三个规模上都拿到同级最优平均分。
| 规模 | 模型 | Average |
|---|---|---|
| 1B | InternVL-3-1B-Instruct | 28.3 |
| 1B | PLM-HoneyBee-1B | 36.2 |
| 3B | Qwen2.5-VL-3B-Instruct | 42.6 |
| 3B | PLM-HoneyBee-3B | 46.2 |
| 8B | Qwen2.5-VL-7B-Instruct | 48.5 |
| 8B | PLM-HoneyBee-8B | 49.8 |
相对提升分别为 28% / 8.4% / 2.7%------可以看出规模越大收益越小。同时在 50K → 250K → 2.5M 的 scaling 中,性能到 2.5M 仍未饱和。
(f) RL 可叠加(Table 5):在 PLM-HoneyBee-3B 上用 GRPO + VL verifiable data 继续训练,44.3 → 46.2,超过 OpenVLThinker-v1.2-3B(42.3)9.2% 相对。说明 HoneyBee SFT 是个不错的 RL warm start。
(g) Shared caption 的效率 :MathVista 上 N=64N=64N=64、temperature 0.7,朴素方法 42.6K tokens(671/次),shared caption 只要 24.5K tokens(280 captioning + 390 solving),减少 73% token 与 FLOPs 且精度不掉。
5. Conclusion
论文的落点是一个高质量、大规模的 VL 推理数据集 HoneyBee,以及一套可复现的数据配方研究方法论。作者自己列出的 future work 有两条:
- 把这些洞见推广到 reasoning 之外的通用 VL 数据构建(比如 VQA);
- 目前只做了单图,多图推理的数据构建还没碰。
6. 个人思考
① 这篇文章最大的价值可能是那八个负结果,而不是最终的数据集。
十个 intervention 里八个掉点,而且掉点的那些恰恰是 motivation 写得最漂亮的:过滤掉"不看图也能答对"的样本(perceptual redundancy)听起来天经地义------不是应该逼模型依赖视觉输入吗?结果掉了 3.6 个点。我的猜测是这类过滤在删掉"视觉冗余"的同时也删掉了大量简单样本,破坏了训练分布的难度梯度;uniform difficulty 掉到 34.6 也指向同一个解释------把数据整体提难,对一个从零开始学 CoT 格式的 base model 来说未必是好事。也就是说,"数据里必须包含的信息"和"对训练有用的样本"根本不是一回事。
② 有效的两个干预,本质上都是在补"跨模态之外"的东西。
caption-and-solve 是把视觉理解从隐式解码变成显式的中间监督;text-only reasoning 干脆连图都不要了,靠纯文本推理数据做 cross-modal transfer,还拿了最大涨幅(+7.5%)。这两个加在一起挺讽刺:提升 VL 推理最有效的两个手段,都不是让模型"更好地看图",而是让模型"更好地把看到的东西写出来 / 更会推理"。 这也和最终数据集 2.5M 里有 1M 是纯文本的构成相呼应。