八个纯文本模型都会把几何译成代码,开放布局分差一倍有余

Autoregressive Mosaics: Probing 2D Spatial Reasoning in Text-Only Language Models

Ashwin Nedungadi, Stefan Oehmcke, Stefan Lüdtke

cs.AI, cs.CV

2026-08-31

AM-Bench把「会写绘图代码」和「会构图」拆开:八个纯文本模型翻译中位数PIoU全是1.0,布局分从GLM-4 32B的3.57落到CodeLlama的1.75,换SVG全体再涨0.37。

这篇在解决什么

GPT-4 能用 TikZ 画出可识别的独角兽,纯文本模型从没见过像素。这到底是模型内部有一张 2D 布局,还是只会把空间描述翻译成代码,一张生成图分不开。已有评测要么要看图(DORI、3DSRBench),要么只打最终画面,把「想得出布局」和「写得出绘图代码」缠在一起。

Rostock 大学的 AM-Bench 把这两件事拆开:翻译任务把几何用文字写死,模型只需写成代码;布局任务只给一个含糊对象名,模型必须自己构图。

方法

一张图被定义成 autoregressive mosaic:模型写一个只含 6 个原语(fill、setpixel、rect、circle、line、poly)的 Python 函数,由确定性执行器渲成 24×24 栅格。不用 SVG 当主接口,是因为公开 SVG 已经大量进预训练,测 SVG 可能在测记忆。调色板限制 30 个颜色名,避免颜色 tokenization 捣乱。

翻译任务:145 个参考几何(再加 100 个加难样本和 13 个手写图标),提示写明每个形状的位置、尺寸、颜色,刻意不出现物体名。评分在连续坐标里做 per-part IoU(PIoU),再乘上 over-paint 惩罚;和分辨率无关。通过线 τ=0.6,随机基线 0.072。布局任务只有通过翻译中位数门槛的模型才参与横向比较。

布局任务:150 条提示,三档。T1 元素(单形状、镂空、铺砌、符号、色块),T2 图标(旗帜、文化符号、日常物体、生物、结构纹样),T3 组合(空间关系、多物体、嵌套、场景、对称)。每条提示 1 次贪心 + 10 次随机,8 个模型共 13200 次尝试。两个 VLM 裁判(Qwen2.5-VL-7B、InternVL3-8B)按提示忠实度、形状、颜色、空间、完整性五维打 0–5,≥3.0 算过。

八个开源纯文本/代码模型:Qwen2.5-Coder 32B/14B、Gemma 2 27B/9B、GLM-4 32B/9B、CodeLlama 34B、Llama 3.1 8B。

另外两件事。输出介质消融:同一套提示再写一遍原始 SVG,再把 SVG 重新栅格化到 24×24 后打分,去掉分辨率优势。表征探测:在生成前的 residual stream 上用 ridge 回归预测 6×6 占用网格,目标是该模型多次尝试的连续共识占用;用 TF-IDF 文本基线算 ΔR²。再用改坐标的代码前缀做因果干预,看模型是在执行一张事先画好的图,还是在跟踪已经写进代码的几何状态。

结果

翻译不是瓶颈。8 个模型中位数 PIoU 都是 1.000,13920 次尝试里 98.1% 过线。最差的 Llama 3.1 8B 平均 PIoU 仍有 0.929。代码写得出来。

布局分差很大。Judge 1 上 GLM-4 32B 总分 3.57,CodeLlama 34B 1.75,差一倍有余。两个裁判绝对分差约 0.90,但模型排名完全一致(Spearman ρ=1.0)。样本级相关只有 0.43–0.54。350 对人工两两比较,标注者之间 Krippendorff α=0.60;在两人意见一致且裁判能分开的对上,Judge 1 吻合 82.4%(61/74),Judge 2 76.7%(46/60)。

难度梯度不符合预期。T3 组合平均高于 T2 图标(J1:2.69 vs 2.45)。作者归因于 24×24 原语画不好需要细结构的真实物体,组合类提示的空间语言反而更好写。最容易的子类是 1E 色块分割(J1 3.93),最难是 2C 日常物体和 3D 场景。CodeLlama 在 T1 有 26.9% 的平凡输出(接近单色填充),Gemma 2 9B 在 T3 到 20.5%。

换 SVG,所有模型都涨,总体 +0.37(95% CI [0.26, 0.47]),六个模型各自显著,CodeLlama 涨得最多(约 +0.76)。相对名次大体保留,绝对分是画布接口的属性,不是「空间推理」的属性。

生成前能读出一张粗布局,但这张图是提示暗示的公共布局,不是这个模型自己会画的那张。八个模型平均 ΔR²=+0.164。GLM-4 32B / Gemma 2 27B 上,共享成分 ΔR² 约 +0.26/+0.28,模型特异残差 R²≤0.005。干预:把已画形状的坐标改到原计划不会画的区域,GLM-4 32B 继续画的比例从 43.8% 升到 84.6%(+0.42),Gemma 2 27B 从 2.5% 升到 41.2%(+0.39)。改到「本来后面会画」的区域,效应弱得多(+0.08 / +0.16)。模型在跟踪文本里的几何完成度,不是在执行一张开画前就固定的平面图。

模型翻译 PIoU布局 J1 总分
GLM-4 32B0.9933.57
Qwen2.5-Coder 32B0.9943.44
Llama 3.1 8B0.9292.03
CodeLlama 34B0.9841.75

为什么重要

看见「模型能画出东西」不要直接读成「模型有空间世界模型」。翻译任务过关,只说明代码接口不是瓶颈;布局分差、介质消融、探测和干预加在一起,更接近的图景是:提示先给出一张很粗的公共草图,真正落笔位置在自回归过程里一点点定。

做程序化绘图、CAD、SVG agent 的人,接口选择会直接改分数。自定义画布 API 更干净,SVG 分数虚高。评测如果只报最终图好不好看,会把记忆中的 SVG 模板算进空间能力。

局限与存疑

作者承认:只测了 8B–34B 开源模型,没有闭源和更大模型;24×24 马赛克是空间能力的必要条件,不是一般空间智力;VLM 裁判有方差;Exp. 3 的因果干预改的是代码文本,不是内部激活,不能证明读出来的表征就是驱动生成的那个。共享/特异分解只做了两个最强模型。

另外,150 条布局提示由 Claude Opus 5 合成,风格可能偏向某个模型家族。T2/T3 倒置被归因于分辨率,但没有把画布加大做对照,这个解释还是假说。两个裁判样本级一致度一般,排名稳、单张分不稳。DINO 概念一致性分析被熵混杂,放进了附录。

术语

原文与代码

相关论文

全部论文解读