![]()
有个盲人画家,叫埃斯雷夫·阿玛甘。他天生失明,但他能画出带透视关系的画,能画出前面的东西挡住后面东西的画,甚至能画出明暗层次分明的画。科学家扫描他的大脑发现,他画画的时候视觉皮层是活跃的。
这件事说明什么?
说明一个人即使从来没看过任何东西,脑子里也可能存在一套可用的空间结构模型。
那么问题来了:语言模型会不会也是这样?
2023 年,GPT-4 在没见过任何图片的情况下,被要求用 TikZ
*TikZ:一种通过写代码来绘制矢量图形的编程语言,常用于学术论文画图。*
写代码画一只独角兽,结果画出来的图形真的能看出是只独角兽。这事当时在业内引起不小的震动,但一直没有人认真去挖过:这背后到底是模型真的理解了二维空间布局,还是它只是碰巧把"独角兽长什么样"这个文本描述翻译成了代码?
这两件事听起来很像,其实完全不是一回事。
**一个模型能不能把已经说清楚的空间关系写成代码,和它能不能自己想出一个空间关系,这是两种完全不同的能力。**
前者更像是听写,你告诉它"圆心在第12行第12列,半径10格",它照着写代码就行。后者则要求它自己决定"太阳应该画在哪里、多大、什么颜色",没有人告诉它答案。
如果不把这两件事分开测,那你观察到的任何"模型画得好不好"的结果都是一笔糊涂账。画得差可能是因为它压根不会组织空间布局,也可能是因为它会组织但写不出对应的代码,还可能是因为它被限定的表达工具本身就画不出那种效果。三个原因混在一起,你没法知道到底是谁的锅。
这就是这篇论文要解决的问题。研究者提出了一个叫 AM-Bench
*AM-Bench:全称 Autoregressive Mosaics Benchmark,一套用来拆解"语言模型空间推理能力"的评测基准,核心思路是把"翻译"和"构图"这两种能力分开测。*
的评测体系,测试了八个开源、纯文本加代码训练的模型,横跨四个模型家族,参数量从8B到34B不等。结果发现一件很有意思的事:所有模型在"翻译"任务上几乎都是满分,但在"自己构图"的任务上,分数差得离谱。这说明代码能力从来不是瓶颈,真正拉开差距的是别的东西。
怎么把"翻译"和"构图"这两件事分开测
先说说这套测试系统长什么样。
研究者设计了一种叫"自回归马赛克"
*自回归马赛克:论文里定义的一种极简画布,模型写一段程序,程序调用几个基础绘图指令(填充、画点、画矩形、画圆、画线、画多边形),最后渲染成一张24×24像素的小图。*
的载体。为什么要用这么粗糙的分辨率?因为分辨率太高会让计算成本失控,而24×24已经足够测试空间组织能力了。
这套系统提供的绘图工具只有六个:填充整个画布、点一个像素、画矩形、画圆、画线、画多边形。模型只能用这几个工具,加上基本的算术和循环,拼出一张图。
这里有个关键的设计考量。研究者故意没有用业界更常见的 SVG
*SVG:Scalable Vector Graphics,一种通过 XML 文本描述矢量图形的标准格式,网页上很多图标和插画都是用它画的。*
格式,而是自己发明了一套六个指令的"方言"。
为什么要多此一举?
因为现在的大语言模型在预训练阶段,已经吃过海量的手写 SVG 代码,甚至有些模型专门针对 SVG 生成做过微调。如果直接用 SVG 测试模型的空间推理能力,你测出来的可能不是它真的会构图,而是它记住了训练数据里类似的图案,照抄了一遍。
这就好比你想考察一个学生的数学推理能力,却拿了一套他早就背过答案的旧卷子。他答对了,你不知道是因为他真的会解题,还是因为他记住了这道题的答案。用一套全新的、模型从没见过的绘图指令集,就是为了避免这种"背答案"的可能性,逼着模型从零开始想办法表达空间关系。
在这套自定义画布的基础上,研究者设计了两个任务。
第一个叫翻译任务。研究者会用文字把整张图的完整几何结构描述清楚,比如"一个红色的圆,圆心在第12行第12列,半径10格",然后让模型把这段描述转成代码。这里刻意回避了任何"现实世界主题词",比如不会说"画一个红色太阳",而是纯粹描述形状、位置、大小、颜色。为什么要这么小心?因为如果你说"画个太阳",模型很可能直接调用它脑子里存的"太阳长什么样"的记忆,而不是老老实实读取你给它的具体坐标。
这个任务本质上是一次听写测验,正确答案几乎就是把文字描述原封不动地转译成代码,不需要任何创造性判断。
第二个叫布局任务。这次给模型的提示词是不完整的,比如就说"画一个德国国旗",具体每个色块占多大、排列成什么样,全靠模型自己决定。这里才是真正考验空间构图能力的地方。
翻译任务怎么打分?
因为参考答案是精确已知的,研究者用了一种叫 PIoU
*PIoU:Part-wise Intersection over Union,逐部件交并比,把生成图形中的每个部件和参考图形中最匹配的部件做重叠面积的比较,取所有部件的平均值,数值范围0到1,越接近1说明匹配得越精确。*
的指标,在连续坐标系里精确计算每个部件的重叠面积占比,这样评分就不会受画布分辨率的影响,无论你放大到多少像素,得分都一样。
布局任务因为没有标准答案可以比对,只能靠视觉语言模型
*视觉语言模型(VLM):能同时理解图像和文本的AI模型,这里被用作"评委",从五个维度(提示词符合度、形状准确度、颜色准确度、空间准确度、完整度)给生成的图打分,满分5分。*
来打分,而且用了两个独立的评委互相校验,还找了真人来验证评委靠不靠谱。
所有模型都能翻译,但构图水平天差地别
结果出来后,第一个发现就很扎实:八个模型在翻译任务上的中位数 PIoU 全部是1.0,满分。
这意味着什么?意味着"写代码把已知的几何结构表达出来"这件事,对这些模型来说压根不是难题。哪怕是参数量最小的Llama 3.1 8B,翻译得分也有0.929,远远超过随机乱画的基线分数0.072。
但一旦切换到布局任务,画风突变。
排名最高的GLM-4 32B,在两个评委的打分下综合得分是3.57到4.33(满分5分),而排名最低的CodeLlama 34B只有1.75到2.87。同样是能完美翻译的模型,构图能力却相差一倍还多。
**这说明代码写作能力从来不是造成差距的原因,真正的差距发生在"决定要画什么"这一步。**
这个发现的分量值得多说两句。如果翻译任务分数也参差不齐,那你完全可以说,模型画得差是因为语法都写不利索。但现在翻译任务人人满分,布局任务却天壤之别,这就把"不会写代码"这个解释彻底排除了。剩下能解释差距的,只能是模型在没有明确指令时,自己组织空间关系的能力有强有弱。
还有一个特别反直觉的现象。按理说,任务难度应该是:单个几何图形最简单,画个大家都认识的具体物体(比如猫、国旗)中等难度,多元素组合的复杂场景最难。可实际测出来的结果是,"多元素组合"类别的平均分居然普遍高于"画具体物体"类别,两个评委都观察到了这个现象,在八个模型里,有五到六个都出现了这种反转。
研究者给出的解释是分辨率的锅。要在24×24的极小画布上,用矩形、圆、多边形这几种粗糙的基础形状去逼近"一只猫"的细节,实在是太难了,猫耳朵猫尾巴这种精细结构根本画不出来。但如果任务是"左边一个圆,右边一个方块"这种纯空间关系描述,反而更容易用简单形状表达清楚。
这个反转告诉我们一件事:评测空间推理能力,任务难度不能光凭直觉猜,必须实打实跑出来看。
换个画布,同一个模型立刻变强
如果只做到这一步,故事其实还没讲完。因为还有一个变量没控制:模型表达空间关系时用的"工具"或者说"媒介",会不会本身就限制了它能画出什么?
研究者做了一个很干脆的对照实验:让每个模型用同样的提示词,分别画两遍。一遍用前面那套自定义的画布指令集,另一遍直接生成原始的SVG标记语言。为了保证公平比较,两种输出最后都统一缩放到24×24分辨率再打分,避免SVG天生的高清渲染占了便宜。
结果,全部八个模型换成SVG之后分数都涨了。平均涨幅0.37分(满分5分),六个模型的提升在统计上是显著的。
涨得最猛的居然是CodeLlama 34B,涨幅高达0.76分。研究者推测原因是这个模型的训练数据里大概率吃过更多公开的SVG示例代码,虽然它没见过研究者自创的这套画布指令,但SVG这种格式它见得多,用起来自然更顺手。
这个结果解释了一件很重要的事:**同一个模型,换一套表达工具,构图分数立刻发生变化,说明空间推理能力和它用什么语言来表达,这两件事是绑在一起的,不能只看最终画出来的图打分,然后就断言这个模型"空间推理能力强不强"。**
打个比方,这就像考察一个人能不能准确描述一段复杂的路线。如果你只允许他用文字描述,他可能说得磕磕巴巴、丢三落四;但如果给他一支笔和一张纸,让他画个示意图,同样的路线信息,他可能一下子就说清楚了。这不代表他的"路线记忆能力"变强了,而是不同的表达媒介,对同一份内在信息的呈现效率是不一样的。如果你只根据"文字描述得好不好"来判断这个人记不记得路,你可能会冤枉一个记性很好、但不擅长口头表达的人。
这也是为什么研究者坚持用自创的、没被污染过的指令集做主要测试,而不是直接用SVG。因为如果直接用SVG测,你测出来的高分里,混杂了"训练数据见过类似图案"这个因素,没法把"模型真的会空间构图"和"模型记住了SVG套路"这两件事分清楚。
生成之前,脑子里有没有一张草图
前面两个实验分别排除了"代码写作能力不足"和确认了"表达媒介会影响结果",但还剩一个更深的问题没有回答:模型在真正动笔写第一行代码之前,脑子里到底有没有一个已经想好的布局蓝图?
这个问题不能靠看最终生成的图片来回答,因为图片只是结果,看不出过程中发生了什么。研究者用了一种叫"探针"
*线性探针:一种简单的分析工具,通过在模型内部某一层的激活值(也就是模型"思考"过程中产生的一串数字)上训练一个线性回归模型,看看能不能从这串数字里读出某个特定信息,从而判断这个信息是不是已经被模型编码在了内部表示里。*
的技术,直接去看模型内部的"思维活动",而不是看它最后画出来的东西。
具体做法是:让模型读完提示词、但还没开始生成任何代码的那一瞬间,抓取它内部每一层的激活值,然后训练一个线性回归模型,试图从这些激活值里预测出一张6×6的粗略占用网格,也就是画布上哪些区域大概率会被画上东西。
这里有个巧妙的地方。研究者没有用某一次具体生成的结果作为"标准答案",而是用了同一个模型多次生成的平均占用情况,也就是这个模型对同一个提示词的"共识",这是因为一个不完整的提示词,比如"画一栋房子",本来就允许很多种合理的画法,单独拿一次生成结果当标准答案是不严谨的,就像你不能凭一个人某一次随口说的话,就断定这就是他内心真实、唯一的想法。
结果是,八个模型全部在统计显著性检验后,展现出比纯文本基线更强的预测能力,平均高出0.164(用R?
*R?:统计学中衡量一个模型解释数据方差比例的指标,取值0到1,越接近1说明预测得越准。*
来衡量)。也就是说,在模型还没写下第一行代码之前,它的内部激活值里,已经能读出一个大致的空间布局轮廓。
但这个发现只是故事的一半。真正有意思的是接下来这一步:研究者又把这个"能被读出来的布局"拆成了两部分。一部分叫"共享成分",也就是七个其他模型对同一个提示词也会预测出的通用布局;另一部分叫"专属成分",也就是这个模型和其他所有模型的共识相比,独有的、特殊的那部分。
拆开一看,结果很扎实:共享成分能被清晰预测出来(R?高达0.55和0.57),但专属成分几乎完全预测不出来(R?不超过0.005)。
这说明什么?
**生成之前模型内部存在的那张"草图",只是提示词本身暗示出来的通用布局,而不是这个模型接下来真正会画出的具体版本。**
打个比方,这就好比你让十个人分别去画"一个花园",还没动笔之前,每个人脑子里大概都会浮现出"应该有花有草有小径"这样的通用轮廓,这是提示词"花园"这个词本身自带的常识联想,人人都差不多。但具体这条小径往左拐还是往右拐、花坛摆在东边还是西边,这些细节谁都还没想好,得真正拿起笔画的时候才会一步步定下来。如果你只测出"每个人脑子里有个花园轮廓"就宣称"每个人都提前规划好了具体怎么画",那你就搞错了粒度。
那么问题来了:具体的空间布局细节到底是什么时候定下来的?是提前想好、只是没法测出来,还是真的在写代码的过程中一步步现场决定的?
研究者用了一个更直接的因果实验来回答这个问题。他们拿模型自己生成的代码,在第一条绘图语句之后截断,然后接上四种不同的续写:什么都不加、原封不动接上模型本来会写的下一条语句、把这条语句的坐标改到模型原本不会画的空白区域、或者改到模型本来打算稍后填充的区域。
如果模型是严格按照一份提前定好的蓝图在执行,那么发现有个形状被"挪走了",它应该会当成一个需要纠正的错误,继续画来补救。如果它压根没有提前蓝图,那这种坐标篡改对它来说应该毫无区别。
实验结果非常清楚。当形状被完成、且没有被篡改时,模型通常会停止继续生成代码。但一旦这个形状的坐标被悄悄改到一个原本没画到的空白区域,模型继续生成代码的比例大幅飙升:GLM-4 32B从43.8%跳到84.6%,Gemma-2 27B从2.5%跳到41.2%,两者都通过了严格的统计检验。
而且这个效应还有"剂量反应"关系:挪动幅度小一点,反应也弱一点;挪动幅度大一点,反应也强一点。这种渐进式的响应模式,很难用别的理由解释,它说明模型确实在实时追踪代码里已经写下的几何状态,而不是简单地按照套路续写。
这就好比一个人在拼乐高积木,说明书是模糊的、只告诉他"搭一座房子",他一边搭一边看眼前已经搭好的部分,决定下一块该往哪儿放。如果你趁他不注意,偷偷把已经搭好的一块积木挪到了别处,他会立刻发现"哎,这块不对",然后伸手去调整。如果不这样测,只看他最后搭出来的房子长什么样,你永远不知道他是靠一份写死的图纸机械执行,还是真的在边看边调整。这个实验证明的正是后者:**模型的构图过程是一个渐进的、根据当前已经写出的内容不断调整的过程,而不是执行一份提前固定好的空间规划。**
这些发现连起来意味着什么
把三个实验串起来看,故事其实很完整。
翻译任务确认了代码写作能力不是瓶颈,所有模型都能听写。布局任务的巨大分差,说明差距发生在"自己决定画什么"这一步。媒介消融实验证明,同一个模型换个表达工具,分数立刻改变,你测出来的空间推理能力,本质上是模型能力和表达媒介共同作用的产物,不能脱离媒介单独谈论。最后的探针实验和因果干预实验则揭示了一个更深层的机制:生成之前,模型内部确实存在一个粗略的空间规划,但这个规划只反映提示词本身暗示的通用信息,具体到某个模型会怎么画的细节,是在生成过程中一步步现场决定的。
这个结论其实呼应了开头那个盲人画家的故事,但方向反过来了。盲人画家证明了"没见过图像,也能形成有用的空间模型"。而这篇论文告诉我们,对于语言模型来说,这个"空间模型"存在,但它更像是一份粗略的路线图,而不是一张精确的施工图,具体怎么落地,还得靠现场发挥。
论文的作者也很诚实地指出了这项研究的边界。测试范围只覆盖了8B到34B这个参数量区间的开源模型,更大规模或者闭源模型是否也遵循同样的规律,暂时没有答案。因果干预实验也只在两个模型上做了验证,没有覆盖全部八个。而且这次的干预手段是修改文本层面的坐标数字,还没有深入到修改模型内部的神经元激活值,如果真要搞清楚"内部表示到底有没有驱动这个行为",还需要更精细的干预手段。
写在后面
读完这篇论文,最让我意外的一点其实是那个"共享成分vs专属成分"的拆解。之前我以为"探针能读出信息"就等于"模型有自己的想法",但这篇论文告诉我,探针读出来的东西,可能只是提示词自带的常识联想,跟这个模型到底"想不想得出新点子"没有任何关系。这个区分其实很值得推广到别的AI可解释性研究里,以后再看到"某某探针能从模型内部读出X信息"这种结论时,第一反应应该是问一句:这个信息到底是模型独有的,还是任何一个理解这句话的人都会想到的常识?
还有一个细节让我印象很深:研究者发现CodeLlama 34B画出"纯色一片"这种敷衍结果的比例,在某些类别里高达27%。这个"摆烂"行为背后可能藏着一个很朴素的机制:当模型对该怎么组织空间关系完全没把握时,与其瞎画容易露怯,不如干脆全涂一个颜色,某种程度上,这可能是一种模型自己都没意识到的"回避策略"。
如果空间推理能力真的这么依赖表达媒介,那接下来一个很自然的问题是:有没有一种"最优媒介",能让模型的内在空间理解力尽可能完整地释放出来?还是说,这件事根本没有终点,媒介和能力会一直互相拖累、互相成就下去?
Q&A
Q1:AM-Bench是什么?
A:AM-Bench是一套专门用来评测纯文本语言模型二维空间推理能力的评测基准,它把"能否把已知空间关系翻译成代码"和"能否自己组织空间布局"这两种能力分开测试,避免了以往评测把这两者混为一谈的问题。
Q2:为什么语言模型翻译任务都能拿满分,但自己构图时表现差异很大?
A:因为翻译任务只需要把已经说清楚的坐标、颜色、大小照抄成代码,属于听写型任务,八个模型的中位数得分都是1.0满分。但布局任务需要模型自己决定怎么摆放,这时候真正的空间组织能力差异才会显现出来,最好和最差的模型综合得分能相差一倍以上。
Q3:语言模型在写代码画图之前,脑子里是不是已经有一份完整的设计图?
A:不是完整设计图,只是一个粗略轮廓。研究发现模型生成前的内部激活值里确实存在可预测的布局信息,但这部分信息主要是提示词本身暗示的通用布局,模型独有的具体画法几乎无法提前预测出来,说明具体细节是在生成过程中逐步决定的,而不是提前规划好的。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.