CodePercept: Code-Grounded Visual STEM Perception for MLLMs

该论文提出"CodePercept"框架,通过构建包含100万组“图像 - 描述 - 代码”三元组的大规模数据集(ICC-1M)及新基准(STEM2Code-Eval),利用可执行代码作为精确的感知媒介来增强多模态大模型在 STEM 领域的视觉感知能力,并证实了提升感知能力比单纯提升推理能力更能有效解决 STEM 视觉推理难题。

Tongkun Guan, Zhibo Yang, Jianqiang Wan, Mingkun Yang, Zhengtao Guo, Zijian Hu, Ruilin Luo, Ruize Chen, Songtao Jiang, Peng Wang, Wei Shen, Junyang Lin, Xiaokang Yang

发布于 2026-03-12
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文提出了一种名为 CodePercept 的新方法,旨在解决多模态大模型(MLLMs)在**科学、技术、工程和数学(STEM)**领域“看图解题”时经常犯错的难题。

简单来说,作者发现了一个核心问题:模型不是“想”得不够聪明,而是“看”得不够仔细。

下面我用几个生动的比喻来为你拆解这篇论文的核心内容:

1. 核心发现:是“视力”问题,不是“智商”问题

想象一下,你让一个超级天才(大模型)做一道复杂的几何题。

  • 传统观点:大家觉得他做错了,是因为他逻辑推理能力不够强(智商不够),于是拼命给他做逻辑训练,让他“多思考”。
  • 作者发现:作者做了一个实验,把“看图”和“解题”拆开。他们发现,如果只提升模型的**“视力”(感知能力),解题成绩提升巨大;但如果只提升“逻辑”(推理能力)**,成绩却提升有限。
  • 结论:现在的模型就像是一个**“近视眼天才”**。他脑子里的逻辑很强大,但因为看不清图上的细节(比如线条的精确位置、数字的具体大小),导致推理的基础全是错的。治好“近视”,比训练“逻辑”更重要。

2. 解决方案:用“代码”当“眼镜”

既然模型看不清,怎么帮它看清呢?作者没有让它继续用模糊的“自然语言”(比如“这里有个红色的圆”)来描述图片,因为语言太模糊,容易产生幻觉(比如把 3 个圆看成 4 个)。

作者提出:让模型用“代码”来描述图片。

  • 比喻
    • 自然语言描述:就像你口头告诉画家“画个大概的三角形,大概在这个位置”。画家画出来可能歪歪扭扭,位置也不对。
    • 代码描述:就像你给画家一张精确的施工图纸,上面写着:“在坐标 (0,0) 画一条线,长度 5,角度 90 度”。
  • 为什么代码好? 代码是可执行的。如果模型生成的代码能完美画出原图,那就证明它真的“看”懂了图里的每一个细节(位置、数量、关系)。代码没有歧义,是检验“视力”的金标准

3. 三大法宝:如何训练这个“近视眼”?

为了训练模型学会用“代码”看世界,作者做了三件大事:

A. 制造了 100 万张“图纸” (ICC-1M 数据集)

他们构建了一个巨大的数据库,包含 100 万个“图片 - 文字描述 - 代码”的三元组。

  • 做法:他们不仅让模型看图写代码,还通过三种方式生成数据:
    1. 复刻:把现有的数学题图片转成代码。
    2. 变奏:提取数学原理,生成成千上万种新变体(比如把多米诺骨牌变成圆形排列、三角形排列),让模型见识各种情况。
    3. 立体几何:专门针对最难画的立体图形,用模板生成代码,弥补模型在空间想象上的短板。

B. 两种新训练任务

  1. 代码辅助写描述:先让模型生成精确的代码,再根据代码写出准确的文字描述。这就像先有了精确的施工图,再写装修说明书,彻底消除了“瞎编乱造”(幻觉)。
  2. 看图直接写代码:直接训练模型看到图就写出能画出该图的代码。这强迫模型必须关注每一个像素和几何关系,不能含糊其辞。

C. 发明了“照妖镜” (STEM2Code-Eval 评测基准)

以前的评测是看模型能不能做对题,但这不能区分是“看对了”还是“蒙对了”。

  • 新方法:给模型一张图,让它写代码把图重新画出来
  • 评判标准:代码能不能运行?画出来的图跟原图像不像?如果画得一模一样,说明模型真的“看”懂了。这就像考厨师,以前是问他“怎么做宫保鸡丁”,现在是让他真的做出来,味道对了才算过。

4. 实验结果:效果惊人

经过这种“代码 grounding"(代码落地)的训练,模型的表现有了质的飞跃:

  • 小模型逆袭:一个只有 80 亿参数的小模型,经过训练后,在数学视觉推理上的表现,竟然超过了那些几百亿参数的“巨无霸”模型。
  • 精准度提升:在需要极高精度的任务中(比如数清楚图里有多少个点、线连在哪里),模型不再犯低级错误。

总结

这篇论文告诉我们一个道理:在科学和数学的世界里,模糊的“感觉”是靠不住的,精确的“逻辑构建”才是王道。

作者给多模态大模型戴上了一副**“代码眼镜”**,让它们不再靠模糊的直觉去猜图,而是通过编写精确的“施工图纸”(代码)来理解世界。这不仅治好了模型的“近视眼”,还让它们在 STEM 领域真正具备了“火眼金睛”。

一句话概括:别光教模型怎么“想”,先教它怎么通过写代码把图“画”对,它自然就变聪明了。