XPeng联合北大港大推GroundAnything,视觉定位提速4.5倍
你有没有想过,AI在图片里找东西的时候,到底是怎么"看"的?比如你让它框出图里所有的"花",它是从左上角开始一个一个扫过去,还是像人眼一样,唰地一下全看到了?这个问题听起来有点无聊,但背后藏着一个工程上的大麻烦。目前主流的AI视觉定位模型,不管是识别物体、读文字还是理解界面,用的几乎都是同一种生成方式:一个...
图片里找东西这件事,AI究竟是怎么"看"的?
假设让它把图里所有的"花"都框出来,它是一格一格从左上角扫过去,还是像人眼那样,一眼就全收进来?
这问题听着不起眼,可它牵扯到工程上的大麻烦。眼下主流的AI视觉定位模型,做物体识别也好、文字读取也好、界面理解也好,大多走同一条生成路子:一个词一个词往外蹦,前一个没蹦完,后一个出不来。这就是自回归生成,简称AR。
**自回归*:Autoregressive 的简称,说的是模型在生成内容时得严格按顺序一步步来,每生成一步都要看前面已经生成了什么,就像接龙,一个接一个往外冒。
拿它写文章没问题,语言本来就是线性的,人说话也是一个字一个字往外蹦。视觉定位却不同。一张图里摆着二十个物体,它们的位置关系同时成立,没有谁必须先被"看见"、谁必须后被"看见"的道理。AR模型偏要把这二十个物体的坐标排成一队,一个一个往外吐。图里东西越多,吐得越久,放到需要快速响应的场景里就成了硬伤。
XPeng团队联合北大、港大等机构发表的论文,提出了一个叫GroundAnything的模型,想从根上解决这个问题。思路挺有意思:视觉定位本质上不是"排队"的事,那为什么要用排队的方式去生成?
反直觉的地方在于,多数人直觉里会觉得"并行生成肯定不如一个一个生成准",毕竟AR模型是久经考验的标准范式。可这篇论文的实验结果显示,方法用对了,并行生成不光能快4.5倍,精度损失只有0.74个百分点,这个数字小到几乎可以忽略。
定位到底难在哪
先说说这事儿的难度在哪。
视觉定位这个任务,听着简单,给张图,告诉AI"找出所有的人",它把人框出来就行了。实际场景却复杂得多。密集的人群场景里可能有几十上百个重叠的物体;一张截图里要精确点击某个像素级别的按钮;一份扫描文档里密密麻麻的文字要连带它们的位置一起识别出来。
这些任务有个共同点:输出量很大,可能要生成几十个甚至几百个坐标框。换成AR模式,模型就得老老实实地一个token一个token往外蹦,图里物体越多,等待时间就越长。
之前已有团队试过用"多token预测"来加速,比如LocateAnything这个模型,让模型一次性预测多个坐标点,而不是逐个预测。提速确实有,但本质上还是在AR框架内做局部优化,有点像给马车换更快的马,而不是换成汽车。
**MTP*:Multi-Token Prediction的缩写,多token预测,指模型一次前向传播能预测出多个后续token,而不是只预测下一个,用来缓解自回归生成的串行瓶颈。
那有没有更彻底的办法?研究者们把目光投向了扩散模型。
扩散模型,大家更常听到的是它在图像生成上的用法:从一张布满噪点的图起步,逐轮去噪,最终得到清晰画面。这个过程是"由模糊变清晰、多个位置一起修正",跟视觉定位的需要正好合拍——所有物体的坐标能一次性被"猜"出来,再依据图像证据统一修正,用不着排队。
可问题在于,此前把扩散模型用于视觉理解的那些工作,像 GUI 界面定位、文档 OCR,都是围绕某个具体任务来做的。能同时应付十几种视觉定位任务、精度还不掉队的通用扩散定位基础模型,一直没人做出来。GroundAnything 要补的正是这块空缺。
把定位任务看成"证据提取"而不是"文字接龙"
这篇论文最核心的一个观点转变,是重新定义了视觉定位这件事的本质。
按过去的做法,模型输出坐标被当作语言生成任务来处理:图片和文字提示送进去,吐出来一串带坐标的文字。既然归到文字生成,自然就套用了语言模型那套自回归的路子。
研究者给出了另一种看法:视觉定位说到底是在"提取结构化的视觉证据"。图里每个物体、每处位置、每条空间关系,都由图像本身和你提的问题共同决定,它们彼此独立地存在着,并没有谁先谁后的依赖顺序。
打个比方,你走进一个房间,四下看看,桌子、椅子、窗户、挂钟就都看到了。不用先确认桌子在,才能看见椅子——这些信息是同时进入视野的。要是非得闭着眼,先摸清桌子的准确位置,再摸椅子的位置,一件一件来,效率明显低得多;而且桌子一旦摸错,后面摸椅子的判断也可能受牵连,因为你是在前一个结果上往下推的。
这正是 AR 模式的隐患。前面生成的某个坐标一旦偏了,后面所有接着这个前缀生成的内容都可能被带歪,这就叫误差累积。反过来,让所有物体的位置同时被猜测、同时用图像证据来校验,误差就不会这样一层层传下去。
基于这个理解,GroundAnything采用了一种叫"块级掩码扩散"的生成机制。
**块级掩码扩散*:Blockwise Masked Diffusion,做法是把要生成的内容切成若干小块,块内的 token 彼此可见、同时生成和修正(双向注意力),块与块之间仍保留先后次序,前一块生成完才能开始下一块。图里那二十个物体,就是一组一组并行定位出来的,并非一个一个排队。
这套架构里有个挺巧的安排:GroundAnything并没有另起炉灶去训一个全新的扩散模型。它的来路是从一个已经训好的自回归模型GroundAnything-VLM直接“转化”而来。
视觉编码器是同一套,语言模型骨架也是同一套,连参数都没换,差别只落在推理阶段用哪种注意力模式。打个比方,一个人既能按正常语速一个字一个字往外说(自回归式),又练出了“扫一眼看一片、再回头修细节”的快速浏览本事(扩散式),两样本事共用一个大脑,只是调用方式不一样。
**自回归转扩散**:AR-to-Diffusion Conversion,说的是预训练模型本来的网络结构和词表都不动,只加一个“掩码token”,再靠联合训练,让同一套参数既会按顺序生成(AR),也会整体填空式生成(扩散)。这样就把一个自回归模型改成了同时具备扩散能力的模型。
训练具体怎么落地?论文的做法是:把待生成的文字序列按32个token一组切块,每一块用一个概率值来定遮住多大比例的token,被遮的位置填上掩码符号。模型要同时学两件事——像正常语言模型那样依据前文预测下一个词,以及像完形填空那样根据周围没被遮住的内容把遮住的部分猜出来。两个学习目标各占一半权重,放在一起训。
这么做的好处不难想见。从头专门训一个纯扩散模型,成本高不说,原来自回归模型已经掌握的视觉理解能力还可能丢掉了。走“转化”这条路,等于直接复用现成的知识底子,再额外教它并行生成的技巧。
推理阶段还有一个挺有意思的技巧,叫“自我投机解码”。
**自我投机解码**:Self-Speculative Decoding,是在同一个模型内部动手:先让扩散模式快速“打草稿”,生成一批候选token;随后交给自回归模式逐个校验这批草稿,通过的部分直接采用,碰到第一个没通过的位置,就用自回归模式重新生成正确结果把它换掉。
背后的道理是:扩散模式快,但并行猜测难免偶尔猜错;自回归模式慢,可它严格按顺序生成,准确性有底。那就让扩散模式先“快速出草稿”,自回归模式负责“精确把关”,两边配合起来。好比写文章先快速口述一段录下来,再逐句对着原意校对,哪句说错了改哪句,不用从头再口述一遍。少了这个“先打草稿再校对”的机制,就只剩两条路:全程自回归一字一句推敲,慢但准;或者全程扩散一次成型,快但可能有瑕疵。自我投机解码把两边的长处捏到了一块。
论文测了两种校对节奏。线性模式每轮做两次前向计算,一次打草稿、一次校验;二次模式把打草稿和校验融进一次前向计算,但查询的token量会随块大小呈平方增长。实验结果有点反直觉:块大小设成32时,线性模式反而跑得更快,每秒处理223.8个token,二次模式只有49.9个token每秒。原因是二次模式虽然省了前向调用的次数,单次计算量却涨得更凶——跑腿的趟数少了,每趟扛的东西重了好几倍,算下来不划算。
落到效果上,COCO数据集上自我投机解码把吞吐量拉到纯自回归模式的4.51倍,精度只掉了0.74个百分点。这个损失有多小?一百次定位里,大概不到一次的结果会受这种加速方式影响。
除了自我投机解码,GroundAnything还提供了一种更轻量的加速手段:熵引导解码。
**熵引导解码**:Entropy-Guided Decoding,做法是模型每生成一步,都去算每个待填位置概率分布的信息熵,也就是“不确定性”。某个位置的不确定性低于设定阈值,才把这个位置的结果“定下来”;不确定性偏高的位置先放着,等后续信息更充分再处理。
熵说白了就是“模型对自己预测有多大把握”。某个位置填“猫”的概率是99%,熵就低,说明模型心里有数;填“猫”和“狗”各占50%,熵就高,说明模型正纠结。
这套逻辑只先定下模型有把握的位置,模棱两可的先搁着,等别的信息补进来再处理。阈值可以调:调高,模型更激进地一次确定更多位置,速度快了,出错的可能也大;调低,模型更谨慎,速度慢些但稳当。
实验里0.8附近是个比较合适的点,COCO数据集上F1分数能到60.72,吞吐量是自回归模式的2.56倍。可阈值再往上推到1.0,分数反倒跌到54.06——贪多嚼不烂,这话在这儿也成立:一旦放开让太多不确定的位置同时拍板,错误就开始累积。
这个可调阈值,某种程度上像给用户装了个“思考力度”的旋钮,跟一些大语言模型里的“推理强度”设定有点像。你可以让它想得更深、慢一点,也可以让它反应更快、没那么周全。
要训一个能应付十几种任务的视觉定位模型,光有架构不够,还得有量大质优的训练数据。论文为此专门设计了一套数据生产流程。架构之外,这块同样值得说。
核心思路叫“多教师融合加任务验证”。做法是找多个各有专长的现成AI模型(论文里叫“教师模型”)对同一张图分别标注——有的擅长认类别,有的擅长给精确坐标,有的擅长识别文字——再把它们的标注结果按“字段”这个粒度融合,而不是整条标注一刀切地采纳或丢弃。
举个例子,教师A框出的物体位置很准,类别却认错了;教师B类别认对了,框得有点歪。系统不会因为教师A“错了”就把整条标注丢掉,而是把教师A的位置信息和教师B的类别信息拼到一起,各取所长。
论文里还描述了一套标注系统,叫专家驱动数据引擎。它让多个教师模型在字段级别融合标注、分任务做有效性验证,再用通过验证的数据训练出一个“定位专家模型”,拿这个专家模型继续迭代标注更多数据,越标越准,形成闭环。
系统里还设了一道关卡:碰上“图里压根没有某个类别”的情形,它不会把“没检测到”直接当作“确实不存在”的依据。模型没检出来,和东西真的不在,完全是两码事。好比在人群里没找到朋友,不等于朋友没来,可能只是你没看见。只有拿到明确证据支撑“确实不存在”这个结论,系统才会把它写进训练数据;否则这条标注就一直挂着“待定”,等更多观察角度来确认。
三十个测试场景,GroundAnything表现如何
方法设计说了这么多,最终还是要看实际效果。论文在30个基准测试上把GroundAnything和44个竞品模型做了对比,覆盖常规物体检测、密集小物体检测、指代性定位(根据一句描述找到对应物体)、GUI界面定位、OCR文字识别、文档版面分析等11大类能力。
结果显示,自回归版本的GroundAnything-VLM在同等规模模型中拿到72.42%的综合得分,创下新的最佳成绩,和当时最强的GPT-6 Astra(71.35%)基本打平甚至略胜一筹。纯扩散版本的GroundAnything拿到61.75%,这个数字本身可能不算惊艳,但意义在于,这是第一个在相近规模下用纯扩散方式超越此前最强自回归模型(LocateAnything的53.32%)的视觉定位模型。
具体拆开看几个有代表性的场景:
密集物体检测的Dense200数据集上,GroundAnything-VLM拿到75.55分,远超GPT-6 Astra的65.04分。这说明这套方案在“一张图里塞满几十个物体”这种高密度场景下优势尤其明显,恰好对应了前面说的,并行生成在输出量越大的任务里越能发挥价值。
指代性定位任务RefCOCOg上,GroundAnything(扩散版)反而比自回归版本表现更好,验证集91.61分对84.37分。这个反差挺有意思,说明扩散模式在处理需要综合全局语言和空间信息做判断的任务上,有自己的独特优势。
但扩散模式也不是所有任务都更强。OCR和GUI点击定位上,自回归版本普遍领先。比如SROIE收据识别任务,自回归版本拿到71.15分,扩散版本只有43.64分,差了27.51个百分点。这提醒我们,不同任务对“并行”和“顺序”的依赖程度不一样,文字识别这种需要严格保持字符顺序的任务,可能天生更适合顺序生成的方式。
输出效率的隐藏优势:更短的“句子”
除了速度和精度,这篇论文还提到一个容易被忽略但很实际的优势,输出的token数量更少。
论文对比了GroundAnything和SEED1.5-VL在同一张图上生成检测结果需要用多少token。COCO数据集上,SEED1.5-VL平均每个检测框要用148.8个token,GroundAnything只需要7.6个,差了将近20倍。物体更密集的Dense200数据集上差距更夸张,74.5个token对5.1个token,差了14.6倍。
能做到这一点,靠的是统一词表的设计:坐标被压成1000个离散的“坐标token”(从<0>到<999>),模型不必再用自然语言去描述一长串数字。打个比方,记电话号码时直接写“13812345678”,比写成“一三八一二三四五六七八”省事得多——表达方式压得够紧,传输效率的上限也就跟着定了。
按实际测算,一张图要预测的物体框达到三四百个时,这种压缩带来的效率优势格外突出:GroundAnything的生成时间远低于自回归版本,而且物体越多,省下的绝对时间越多。
写在后面
读完这篇论文,有几个地方让我反复琢磨。
头一个问题是“误差累积”。自回归生成最要命的隐患其实不是慢,而是一步走错、后面全跟着错。可扩散模型处理这个毛病也不是零成本,论文里就专门写到,在OCR和GUI点击定位上,扩散模式的精度明显不如自回归模式,差距有时能达到二十多个百分点。可见“并行”并非万能药:元素之间关系松散、彼此独立的任务(比如密集物体检测)更适合它,而那些要求严格保持局部顺序关系的任务(比如判断一个单词里字母谁先谁后),它就不太吃得开。这条边界还值得继续摸。
第二个让我意外的细节是,论文用了大量篇幅去讨论“不确定性门槛”(熵阈值)这么个看似不起眼的超参数,可实验结果显示,它恰恰是模型“又快又准”与“又快又糙”之间的分水岭。这让我想到,很多工程系统里真正左右效果的,常常不是某个宏大的架构设计,而是这种藏在细节中的可调旋钮——把它调到位,整个系统的表现曲线会完全变样。
还有一点挺触动我:论文反复强调“数据验证不能靠空结果证明不存在”。这其实是个很朴素、却容易踩进去的逻辑陷阱——没找到不等于不存在。这个原则放到机器学习数据标注之外的不少场景里同样成立,比如科学实验里“没观测到效应”不能直接等于“效应不存在”,背后要靠更严格的验证链条,而不是简单默认一下。
论文留下的一个开放问题是:将来若要做规模更大、任务更多的统一视觉模型,扩散和自回归这两种生成范式究竟该如何分工?是像这篇论文那样让同一套参数身兼两职,还是按任务类型彻底拆成专门的子系统?眼下还没有定论,但这关系到下一代多模态AI系统最终会长成什么样子。
Q&A
Q1:GroundAnything是什么?
按研发方的说法,GroundAnything是一个视觉定位基础模型,参数量为40亿。它把图像定位看成"证据提取",不走"文字接龙"那条路,靠扩散模型做并行生成。物体检测、OCR、GUI定位等十几种视觉任务,它都能一起处理。速度上,最高可达自回归模式的4.51倍,精度只掉0.74个百分点。
那它跟普通自回归视觉模型差在哪?普通自回归模型出坐标,得一个token接一个token排队往外吐,图里物体一多,耗时跟着涨。GroundAnything改用块级掩码扩散技术,多个物体的位置能同时被猜、被修正,不用排队。它还支持自我投机解码:扩散模式先快速打草稿,自回归模式再做校验,速度和准确性两头兼顾。
任务表现上也有分化。密集物体检测(比如Dense200数据集)和指代性定位这类任务,GroundAnything的扩散版本表现突出,甚至压过自回归版本。但到了OCR文字识别和部分GUI点击定位任务,自回归版本精度更高,差距有时拉到二十多个百分点。照此看,并行生成更适合元素彼此独立的任务,需要严格顺序的任务就不太对路。