CodePercept: Code-Grounded Visual STEM Perception for MLLMs¶
会议: CVPR 2026
arXiv: 2603.10757
代码: GitHub
领域: 多模态大模型 / STEM 视觉推理
关键词: MLLM, STEM推理, 视觉感知, 代码生成, 强化学习
一句话总结¶
通过感知-推理解耦缩放实验证明 MLLM 在 STEM 任务中的瓶颈是感知而非推理,提出以可执行代码为感知介质的 CodePercept 范式,构建 ICC-1M 数据集和 STEM2Code-Eval 基准,系统性提升 MLLM 的 STEM 视觉感知能力。
背景与动机¶
当 MLLM 在 STEM(数学、物理、化学、工程)视觉推理任务失败时,现有研究大多聚焦于提升推理能力(如 RL、思维链等),但一个根本性问题尚未回答:失败的根源是感知不足还是推理不够? 作者通过系统性的缩放分析,将任务解耦为感知(image→caption)和推理(caption→answer)两阶段,独立缩放各组件发现:扩展感知能力的收益始终大于扩展推理能力。此外,现有评估方法仅通过问题解决准确率间接衡量感知,无法直接评估全面的视觉理解能力。知识蒸馏生成描述也面临幻觉和"描述失语"(复杂空间关系难以用自然语言完整表达)的问题。
核心问题¶
- 感知与推理的瓶颈归因:MLLM 在 STEM 中的失败更多来自感知不足
- 自然语言在描述复杂 STEM 图形时存在固有的模糊性和不完整性
- 缺少直接评估 STEM 视觉感知能力的范式
方法详解¶
整体框架¶
CodePercept 以"代码即感知介质"为核心思想:要求模型生成可执行 Python 代码来重建图像,只有完整准确的视觉理解才能实现高保真重建。框架包含数据构建(ICC-1M)、两个代码驱动训练任务、以及 SFT+RL 两阶段训练。
关键设计¶
- ICC-1M 数据集构建: 通过三条并行管线生成 100 万+ 图像-描述-代码三元组:(1) Image Reproduction 从现有 STEM 图直接生成代码;(2) Image Diversity 提取种子图的科学原理并重新实例化生成多样变体;(3) Solid Geometry Synthesis 用参数化模板生成立体几何。经过图像质量、代码质量、图-代码一致性三重质控。
- Code-Grounded Caption Generation: 利用代码执行日志(execution tracer)提取验证过的视觉事实,与直接描述融合,消除数值、空间关系上的幻觉。关键在于代码本身作为 ground truth,结合执行追踪器解决复杂代码分析困难。
- STEM Image-to-Code Translation: 训练模型直接生成带解释性注释的重建代码,先由 MLLM 生成解释性草稿,再用 ground-truth 代码纠正事实错误,保留教学结构。
- STEM2Code-Eval 基准: 1000 张人工标注图像,要求模型生成可执行代码重建原图,三阶段管线(代码智能体生成、候选筛选、人工标注)确保高质量。
损失函数 / 训练策略¶
- Stage 1 (SFT): 基于 Qwen3-VL 同时优化 image-caption 和 image-to-code 两个任务,用 SWIFT 在 32 A100 上训练 1 epoch,学习率 3e-6 cosine 衰减
- Stage 2 (RL): 使用 GRPO 仅对代码生成进行强化学习,10k 样本,奖励由格式奖励(代码格式验证)+ 内容奖励(执行成功性 + GPT-4o 代码语义评分 + GPT-4o 图像相似度评分)组成
实验关键数据¶
| 评估类型 | 模型 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|---|
| 感知评估(captioner-solver) | CodePercept-8B-S1 vs Qwen3-VL-8B | 6 STEM benchmark 平均 | 63.32% | 60.36% | +3.0% |
| 感知评估(captioner-solver) | CodePercept-32B-S1 vs Qwen3-VL-32B | 6 STEM benchmark 平均 | 67.30% | 64.63% | +2.7% |
| STEM2Code-Eval | CodePercept-8B-R1 | Avg Score | 48.65 | 28.41(基线) | +20.2 |
| STEM2Code-Eval | CodePercept-32B-R1 | Avg Score | 65.75 | 38.42(基线) | +27.3 |
| STEM2Code-Eval | CodePercept-8B-R1 | Exec Rate | 93.4% | 85.3%(基线) | +8.1% |
消融实验要点¶
- 三条数据管线逐步叠加效果:IR→ID→SG 平均分从 60.91→62.15→62.75
- Code-Grounded Caption 比 Native Caption(直接用 Gemini 描述)高 2.0%,验证了代码消除幻觉的有效性
- 同时训练 caption+code 比单独训练 caption 再高 0.6%,说明两种模态互补
亮点¶
- "感知优先于推理"的发现改变了 MLLM 改进的思路方向,提供了清晰的实证
- 用代码作为感知评估介质既巧妙又严谨:代码是确定性的、可执行验证的
- Code-Grounded Caption 利用代码执行追踪器消除幻觉是一个可迁移的通用思路
- ICC-1M 中 Image Diversity 管线的"原理抽取→多样实例化"策略具有数据扩展的方法论价值
局限性 / 可改进方向¶
- 仅基于 matplotlib 生成代码,无法覆盖需要交互式或 3D 渲染的 STEM 图形
- 感知-推理解耦分析依赖于当前的流水线架构,端到端模型中边界可能不同
- RL 阶段依赖 GPT-4o 作为奖励模型,成本高且引入了外部模型偏差
- STEM2Code-Eval 仅覆盖 matplotlib 可重建的图形类型
与相关工作的对比¶
- 与 Perception-R1、Vision-R1 等聚焦推理的工作形成互补:CodePercept 证明感知才是瓶颈
- 与 OmniCaptioner 的 captioner-solver 评估范式不同:OmniCaptioner 仅衡量问题相关信息,CodePercept 要求全面视觉理解
- 与 UI/Chart/SVG 等领域特定代码生成不同,CodePercept 面向通用 STEM 领域,且代码同时服务于评估和训练
启发与关联¶
- 代码作为感知介质的思路可推广到其他需要精确空间理解的领域(如 CAD、建筑平面图)
- 数据合成中"原理抽取→多样化实例化"的策略可用于其他数据增强场景
- 缩放分析方法论(独立缩放各组件)可用于诊断其他多模块系统的瓶颈
评分¶
- 新颖性: ⭐⭐⭐⭐ 感知瓶颈的实证发现和代码作为感知介质的范式都有创新性
- 实验充分度: ⭐⭐⭐⭐⭐ 6 个 STEM benchmark + 自建评测 + 详尽消融,4B/8B/32B 三个尺度
- 写作质量: ⭐⭐⭐⭐ 逻辑清晰,motivation 到方法到实验链条完整
- 价值: ⭐⭐⭐⭐ 对 MLLM 感知能力的改进方向有重要指导意义