雷锋网 05-19
代码驱动的视觉感知:为什么说「看得懂代码」才是大模型攻克理科题的真正钥匙
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

代码驱动的视觉感知,正在为大模型补上「看」这门必修课。

    作者丨陈淑瑜

    编辑丨岑   峰

                                                                                                               

如果把过去几年多模态大模型在 STEM 领域的进展放在一起审视,会发现一个相当微妙的错位。研究者们几乎把全部精力都押在了推理能力的提升上,强化学习、思维链、自我纠错……各种花式推理策略层出不穷,模型在文本推理基准上的得分也确实在节节攀升。

但一个尴尬的事实始终摆在那里:当模型被丢进一道需要看图才能解答的几何题时,它依然经常给出让人啼笑皆非的答案。

这中间到底出了什么问题?

过去,业界习惯性地把锅甩给 " 推理能力不足 ",认为只要把 CoO 做得更长、把 RL 奖励设计得更精巧,模型自然能在视觉推理任务上迎头赶上。于是大量的工作涌向推理链路优化,视觉感知端却几乎被当成了一个 " 已经够用 " 的黑箱。

但上海交通大学人工智能研究院与 Qwen 团队联合提出的 CodePercept(代码驱动的视觉感知),则给出了一个截然不同的诊断结果:

当前阶段,限制大模型 STEM 视觉推理的真正瓶颈,并非是推理能力,而是视觉感知。

论文地址:https://arxiv.org/pdf/2603.10757

开源代码:https://github.com/TongkunGuan/Qwen-CodePercept

这不是一个随意的猜想。团队的诊断方式非常系统,他们将 STEM 视觉推理任务解耦为 " 感知 " 和 " 推理 " 两个阶段,分别扩展其中一个能力、同时保持另一个能力不变。结果证明,扩展感知能力带来的性能提升,始终优于扩展推理能力。

图 1:扩展感知优于扩展推理

换句话说,模型的 " 眼神 " 远比我们想象的更差,而解决 " 眼神差 " 的问题,带来的边际收益远超继续优化 " 脑子 "。

01

自然语言的天花板

一旦确认 " 感知才是短板 ",接下来的问题就是:如何提升感知?

一个直觉方案是:用强大的闭源模型去生成图像描述(Caption),然后做知识蒸馏。既然 GPT-5 和 Claude 看得懂,让它们当老师不就行了?

但研究团队在实际操作中发现了一个更深层的问题:自然语言是模糊的,表达能力存在上限,很难非常精准地描述一个场景。

想象一下,你要用文字去精确描述一个三维四面体的空间结构,包括每条棱的长度、每个面的倾斜角、辅助线的空间走向。即便你用上了 " 位于左下角 45 度方向、长度为 3.2cm、与水平面夹角 30 度 " 这样精确的语言,描述依然是模糊的。因为自然语言本质上就是为 " 大概意思 " 而生的媒介,它天然缺乏数学层面的精确性。

更致命的是,这种描述的模糊性还会在被 AI 生成描述的过程中进一步放大。

团队将这个问题概括为自然语言的 " 描述性失语 "。

但如果说自然语言是 " 模糊 " 的,那什么语言才是 " 精确 " 的?

答案是代码。

一段 Python 程序画出的几何图形,每个坐标都是确定的、每个参数都是可验证的、每个空间关系都是可执行的。

代码不承认 " 差不多 ",要么对,要么运行报错。这种二值化的精确性,恰恰是 STEM 视觉感知最需要的。

02

让代码成为视觉感知的 " 第二语言 "

基于这一洞察,研究团队提出了一个全新的范式—— CodePercept(代码驱动的视觉感知),其核心思想可以用一句话概括:让代码成为视觉感知的 " 第二语言 "。

团队从两个维度系统性地用代码重新定义了视觉感知任务:

第一个维度:代码驱动的描述生成(Code-Grounded Caption Generation)。

