Paper: 2608.12262 Authors: Weihao Bo, Shan Zhang, Yanpeng Sun, Jie Liu, Yongke Yao, Jinhao Du, Wei He, Kai Zou, Zechao Li, Jingdong Wang Categories: cs.CV, cs.AI
The Gap
Two separate literatures have grown up around figures, and neither one covers the thing people now actually do with MLLMs.
The first is diagram understanding as QA: AI2D, ScienceQA, ChartQA, MMMU-style science subsets. These ask text questions about an image and score the text answer. They measure whether a model can *read a figure, and by 2025 frontier models were largely saturating the easy end of them.
The second is image-to-code generation: Design2Code (screenshot to HTML), Plot2Code and ChartMimic (chart image to matplotlib), Image2Struct. These do ask for executable output, but the visual domain is charts and web pages — data-driven plots with a small grammar, or DOM layouts. Scientific *diagrams — architecture figures, circuit schematics, geometry constructions, pipeline blocks, commutative-style graphs — are a different beast: no underlying data table, arbitrary coordinates, hand-tuned anchors, node/edge topology that carries the meaning.
The third thing missing from both is the workflow. Tools like OpenAI Prism made “drop in a figure, get TikZ back” a default expectation, and in real use nobody does it in one shot: you generate, look at the render, and then edit. Nobody had a benchmark for the edit step, and nobody had measured whether letting the model compile and look at its own output actually helps.
PROBLEM
[ diagram-to-TikZ is now a real product feature ]
[ but benchmarks test QA or chart-to-plot only ]
|
v
ASSUMPTION
[ "understands a diagram" and "can reconstruct ]
[ a diagram as code" are DIFFERENT abilities ]
[ and should be scored separately ]
|
v
METHOD
[ Diagram-MMU: 3.7k curated scientific diagrams ]
[ 6 domains, 18.3k human-validated questions ]
[ 3 task heads: parse | edit | QA ]
[ x2 modes: direct | agentic (tools+loop) ]
|
v
EVIDENCE
[ 12 MLLMs measured ]
[ QA scores >> parse/edit scores ]
[ agentic: parse/edit UP , QA DOWN ]
[ one model (Claude-4.6 Opus) up on all three ]
|
v
CONCLUSION
[ reasoning-over-diagrams is not the bottleneck; ]
[ symbol-level reconstruction is. ]
[ agentic scaffolding is task-selective, not ]
[ a free upgrade. ]
The Increment
One sentence: Before, “can this model handle scientific figures?” was answered with a QA score; after, it’s answered with three separate numbers — read it, rebuild it, revise it — and the middle two turn out to be where everything falls apart.
Core Mechanism
There is no trained model here. The mechanism is the benchmark’s construction and its scoring loop, so that’s what to look at.
The data side starts from real scientific diagrams paired with ground-truth TikZ source across six domains, curated rather than scraped wholesale, then annotated with questions that a human checked. That gives each item a triplet: a rendered image, the code that produced it, and a set of validated question-answer pairs. Having all three in one item is what lets a single corpus feed three different tasks instead of one.
The task side slices that triplet three ways. *Diagram-to-code parsing: give the image, ask for TikZ, compile it, compare the render to the original. Diagram-to-code editing: give the image plus its code plus an instruction (“make the arrows dashed”, “swap these two blocks”), ask for revised code, compile, check that the requested change happened and nothing else broke. Diagram QA: give the image, ask the validated questions, score the text. Parsing tests full reconstruction, editing tests localized symbol grounding — you must find which line of code corresponds to the thing being pointed at — and QA tests reading.
The mode side is the second axis. In the direct mode the model emits an answer in one pass. In the agentic mode it gets a loop: emit code, compile it, look at the render, diff against the target, revise. That loop is exactly the thing a human does, and it is precisely where the paper’s most interesting result lives — it helps the code tasks and *hurts QA, which tells you the loop is not “more thinking is better,” it’s a specific tool that fits specific tasks.
ONE CORPUS ITEM
+---------------------------------------------+
| image.png <---- compiled from ---- code |
| | | |
| +------ human-validated Q/A ------+ |
+---------------------------------------------+
| | |
v v v
[ PARSE ] [ EDIT ] [ QA ]
img -> code img+code+instr img+q -> text
-> code'
MODE A: direct
input --> model --> answer --> score
MODE B: agentic
input --> model --> code --> [ compile ] --+
^ | |
| v |
+---- diff <---- render <-------+
(n rounds)
|
v
score
OBSERVED
parse : direct < agentic
edit : direct < agentic
QA : direct > agentic (loop backfires)
The metaphor: a music transcription exam. The diagram is a recording. The TikZ source is the sheet music. Three exam stations, one recording:
At the listening station (QA) they play the clip and ask “what key is it in? how many voices? does the melody rise or fall at the end?” Strong ears pass easily. This is where models already do well — they hear the structure.
At the transcription station (parsing) they play the clip and hand you blank staff paper. Now hearing isn’t enough; you need to commit to exact pitches, exact rhythms, exact bar lines. A musician with a great ear and shaky notation skills fails here, and that is exactly the profile the paper finds in MLLMs: they can describe the figure but cannot write down the score that produces it.
At the revision station (editing) they give you the recording *and the existing score, and say “make bar 12 minor.” You don’t need to transcribe from scratch — you need to locate bar 12 in the notation. That’s grounding, not generation, and it’s a genuinely different skill.
The agentic mode is letting candidates sit at a piano and play back what they wrote. For transcription and revision this is obviously useful — you hear your mistake and fix the note. But for the listening station, walking to the piano is a distraction: you spend your attention operating an instrument instead of listening, and you score worse than if you’d just answered. Only the best candidate in the room uses the piano well at all three stations.
Key Concepts
-
Parsing vs. captioning (the perception-to-symbol inversion): Describing a picture is a many-to-one map — lots of correct sentences describe the same figure, and being roughly right is fine. Producing the source code is a one-to-many-but-checkable map — the output has to compile, coordinates have to be near-consistent, and a rendered comparison is unforgiving. It’s the difference between “this looks like a box with three arrows going into it” and stating the box’s position, size, and each arrow’s start and end anchor. The first is a summary; the second is an *inversion of the rendering process. Models were trained on oceans of the first and comparatively little of the second, which is a satisfying explanation for the gap the paper measures.
-
Editing as a grounding probe: Suppose you get an instruction like “make the loss arrow red.” To do that you must map a visual object (that arrow) to a specific token span in the code (the
\drawline that produced it). If you can’t localize, you’ll either rewrite the whole file — usually breaking something else — or edit the wrong line. This makes editing a cheap and surprisingly sharp diagnostic: the pass/fail signal isolates grounding, because the model was handed the code and didn’t have to invent it. Whether the metric properly punishes collateral damage (edit succeeded but the rest of the figure moved) is the part I’d most want to read the details on. -
Tool loops are not monotone improvements: The instinct is “let the model use tools and it gets better.” The paper’s asymmetric result says otherwise: the same scaffolding lifts code tasks and depresses QA. Mechanically this is unsurprising once you say it out loud — the loop injects long tool transcripts and rendered intermediates into a context where the answer was already available in the first glance, so you get context dilution plus opportunities to talk yourself out of a correct answer. The practical version: agent harnesses need per-task gating, not a global on-switch.
Framework Shift
Before (mainstream approach): After (this paper):
[ diagram image ] [ diagram image ]
| | | |
v v v v
[ MLLM ] parse edit QA
| | | |
v v v |
[ text answer ] [ TikZ code ] |
| | |
v v |
( accuracy % ) [ compile ] |
| |
one number, one axis v |
[ render ] |
( or, separately: ) | |
[ chart image ] v v
v ( visual diff )( acc )
[ matplotlib code ]
v x \{ direct , agentic \}
( plot similarity ) = 6 measurements per model
charts, not diagrams closed loop, three abilities
From “score the answer” to “score the reconstruction, the revision, and the answer separately — under both one-shot and closed-loop conditions,” the core shift is treating figure competence as a small matrix of distinct skills rather than a single scalar, with the compiler as the referee.
Expert Assessment
Problem choice: Real gap, well-timed, slightly opportunistic. The workflow being benchmarked — paste figure, get TikZ, iterate — genuinely became a mainstream use case, and scientific diagrams genuinely are underrepresented next to charts and screenshots. The parse/edit/QA decomposition is the right decomposition, and editing is the piece nobody had. The deduction is that leading with “OpenAI Prism” in the abstract is product-cycle framing that will read as dated within a year, and naming a specific frontier model in the abstract’s headline finding guarantees the paper’s most quoted sentence expires quickly. The finding underneath (“agentic scaffolding is task-selective”) is durable; the packaging is not.
Method maturity: This is careful assembly rather than clever insight, which is fine for a benchmark. The real difficulty in this area is metrics, and that’s where I’d apply pressure. Diagram-to-code scoring in prior work has leaned on compile rate, pixel/embedding similarity of renders, code-level overlap, and LLM-as-judge — each with a known failure mode. Pixel similarity punishes a legitimately cleaner layout; code overlap rewards imitating the ground-truth author’s style over producing an equivalent figure; LLM judges drift and favor verbose output. The abstract doesn’t tell us which combination is used, and the credibility of the headline “parsing is harder than QA” claim rests almost entirely on that choice, since it’s a comparison across two metric families rather than within one. A simpler alternative the field keeps under-using: score parsing by *re-asking the QA questions against the reconstructed render. That makes parse and QA commensurable on one scale and sidesteps style-matching entirely.
Experimental integrity: 12 models with a direct/agentic split is a reasonable sweep, and reporting a result that cuts against the “agents always help” narrative is a good sign — that’s a finding you keep only if you didn’t tune to get it. Two things I’d want checked. First, contamination: TikZ source for arXiv figures is on arXiv, so if the diagrams come from public papers, some ground-truth code may be in pretraining data, which inflates parsing scores unevenly across model vintages; a held-out or newly-authored subset would settle it. Second, the agentic comparison needs matched budgets — if the agentic runs get more tokens and more attempts, “agentic helps parsing” partly restates “more compute helps,” and the QA regression is then the more informative half of the result. The single-model-improves-everywhere claim I’d treat as an anecdote until it’s shown to be a capability rather than a harness fit.
Writing quality: The abstract spends its opening on a product and its closing on a leaderboard, and spends nothing on how anything is scored or how “human-validated” was operationalized. Rewriting the evaluation-protocol section to state, per task, exactly what is measured, what a failure mode looks like, and what the human-agreement rate on the validation was would raise the whole paper a tier — because for a benchmark, the protocol *is the contribution. A per-domain breakdown across the six domains would also earn its space: “circuits are hard, block diagrams are easy” is more actionable to a method-builder than an aggregate ranking.
Verdict: weak accept — the parse/edit/QA decomposition and the asymmetric agentic result are genuine contributions to a real gap, but the value hinges on metric design that the abstract leaves unspecified, and the framing is tied to a product moment that will age fast.
Takeaways
Things worth stealing:
-
Edit-a-given-artifact as a grounding test. Handing the model the existing source and asking for a targeted change isolates “can you locate the thing” from “can you build the thing.” This transfers anywhere you have a render-from-source pipeline: SVG, Mermaid, CAD scripts, Manim, shader code, Verilog with a waveform, Terraform with a topology view. It’s cheaper to annotate than full generation ground truth and it fails more informatively.
-
Score generation by round-tripping through comprehension. If you’re evaluating any image-to-code task, consider asking your QA questions against the *reconstructed render rather than diffing pixels. Semantic-equivalence-by-behavior avoids penalizing valid stylistic divergence, and it makes generation and understanding scores directly comparable.
-
Gate your tool loops per task. The concrete lesson for anyone shipping an agent: verification loops pay off where output is executable and checkable, and cost you where the answer was already visible in one look. Don’t ship one global agent mode — route. And if you’re benchmarking your own agent, always report the non-agentic baseline at matched budget, or you’ll mistake compute for capability.
-
A caution for interpreting your own eval wins. Diagram-to-code is a domain where ground truth is publicly available alongside the images. If your model looks unusually strong at reconstructing published figures, check for contamination before you believe it.
论文: 2608.12262 作者: Weihao Bo, Shan Zhang, Yanpeng Sun, Jie Liu, Yongke Yao, Jinhao Du, Wei He, Kai Zou, Zechao Li, Jingdong Wang 分类: cs.CV, cs.AI
缺口
围绕「图」这件事,已经长出了两套彼此不搭的文献,而它们都没覆盖今天人们真正在用多模态模型做的事。
第一套是把图理解当成问答:AI2D、ScienceQA、ChartQA、MMMU 里的科学子集。 给一张图,问一句话,评一句话的答案。 它测的是模型能不能「读懂」图,而到 2025 年前沿模型在这类题的简单一端基本已经饱和。
第二套是图生代码:Design2Code(截图转 HTML)、Plot2Code 与 ChartMimic(图表转 matplotlib)、Image2Struct。 这些确实要求可执行输出,但视觉域是图表和网页——要么是语法很小的数据驱动绘图,要么是 DOM 布局。 科学示意图是另一种东西:架构图、电路图、几何作图、流水线方块图、带箭头的关系图。 它们背后没有数据表,坐标是任意的,锚点是手调的,节点与边的拓扑本身就是语义。
两套文献都漏掉的第三件事是工作流。 OpenAI Prism 这类工具把「丢一张图、拿回 TikZ」变成了默认期待,而现实中没人一次成功:生成、看渲染结果、然后改。 「改」这一步此前没有基准,而「让模型自己编译、自己看结果到底有没有用」也没人量过。
问题
[ 图转 TikZ 已成为真实的产品功能 ]
[ 但现有基准只测问答或图表转绘图代码 ]
|
v
假设
[ 「看懂一张图」和「用代码重建一张图」]
[ 是两种不同能力,应该分开计分 ]
|
v
方法
[ Diagram-MMU: 3.7k 张精选科学示意图 ]
[ 6 个领域, 18.3k 道人工校验的题 ]
[ 3 类任务: 解析 | 编辑 | 问答 ]
[ x2 模式: 直接 | 智能体(工具+循环)]
|
v
证据
[ 12 个多模态模型 ]
[ 问答分数 >> 解析/编辑分数 ]
[ 智能体模式: 解析/编辑 升, 问答 降 ]
[ 只有一个模型(Claude-4.6 Opus)三项全升 ]
|
v
结论
[ 瓶颈不在「对图推理」, ]
[ 而在「符号层面的重建」 ]
[ 智能体脚手架是挑任务的,不是白送的升级 ]
增量
一句话:以前回答「这个模型能不能处理科学图」只需要一个问答分数;现在要三个分数——读得懂、重建得出、改得对——而中间那两个分数才是崩塌的地方。
核心机制
这篇论文没有训练模型。 机制在于基准怎么造、以及怎么打分,所以看这两件事就够了。
数据侧从六个领域的真实科学示意图出发,每张图配有真实的 TikZ 源码,是精选而非全量爬取,再配上人工校验过的问题。 于是每个样本是一个三元组:渲染图、生成它的代码、一组已校验的问答对。 三样东西同时在一个样本里,是同一份语料能喂三种任务的关键。
任务侧把这个三元组切三刀。 解析:给图,要 TikZ,编译,把渲染结果与原图比。 编辑:给图 + 给原代码 + 给一条指令(「箭头改虚线」「这两个方块交换位置」),要改后的代码,编译,检查该改的改了、不该动的没动。 问答:给图问问题,评文本答案。 解析测完整重建,编辑测局部符号定位——你必须找出被指的那个东西对应哪一行代码,问答测阅读。
模式侧是第二个轴。 直接模式下模型一次成型。 智能体模式下模型拿到一个循环:写代码、编译、看渲染、和目标对比、再改。 这个循环正是人类的做法,也正是论文最有意思的结果所在——它抬升了代码类任务,却压低了问答。 这说明循环不是「多想想总更好」,而是一件只对某些任务合手的工具。
一个语料样本
+---------------------------------------------+
| image.png <---- 编译自 ---- code |
| | | |
| +------ 人工校验的问答 -------+ |
+---------------------------------------------+
| | |
v v v
[ 解析 ] [ 编辑 ] [ 问答 ]
图 -> 代码 图+代码+指令 图+问题 -> 文本
-> 新代码
模式 A: 直接
输入 --> 模型 --> 答案 --> 打分
模式 B: 智能体
输入 --> 模型 --> 代码 --> [ 编译 ] --+
^ | |
| v |
+---- 对比 <-- 渲染 <------+
(n 轮)
|
v
打分
观测
解析: 直接 < 智能体
编辑: 直接 < 智能体
问答: 直接 > 智能体 (循环反噬)
核喻:一场音乐听写考试。 示意图是录音,TikZ 源码是乐谱。 一段录音,三个考站:
听辨站(问答):放一段音频,问「什么调?几个声部?结尾旋律上行还是下行?」 耳朵好就能过。 这正是模型现在表现好的地方——它听得出结构。
听写站(解析):放同一段音频,发给你一张空白五线谱。 这时候「听得出」不够了,你得落笔到确切的音高、确切的节奏、确切的小节线。 一个耳朵极好但记谱手生的乐手会在这里挂掉——而这恰好就是论文测出的模型画像:能把图描述得很好,却写不出生成这张图的谱子。
改谱站(编辑):录音和现成的谱子都给你,指令是「第 12 小节改成小调」。 你不需要从零听写,你只需要在谱面上定位第 12 小节。 这是定位能力,不是生成能力,是真的另一回事。
智能体模式就是允许考生坐到钢琴前,把自己写的东西弹一遍。 对听写和改谱,这显然有用——弹出来就听见错音了。 但对听辨站,走去钢琴那边是纯干扰:注意力花在操作乐器上而不是在听,成绩反而比直接答更差。 全场只有最强的那个考生,在三个站都用好了钢琴。
关键概念
-
解析 ≠ 描述(感知到符号的逆运算):描述一张图是多对一的映射,很多句话都对,大致对就行。 产出源码是可被机械检验的映射:必须能编译、坐标必须大致自洽、渲染对比毫不留情。 这是「看起来是一个方块有三个箭头指进来」和「说出方块的位置尺寸、每个箭头的起止锚点」之间的差别。 前者是摘要,后者是把渲染过程反过来算一遍。 模型见过海量前者、相对很少后者——这对论文测出的落差是个很合理的解释。
-
编辑作为定位探针:假设指令是「把 loss 那根箭头改成红色」。 要做到,你必须把一个视觉对象映射到代码里的具体片段(生成那根箭头的那行
\draw)。 定位不了,你要么重写整个文件(通常顺手弄坏别的东西),要么改错行。 这让编辑成为一个便宜且相当锐利的诊断:代码是给你的,不用你发明,所以成败信号只反映定位能力。 至于指标有没有正确惩罚「附带损伤」(该改的改了但整张图挪位了),是我最想看原文细节的地方。 -
工具循环不是单调递增的:直觉是「给模型工具就会变好」。 论文的非对称结果说不是:同一套脚手架抬升代码任务、压低问答。 说出来其实不奇怪——循环把长长的工具日志和中间渲染塞进上下文,而正确答案本来第一眼就有; 于是你得到上下文稀释,加上一堆把自己劝离正确答案的机会。 实践版结论:智能体框架需要按任务分流,而不是一个全局开关。
框架转变
之前(主流方法): 之后(本文方法):
[ 示意图 ] [ 示意图 ]
| | | |
v v v v
[ 多模态模型 ] 解析 编辑 问答
| | | |
v v v |
[ 文本答案 ] [ TikZ 代码 ] |
| | |
v v |
( 准确率 % ) [ 编译 ] |
| |
一个数,一个轴 v |
[ 渲染 ] |
( 或者,另立一摊: ) | |
[ 图表图片 ] v v
v ( 视觉差异 ) ( 准确率 )
[ matplotlib 代码 ]
v x \{ 直接 , 智能体 \}
( 绘图相似度 ) = 每个模型 6 个测量值
是图表,不是示意图 闭环 + 三种能力
从「给答案打分」到「把重建、修改、回答分开打分,并且在一次成型与闭环两种条件下各打一次」,核心转变是:把「图的能力」当成一个小矩阵而不是一个标量,并且让编译器当裁判。
专家评审
选题眼光:真缺口,时机好,略带机会主义。 被测的这套工作流——贴图、拿 TikZ、迭代——确实变成了主流用法;科学示意图相对图表和网页截图也确实被冷落。 解析/编辑/问答这个拆法是对的拆法,而编辑那块是此前没人做的。 扣分项是摘要开头就打「OpenAI Prism」这张牌,这是产品周期式的框架,一年后读起来会很旧; 而在摘要的核心发现里点名某个具体前沿模型,等于保证这篇论文被引用最多的那句话会最快过期。 底下那个发现(智能体脚手架是挑任务的)是耐久的,包装不是。
方法成熟度:这是细致的拼装,不是巧劲,对基准而言没问题。 这个方向真正的难点是指标,压力就该往那里加。 既有工作的图生代码打分无非几种:编译通过率、渲染的像素/嵌入相似度、代码层面重合度、大模型当裁判——每种都有已知的失效模式。 像素相似度会惩罚一个其实更干净的排版;代码重合度奖励的是模仿原作者的风格而非产出等价的图;大模型裁判会漂移且偏爱啰嗦输出。 摘要没说用了哪种组合,而「解析比问答更难」这个头条结论的可信度几乎全压在这个选择上——因为它是跨两个指标族的比较,不是同族内的比较。 一个这个领域一直没用够的更简单办法:拿原来的问答题去问重建后的渲染图,据此给解析打分。 这样解析和问答就在同一把尺子上,也彻底绕开了风格匹配问题。
实验诚意:12 个模型加直接/智能体双模式,覆盖面合理; 更好的信号是他们报了一个逆「智能体总是有用」叙事的结果——这种结果只有在没往上调参的时候才留得下来。 两处我会想核: 一是污染。arXiv 图的 TikZ 源码就挂在 arXiv 上,如果图取自公开论文,部分真值代码可能已在预训练数据里,会不均匀地抬高不同世代模型的解析分;一个新写或严格留出的子集就能澄清。 二是预算对齐。如果智能体那一侧拿到更多 token 和更多次尝试,「智能体提升解析」就部分只是在重述「算力提升性能」,那么问答的下降反而是这个结果里信息量更大的一半。 至于「某个模型三项全升」,在证明它是能力而非框架契合之前,我按个例看待。
写作功力:摘要开头给了产品,结尾给了排行榜,中间没给任何「怎么打分」和「人工校验具体怎么做」。 把评测协议那一节重写——逐任务说清测什么、失败长什么样、人工标注的一致率是多少——能让整篇论文升一档,因为对基准而言协议就是贡献本身。 另外,六个领域的分域拆解也值得占版面:「电路图难、方块图易」对做方法的人比一个总排名有用得多。
判决:弱接收 —— 解析/编辑/问答的拆解与智能体的非对称结果是针对真缺口的真贡献,但价值取决于摘要没交代的指标设计,且叙事绑在一个会很快过时的产品节点上。
要点总结
值得「偷」走的东西:
-
用「改现成产物」测定位能力。 把已有源码交给模型、要求做定点修改,能把「你能不能找到那个东西」从「你能不能造出那个东西」里剥离出来。 这个思路可以迁移到任何有「源码渲染成图」链路的地方:SVG、Mermaid、CAD 脚本、Manim、着色器代码、Verilog 配波形图。 它比全量生成的真值更便宜,失败信号也更有信息量。
-
让生成任务绕一圈经过理解任务来打分。 如果你在评任何图生代码任务,考虑把问答题拿去问重建后的渲染图,而不是去 diff 像素。 「行为等价」避免了惩罚合法的风格差异,也让生成分和理解分直接可比。
-
工具循环要按任务分流。 给做智能体产品的人的具体教训:验证循环在输出可执行、可检验的任务上有回报;在答案本来一眼就有的任务上是负债。 不要发一个全局智能体模式,要路由。 自己做评测时,永远在对齐预算下报出非智能体基线,否则你会把算力当成能力。
-
一条自省提醒。 图生代码是那种真值和图片一起公开挂在网上的领域。 如果你的模型在重建已发表论文的插图上强得反常,先查污染再高兴。