ViRC: Enhancing Visual Interleaved Mathematical CoT with Reason Chunking¶
会议: CVPR 2026 (Main Track)
arXiv: 2512.14654
代码: https://github.com/Leon-LihongWang/ViRC
领域: 多模态VLM / 数学推理
关键词: 视觉数学推理, Reason Chunking, Critical Reasoning Unit, 多模态CoT, 渐进式训练
一句话总结¶
ViRC 提出 Reason Chunking 机制,将多模态数学 CoT 结构化为连续的"关键推理单元(CRU)",模拟人类专家反复审视图像并逐步证明中间命题的过程,通过 CRUX 数据集和渐进式训练策略(Instructional SFT → Practice SFT → Strategic RL),实现ViRC-7B 在数学基准上平均提升 18.8%。
研究背景与动机¶
领域现状:Chain-of-Thought (CoT) 显著提升了 LLM 的推理能力,但在多模态数学领域面临独特挑战——现有 MLLM 通常只从单张静态数学图像读一次,随后做纯文本推理,忽略了推理过程中本应持续发生的动态视觉获取。
现有痛点:这种"看一眼就闷头推"的范式有三处硬伤。其一是单次视觉读取,模型看一次图就开始长链推理,中间不再回看图像,但数学题常常需要反复审视图形的不同局部(这条边、那个角)。其二是推理链断裂,长链 CoT 越往后越容易偏离轨道,因为缺少"检查点"来确认中间结论是否还成立。其三可以用认知科学的 Miller 定律来解释:人类工作记忆容量只有 7±2 块,一条不分段的超长推理链本身就超出了认知负荷。
核心矛盾:现有方法把整道题的解题过程当成一个无差别的长序列,而人类专家其实是把它拆成若干逻辑节点,在每个节点重新看一眼图、验证一个中间命题,再往下走。
核心 idea:把这种节奏显式地搬进模型——引入 Reason Chunking 机制,将 CoT 推理切成连续的 Critical Reasoning Units (CRU)。每个 CRU 内部保持文本推理的连贯性以证明一个中间命题,CRU 之间则重新集成视觉信息来生成下一个命题。
方法详解¶
整体框架¶
ViRC 想解决的是"模型看一次图就闷头推到底"的问题,办法是把一条长 CoT 改造成一串可以反复回看图像的小段落。一道题进来后,推理被组织成有序的关键推理单元 \([\mathrm{CRU}_1, \mathrm{CRU}_2, \dots, \mathrm{CRU}_K]\):每个 \(\mathrm{CRU}_k\) 先去图上取一次它当前需要的局部信息,再基于上一段的结论做一段文字推导,最后落出一个明确的中间命题交给下一段。为了让模型学会这种节奏,作者配套造了带 CRU 边界标注的 CRUX 数据集,并用一套从"学概念"到"磨策略"的三阶段渐进式训练把能力逐层灌进去。下面三个设计依次对应"推理怎么分块""分块怎么教""怎么训得稳"。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
Q["输入:数学图像 + 题目"]
subgraph CRU["CRU 推理结构(设计1·运行时反复执行)"]
direction TB
A["视觉获取<br/>crop/scale/display 取当前局部"] --> B["文本推理<br/>证一个中间命题"]
B --> C["引导问题<br/>交棒给下一个 CRU"]
C -->|未出答案| A
end
Q --> CRU
CRU -->|定义目标行为| DATA
subgraph DATA["CRUX 数据集构建(设计2)"]
direction TB
D1["采样多路径<br/>不同图像尺度→对/错路径"] --> D2["步骤映射到 CRU<br/>同命题步骤归一块"]
D2 --> D3["CRU 视觉接地<br/>配包围框+描述+引导问题"]
end
DATA -->|带 CRU 边界 + 四种认知模式的监督信号| TRAIN
subgraph TRAIN["渐进式训练(设计3)"]
direction TB
T1["Instructional SFT<br/>纯文本掩视觉·学 CRU 结构"] --> T2["Practice SFT<br/>多模态执行工具·学接地"]
T2 --> T3["Strategic RL<br/>难样本·四项奖励磨策略"]
end
TRAIN --> OUT["ViRC-7B<br/>按 CRU 推理出答案"]
关键设计¶
1. Critical Reasoning Unit:给长链推理装上"看图—验证"的检查点
直接针对单次读图和推理链断裂两个痛点。ViRC 不再让模型一口气推完,而是把推理切成若干 CRU,每个 CRU 只负责证明一个中间命题,内部固定走三步:先是视觉获取,用 crop(裁出局部)/ scale(调整分辨率)/ display(回看已取过的视图)这三种视觉工具从数学图里取出这一步真正要看的局部(比如把某个三角形单独裁出来);接着是文本推理,结合刚取到的视觉信息和上一个 CRU 的结论往下推;最后是中间验证,把这一步得到的结论明确写出来,作为下一个 CRU 的输入。这样每个 CRU 既是一个推理单元、也是一个天然检查点——结论一旦写错,下一段就接不上,错误不会被悄悄带到链尾。它本质上是把人做几何题时"看图→想→落一个结论→再回头看图"的循环显式化,每段步数控制在 Miller 定律的 7±2 块之内,正好卡在工作记忆容量里。举个直观的例子:求某图形面积时,\(\mathrm{CRU}_1\) 先裁出底边和高、推出三角形面积,\(\mathrm{CRU}_2\) 再回看图标出被挖去的圆、算出圆面积,\(\mathrm{CRU}_3\) 才把两者相减——每一步都重新看了一次图、留下一个可验证的中间结论。
2. CRUX 数据集:把"何时分块、块间怎么传"变成可学的监督信号
光有 CRU 这个结构还不够,模型得有地方学会在哪里切块、切完怎么把信息递下去,这正是 CRUX 数据集要提供的监督信号。作者在 MINT-CoT 的 5.4 万道数学题上重新生成推理路径,扩充成 10 万条带 CRU 边界标注的样本,每道题既保留一条正确路径、也配两条貌似合理的错误路径,让模型连"哪种拆法会走错"都见过。标注走三步流水线:先采样多路径(在不同图像尺度下让视觉语言模型解题,分别取一条高准确率和一条低准确率的路径,得到对/错两类);再把步骤映射到 CRU(把指向同一中间命题的细粒度步骤归并成一个语义自洽的块);最后给每个 CRU 做视觉接地(检测焦点对象与对应文字、取二者包围框的并集当作该 CRU 的图像区域,并补上图像描述、解题理由和块间引导问题)。每条路径还按四种人类认知模式——规划(Planning)、反思(Reflecting)、验证(Verifying)、回溯(Backtracking)——来组织,并分别落实成对应的工具调用(如 Verifying 插入 display 重看证据、Backtracking 用 scale 重新缩放视图)。多路径叠加多模式,让模型学到的不是死记某条解法,而是"遇到这类结构该怎么分块、走偏了怎么回头"。
3. 渐进式训练:用"学结构→练接地→磨策略"三段把分块能力逐层灌进去
如果一上来就用 RL 直接优化,分块这种结构化行为很难稳定学到,所以训练被拆成三阶段、由强约束逐步放松到自由探索,三段都基于 CRUX 里同一个 5 万条子集。Instructional SFT 先把这个子集当作纯文本数据微调——把工具返回的视觉信号全部掩掉,让模型在没有图像干扰的情况下先记住 CRU 的结构和工具调用格式,即"分块长什么样";Practice SFT 用同一批数据的完整多模态版本继续微调——模型每发出一个工具调用就真的执行、把取回的视觉信号喂回去,逼它学会用接地后的证据完成当前 CRU;Strategic RL 最后在从该子集筛出的难样本上做强化学习,按组采样 rollout,奖励由四部分组成:答案正确性、多模态一致性(用 Qwen2.5-VL-72B 当裁判,文本推理连贯性权重 0.5、视觉与中间命题相关性权重 0.4)、推理模式匹配、输出格式合法性。三段对应人学新技能的"学概念→反复练习→攻坚磨炼",比一步到位更稳。
实验关键数据¶
主实验:数学推理基准¶
| 模型 | MathVerse (%) | MathVista (%) | GeoQA (%) | 平均 |
|---|---|---|---|---|
| LLaVA-1.5-7B | 23.4 | 38.1 | 42.6 | 34.7 |
| Math-LLaVA-7B | 28.9 | 43.5 | 48.2 | 40.2 |
| InternVL2-7B | 31.2 | 46.8 | 51.3 | 43.1 |
| ViRC-7B | 37.1 | 52.4 | 57.8 | 49.1 |
平均提升 +18.8% 对比基线。
消融实验¶
| 配置 | 平均准确率 (%) | 说明 |
|---|---|---|
| Full ViRC | 49.1 | 完整方法 |
| w/o Reason Chunking | 41.3 | 去掉 CRU 结构,做标准长链 CoT |
| w/o Visual Tools | 44.6 | CRU 中不使用视觉工具 |
| w/o Strategic RL | 46.2 | 只做两阶段 SFT |
| w/o Progressive Training | 43.8 | 三阶段合为一次训练 |
关键发现¶
- Reason Chunking 是最关键的贡献——去掉后性能下降 7.8%,说明推理分块对数学推理至关重要
- 视觉工具的动态获取有效——模型通过 CRU 中的视觉工具在推理过程中反复获取图像信息,比一次性读图提升 4.5%
- 渐进式训练显著优于一次性训练——分三阶段逐步提升推理能力,比合并训练提升 5.3%
- 多推理路径的 CRUX 数据增加了推理的鲁棒性
亮点与洞察¶
- 认知科学的启发放在实处——Miller 定律不是装饰性引用,而是真正指导了 CRU 的设计(每个 CRU 的推理步骤控制在 5-7 步)
- "推理的推理"——ViRC 不只是"做推理",更是"以正确的方式组织推理",meta-reasoning 的思路很有深度
- 视觉工具集成自然——不需要外部的 tool-use 框架,视觉获取直接嵌入推理链中
- 18.8% 的平均提升非常显著——在多个基准上一致提升,说明 Reason Chunking 是通用有效的
局限与展望¶
- CRUX 数据集构建依赖详细的 CRU 标注,标注成本较高
- CRU 的粒度目前是固定的(约 5-7 步),自适应调整粒度可能更好
- 仅验证在数学推理上,能否推广到科学推理、代码推理等其他需要结构化思考的领域?
- ViRC-7B 的规模较小,大模型(70B+)上 Reason Chunking 的收益可能不同
- 推理过程中多次视觉获取增加了推理延迟
相关工作与启发¶
- vs Math-LLaVA:Math-LLaVA 为多模态数学提供了数据,但不改变推理结构。ViRC 从推理结构层面创新
- vs LLaVA-CoT:LLaVA-CoT 做长链 CoT 但未分块。ViRC 通过 Reason Chunking 将长链分解为结构化单元
- vs R1-OneVision:R1-OneVision 用 RL 优化推理但不引入视觉工具。ViRC 在每个 CRU 中集成动态视觉获取
- 启发:Reason Chunking 的思路天然适合复杂的多步骤代码生成——将代码生成分解为"理解需求→设计架构→实现函数→单元测试"等 CRU
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ Reason Chunking 机制和 CRU 概念是全新的推理范式,认知科学启发有说服力
- 实验充分度: ⭐⭐⭐⭐ 多基准验证 + 全面消融,18.8% 提升令人信服,但缺少大模型验证
- 写作质量: ⭐⭐⭐⭐ 从认知科学到方法到实验的逻辑链完整
- 价值: ⭐⭐⭐⭐⭐ 为多模态推理提供了新范式,数据集和代码均开源