传统 Caption 生成的做法是 " 看图说话 ",模型看了图,生成一句自然语言描述。但 CodePercept 的做法变成了 " 看图→写代码→用代码验证描述 " 的三段式。

可执行代码被当作图像描述的 " 绝对真理 ",代码中写明的坐标、数量、几何关系,无一不是对原始图像的精确转录。模型通过生成可执行的代码来 " 验证 " 自己对图像的理解是否正确。

第二个维度:STEM 图像到代码转录(STEM Image-to-Code Translation)

这比前一个步子迈得更大。

团队直接引导模型学习从图像到代码的端到端映射,给大模型一张几何图,让它直接生成能够重现这张图的 Python 代码。这不是让模型去 " 描述 " 图,而是让模型去 " 复现 " 图。

这个任务的精妙之处在于它的可验证性:代码是唯一一种可以 " 执行后验证 " 的表达形式。你描述一张图,没人知道你描述得对不对;但你写一段代码,运行之后渲染出来的图一比对,对就是对,错就是错。没有中间地带。

由于模型必须真正理解 " 观测特征 " 与 " 代码片段 " 之间的内在映射法则,才能生成正确的重建代码,所以这种二值化的确定性反馈,反过来又迫使模型得以建立更精确的视觉理解。

图 2. CodePercept 的总体流程图

Part 01: 构建高质量图像 - 代码对   Part 02:代码驱动的描述生成、STEM 图像到代码转录   Part 03: 形成 ICC-1M 数据库。

03

百万级数据的炼成

新范式的落地,需要与之匹配的训练数据。但问题是,代码驱动的视觉感知数据在现实中几乎不存在,无法仅靠简单地爬取网页就得到 " 图像 - 描述 - 代码 " 三元组。

为此,研究团队构建了 ICC-1M 数据集,包含 100 万个高质量的三元组(Image-Caption-Code),并通过三条创新的合成流水线实现了从零到百万的数据生产:

第一条:图像复现(Image Reproduction):将现有的 STEM 图像精准转化为可执行的 Python 代码。

这相当于给每张图配上一段 " 源代码 ",确保代码与图像之间形成严格的对应关系。

第二条:图像多样化(Image Diversity):提取种子图像的核心 STEM 原理,在不改变数学本质的前提下,通过参数变化在不同的视觉语境中重新实例化,从而生成大量视觉上不同但原理一致的新图像。

第三条:立体几何合成(Solid Geometry Synthesis):基于模板的立体几何代码生成,能够产生大量包含三维空间变换、多面体交叉和辅助线体系的训练样本。

这三条流水线突破了当前 MLLMs 在立体几何空间关系上的集体短板,也为新范式的出现搭建了强硬的数据底座。

图 3: 从图像复现到图像多样化到立体几何合成

04

从 " 看得见 " 到 " 看得准 "

有了数据,接下来就是训练策略的问题。

CodePercept 的独特之处在于,它没有简单地在 ICC-1M 上做一轮 SFT(监督微调)就收工,而是设计了一套两阶段渐进式训练策略,完整覆盖了 " 学会 " 到 " 精通 " 的全过程。

第一阶段:CodePercept-S1(监督微调)

既然描述和代码本质上都是对同一视觉信息的表达,为什么不把 " 看图写描述 " 和 " 看图写代码 " 当作两个并行任务来联合优化?

于是,团队在 SFT 阶段同时优化 Image2Caption 和 Image2Code 两条任务路径,让模型在同一套视觉编码器上建立双通道的感知能力,既学会生成自然语言描述,也学会生成精确的复现代码。

两条任务共享视觉特征提取过程,相互促进、相互补充。

第二阶段:CodePercept-R1(强化学习)

SFT 能让模型 " 学会 " 写代码,但离 " 写对 " 还有距离。

原因在于,代码生成是一个容错率极低的任务。Caption 写错一个数,读者大概还能猜出原意。代码写错一个坐标,渲染结果就完全走样了。

