[CVPR 2025? 阿里巴巴] CodePercept:代码是视觉感知的终极“高清滤镜”
CodePercept: Code-Grounded Visual STEM Perception for MLLMs
本文提出了 CodePercept,一种通过将可执行 Python 代码作为感知媒介来增强多模态大模型(MLLM)在 STEM 领域视觉感知能力的范式。核心贡献包括 100 万规模的 ICC-1M 数据集以及一个全新的视觉感知基准测试 STEM2Code-Eval。
TL;DR
当多模态大模型(MLLM)做错数学题时,是因为它笨,还是因为它“看不清”?本文通过 Scaling 实验证明,“看不清”(感知缺失)才是 STEM 视觉推理的真正核心瓶颈。为此,阿里 Qwen 团队联合上海交大等机构提出了 CodePercept:通过让模型学习生成可执行代码来精确还原图像,将原本模糊的视觉描述转化为严丝合缝的逻辑代码,从而实现感知能力的跃迁。
1. 痛点:被忽视的“描述失语症”
在 STEM 领域(科学、技术、工程、数学),一张复杂的立体几何图或电路图包含海量的坐标、角度和逻辑连接。
- 传统痛点:自然语言在描述此类数据时存在“失语症”——你很难用一两句话精确描述出辅助线在三维空间中的交点坐标。
- 幻觉风险:目前的图像描述(Caption)数据多由模型蒸馏而来,容易在细节处产生数值幻觉。
作者通过剥离感知(图转文)和推理(文转答)的 Scaling 实验发现,扩大感知模型的参数规模带来的收益远高于扩大推理模型。这意味着,我们急需一种比自然语言更精确、更具结构化的感知中介。
2. 核心机制:以代码为语义基石
CodePercept 的核心直觉是:如果模型能写出一段代码重新画出这张图,那说明模型真的看懂了。
2.1 ICC-1M 数据集生产
作者构建了超过 100 万规模的 Image-Caption-Code (ICC) 三元组。
- FIR (图像重建):将现有 STEM 图像转化为 Matplotlib 代码。
- FID (图像多样化):提取科学定义,重新实例化生成更多样的视觉场景。
- FSG (立体几何合成):针对模型最弱的 3D 空间感,利用参数化模板生成精准的几何图像。
图注:CodePercept 流程图。从数据生产(Part 01)到代码驱动的任务训练(Part 02),最终通过 SFT 和 RL 提升模型性能。
2.2 两大核心训练任务
- Code-Grounded Caption Generation:利用代码作为 Ground-truth 来修正 Caption 中的事实性错误。
- STEM Image-to-Code Translation:直接训练模型将图像翻译为结构化的解释性代码。
3. 实验战绩:以小博大的感知力
实验结果显示,经过代码驱动增强后的 CodePercept-8B 模型,在 STEM 综合表现上甚至超越了参数量大得多的 Qwen2.5-VL-72B。
图注:在各大推理榜单中,使用 CodePercept 增强后的模型作为 Captioner,能显著提升下游 LLM 求解的准确率。
最具创新性的是作者提出的 STEM2Code-Eval 评测。它不再只看题目有没有解对,而是看模型生成的代码还原原图的相似度。这种方法具有确定性和可验证性——代码跑不跑得通、画出来的图和原图重合度高不高,是衡量感知能力最硬的标准。
4. 深度洞察:为什么代码比自然语言好?
- 零偏差语义:在代码里,
plt.plot([0,1], [0,1])对应的永远是确定的像素路径。 - 闭环验证:代码自带“评估器”(解释器)。如果模型生成的感知结果逻辑不通,执行时就会报错。
- 强化学习的天然奖赏:由于代码可以执行,系统可以基于“执行成功率”和“渲染图相似度”提供极高质量的 Reward 信号。
5. 总结与局限
CodePercept 证明了在 MLLM 时代,代码不仅仅是工具,更是一种高保真的视觉表示协议。
局限性:目前主要依赖 Matplotlib 绘图库,对于自然场景图像(照片级)的感知提升有限。但在 STEM 这一类重逻辑、重空间关系的领域,这已经打开了一扇通往“像素级理解”的大门。
Senior Editor's Note: 该工作最深刻的意义在于它挑战了“MLLM 只需要堆推理数据”的固有认知。在 STEM 任务中,如果模型的眼睛是模糊的,大脑再强也无济于事。将代码引入感知流水线,实际上是为模型打通了一条“符号逻辑”与“视觉像素”之间的光纤直连。