为了从 " 差不多对 " 跨越到 " 精准对 ",团队引入了 GRPO(Group Relative Policy Optimization)强化学习,并设计了三层递增的奖励机制:

格式奖励:语法必须正确,代码至少能跑起来。

内容执行奖励:运行结果必须与目标图像在关键指标上匹配。

图码相似度奖励:重构图像与原始图像之间的感知相似度。

GRPO 让模型在不断的自我试错中,逐渐学会 " 什么样的代码才能精确还原图像 "。这种从 SFT 到 RL 的递进,本质上就是从 " 知道怎么干 " 到 " 知道怎么干对 " 的质变。

图 4 CodePercept-S1 模型和 CodePercept-R1 模型的训练曲线

05

可验证的感知评估

在传统的评测体系里,感知能力往往是通过最终的解题正确率来反推模型感知好不好。但这种评估方式存在一个根本性漏洞:模型可能答对了题,但根本没看懂图(比如仅凭文本提示就猜出了答案),也可能看懂了图但推错了解题步骤。

简而言之,传统评估无法将 " 感知 " 和 " 推理 " 真正解耦。

为了解决这个问题,团队推出了 STEM2Code-Eval,这是一个包含 1000 张经过人工精校图像的感知评测基准。

它的评测逻辑简单而苛刻:模型必须生成能够 100% 还原原始图像的 Python 代码,然后用代码渲染结果与原图进行像素级精确度比对。

基于 STEM2Code-Eval,研究团队得以充分验证代码能不能跑、跑出来像不像。

图 5 STEM2Code-Eval 基准的流程

在这个基准上,团队以 Qwen3-VL 为基座模型进行了全面测试,结果相当震撼:

在 Captioner-Solver 评测模式下,CodePercept-8B-S1 仅用 80 亿参数就超越了 Qwen2.5-VL-72B(优势达 6.2%),甚至逼近了 Claude-Opus 4.1-Thinking 和 GPT5-Thinking 这样的闭源前沿模型。

而在纯粹考查感知的图像还原任务(STEM2Code-Eval)上,经过强化学习优化的 CodePercept-8B-R1 斩获 63.56 分,全面超越了 Seed 1.6-Vision 和 Qwen3-VL-Plus 等超大参数规模的旗舰模型。

图 6. 在 STEM2Code-Eval 上使用 1k 样本的性能评估

这些数据指向了一个反直觉的结论:参数的堆砌并不能弥补感知能力的缺陷,而代码驱动的感知训练,即使在小参数模型上,也能产生超越量级的感知跃迁。

06

结语

把 CodePercept 放在 CVPR 2026 的大背景下看,它的意义远远不止是 " 又一个新 SOTA"。

过去几年,多模态大模型领域有一个默认的 " 升级路径 ",参数越做越大、数据越堆越多、推理链越走越长。这条路径的隐含假设是 : 视觉感知已经足够好了,只要能推理,就能解决问题。

但 CodePercept 用系统的实验证据证明,这个假设可能从一开始就是错的。当模型的 " 眼神 " 连一个简单几何图形的坐标都读不准时,再强的推理能力也无从发挥。

更值得关注的是它的方法论转向:用代码作为视觉感知的锚点。 这是对 " 视觉理解 " 这件事本身的重新定义。

如果视觉理解的最终目标是 " 能够精确复现所看到的东西 ",那么代码比自然语言天然更具优势,因为它自带可验证性。

而 Qwen 团队的加持,更意味着这一范式有强大的工程底座作为支撑。从 Qwen3-VL 的视觉编码能力到 GRPO 在代码生成场景的落地,这套技术栈的成熟度远非一个纯学术原型可比。

也许未来,更多团队会重新审视 " 感知 vs 推理 " 的权重分配,更多研究者会将代码纳入视觉理解的标准工具箱。" 给大模型装上基于代码逻辑的火眼金睛 ",正在成为一条真实可行的技术路线。(雷峰网)

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

上海交通大学 人工智能 开源
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论