你有没有想过,同样一张图片,同样一套模型参数,仅仅因为生成时"先画哪里后画哪里"的顺序不同,最终质量可能天差地别?
这不是夸张。宾夕法尼亚大学的研究者在MAR图像生成模型上做了个实验:固定权重,固定8步的生成预算,只是把"先画哪些像素块"的策略换一换,FID分数(一种衡量生成图像质量的指标,数值越低越好)从139.8掉到了8.32,差了整整17倍。
这就是这篇论文想解决的问题。他们给出了一个统一的框架,能在真正开始生成图像或文本之前,就预测出哪种解码顺序会更好。
**自回归和扩散模型,一直被当作两个世界**
如果你关注过生成式AI,大概知道两种主流套路。
自回归*:从左到右、一个接一个地生成内容,比如写一句话时先出第一个词,再根据第一个词出第二个词,像接龙一样。GPT系列用的就是这个思路。
扩散*:一开始生成一堆纯噪声,然后反复"去噪",让整张图片或者整段内容同时逐渐变清晰,Stable Diffusion之类的图像生成模型是这个套路的代表。
过去几年,大家一直觉得这两种方法是两条平行线:自回归适合处理离散的文字token,扩散适合处理连续的像素或者特征值。直到最近,开始有研究者尝试把两者揉在一起,比如让图像生成也按坐标顺序逐步揭示(MAR模型),或者让文本生成也能并行处理多个位置(LLaDA模型)。
问题是,这些"混血"模型在设计的时候,解码节奏是被研究者"手工定死"的,先验证这个节奏好不好用,然后发论文。换句话说,没有人在真正跑模型之前,就能告诉你"这套节奏值不值得试"。你只能老老实实跑一遍,看结果好不好。这篇论文就是想捅破这层窗户纸:能不能在跑之前就算出来?
**所有解码方式,都是在一张格子图上走路**
论文的第一个关键想法,是给所有解码方式画一张统一的地图。
想象你有一串需要生成的坐标,可能是文字的每个字符位置,也可能是图像的每个像素块。每个坐标都有一个"腐蚀程度",从完全干净(已经生成好了)到完全被污染(还是一片噪声或者遮罩)。
这些坐标的腐蚀程度状态组合起来,就形成了一个高维的格子空间,论文把它叫做腐蚀格*:每个坐标拥有自己的清晰度等级,所有坐标清晰度的组合构成一个多维度的坐标系统,起点是全部坐标都"脏"的状态,终点是全部坐标都"干净"的状态。
一次解码过程,就是在这个格子里从"全脏"走到"全干净"的一条路径。每走一步,你要决定更新哪些坐标、更新到什么程度。自回归模型走的是"一个一个来"的顺序路径,经典扩散模型走的是"所有坐标一起同步降噪"的同步路径,这俩看起来风马牛不相及的方法,其实只是这张地图上两条特殊的路线而已。
研究者还做了个验证实验:训练同一套权重,让它既能走自回归的路径,也能走扩散的路径,还能走介于两者之间的各种混合路径。结果显示,一套参数确实能同时胜任这些不同的走法,在text8文本数据集上,这套统一模型在纯序列模式下的表现,甚至比专门训练的掩码扩散模型还低0.06个比特每字符。这说明这张"地图"不是纸上谈兵,是真能用一套参数走遍全图的。
**走捷径是要付代价的,这个代价能提前算出来**
有了地图还不够,你还得知道走哪条路更划算。论文给出的核心度量叫依赖代价*:当一步同时更新多个坐标时,如果把它们当作互相独立来采样(也就是各自按自己的条件概率分布生成,互不参考),会丢失多少本来存在的关联信息,这个丢失量,就是代价。
这里有个很直观的类比。假设你要给一群朋友群发消息通知聚会时间,如果每个人的回复会互相影响(比如A说"我周六能来",B看到后可能改口说"那我也周六"),你一次性群发然后分别处理每个人的回复,就会丢失这种相互参考的信息,最后排出来的聚会计划可能根本凑不齐。如果不这样做,一个个单独问清楚、等前一个人确定了再问下一个,信息不会丢,但效率会很低。依赖代价衡量的正是这种"为了并行而牺牲的关联信息",而论文证明了这个代价可以精确地用信息论的工具算出来,等于整条解码路径偏离"完美采样"的程度。
更有意思的是,这个代价公式对文字token和连续数值(比如图像像素)都适用,是同一套数学。
**什么时候走捷径不花一分钱**
既然有代价,那自然会问:有没有办法完全不花代价,也能并行处理多个坐标?
答案是有,但要满足特定条件。论文证明,如果数据在某个图结构上满足马尔可夫性质(也就是一个坐标的取值只依赖于图上跟它直接相连的"邻居",不受更远坐标直接影响),那么只要你选的这几个坐标被"已经揭示"的坐标隔开,让它们在图上互不连通,这一步就是零代价的。
这就像切蛋糕分给不同房间的客人。如果几位客人分别待在互相不连通的房间里(房间之间的门已经锁死,相当于"已揭示坐标"把图分割开了),你完全可以同时给每个房间送蛋糕,互不影响。但如果两位客人在同一个房间里能说话商量切法,你一刀切下去同时服务两人,就必然要赌他们的喜好是否一致,这就是代价的来源。房间之间锁没锁门,直接决定了你能不能"一次搞定多人"而不出错。
基于这个原理,论文定义了零代价路径所需的最少步数,正好等于这个图结构的树深度*:一种衡量图结构复杂程度的指标,表示把一个图逐步拆解成互相独立的小块所需要的最少层数。
在一条链状结构(比如一句话里的字符序列)上,树深度大约是序列长度的对数值,也就是哪怕句子再长,拆解的步数增长也很慢。而在一个网格结构(比如图像的像素网格)上,树深度跟网格边长成正比,边长翻倍,步数也大致翻倍。这解释了为什么文本可以用很少的步数并行解码,而图像需要更多步数才能做到无损并行,因为网格的"连通性"天然比链条更复杂,想找到互不连通的小块,付出的拆解代价更高。
论文给出的具体方法叫中点规则*:每一步,找到当前每一段"还没揭示"的坐标区间的中点,优先更新它,这样每段区间都会被劈成两半,继续递归下去,这个规则在链状结构上刚好能用对数步数走完全程,是理论上的最优解。
**步数不够的时候,怎么排座次最省事**
现实往往没那么理想。很多时候你的计算预算有限,步数比理论最优值还少,这时候每一步都注定要付代价,问题变成了:在代价不可避免的情况下,怎么选坐标组合能让代价最小?
论文给出的核心工具叫核函数*:衡量两个坐标之间关联程度的一个数值,根据它们之间的距离、是否属于同一个语义单元(比如同一个单词)等因素而变化,可以提前从已经训练好的模型里测出来,不需要等真正解码时才知道。
研究者在text8文本数据和MAR图像模型上都做了测量。文本上的发现很直观:同一个单词内部两个字符之间的关联,比跨越单词边界的两个字符强2到4倍,距离超过16个字符后,关联基本消失。图像上,一个像素块对另一个像素块预测结果的影响,在棋盘距离超过8格之后就跌到5%以下。
这个核函数就是设计选坐标规则的指南针。如果两个坐标隔得越远关联越弱,那么选坐标时尽量让它们"分散着选",比选"挨在一起"的代价要小得多。论文设计了几种具体的选择规则,比如连续规则是挑挨在一起的坐标(代价最大),分散规则是尽量挑得开的坐标(代价较小),分隔规则是每个被遮罩的区段只挑一个坐标(在马尔可夫假设下代价为零)。
这里值得具体感受一下数字的分量。在text8文本上,仅仅是把"连续选择"换成"分散选择"(步数保持不变),每字符的比特数就能降低大约2个比特,而把步数本身做调整(比如从contiguous的8步变成16步),变化不到0.3个比特。这说明选哪些坐标,比选多少坐标更重要。
**从实验结果看,预测确实大多数时候是对的**
研究者在文本、图像和视频三种模态上都做了验证。
在text8上,用核函数预测的排序,在8步、16步、32步时都准确预测了连续、置信度、随机、膨胀、分散、分隔规则的质量排序。只有到64步时,因为每步只处理一个坐标,依赖代价已经降为零,排序才开始反映训练误差而非依赖代价的影响。
在MAR-B图像模型(基于ImageNet-256的像素生成模型)上,光栅扫描(raster,按行从左到右)、随机、中点、分散规则在8步和16步时,质量排序和核函数预测的完全一致。分散规则在8步时的提升尤其明显,比模型自带的随机顺序FID降低超过25%。
在LLaDA大语言模型上,研究者测试了一种"置信度+最小距离约束"的组合规则:既保留模型自己判断的置信度排序,又强制排除距离过近、关联过强的坐标对。这个组合规则相对于纯置信度规则,在生成式困惑度(衡量生成文本流畅自然程度的指标)上,8步时降低了超过1个单位的对数困惑度,在GSM8K数学题测试集上,8步和16步时准确率提升接近10个百分点。而且这个提升随着步数增多逐渐消失,到64步以后差异就不显著了,这恰好符合预测:步数越少,排序选择的影响就越大。
在视频生成模型上(基于Diffusion Forcing架构的SkyReels-V2),研究者测试了"记忆深度"这个概念,也就是每一段视频生成时参考多少帧之前的内容。核函数显示帧与帧之间的关联衰减得很慢,在6帧距离内还保留60%左右的关联强度,这意味着增加记忆深度不会显著提升画质,只会增加计算步数。实验结果印证了这一点:在主体一致性、背景一致性等四个VBench评测维度上,不同记忆深度的得分差异都在误差范围内。
**代价公式连大小都算得准,不只是排序**
更让人意外的是,这个代价公式不仅能预测谁好谁坏,连代价的具体大小都算得八九不离十。
研究者把预测的代价估计值和实际测量的额外比特数做对比。在2步的极端情况下,预测值大约是实际额外代价的30%到50%,随着步数增多,这个差距在绝对数值上会继续缩小。换句话说,这个框架不仅告诉你排序对不对,还能告诉你差距大概有多大,虽然不是完美精确,但方向和量级都站得住。
当然,这套理论也有失灵的时候。论文坦诚地指出了两类例外。
第一类是训练误差的干扰。当不同解码顺序的依赖代价本身就很接近时,模型训练过程中引入的误差反而成了决定排序的主导因素。比如在text8上64步解码时,连续规则和分散规则的bpc(每字符比特数)打成平手,这不是因为依赖代价一样,代价确实都接近零,而是因为两者各自的训练误差刚好抵消了排序预测的方向。
第二类是成对估计方法本身的局限。论文用的核函数衡量的是"两两坐标"之间的关联,但有些情况下三个或更多坐标联合起来的关联强度,超出了简单两两相加的范畴。在MAR图像模型上,嵌套规则(nested,先切中间行列再递归)的实际表现比随机规则还差,而低差异规则(low-discrepancy,用Halton序列生成均匀覆盖的采样点)的表现比分散规则还好,这两个结果都和成对估计给出的预测方向相反。
**绝对干净和带点"模糊"的中间状态,谁更划算**
论文还顺带回答了一个业界长期存在争议的现象:为什么扩散语言模型里,"吸收式"通道(也就是坐标状态只有"完全遮罩"和"完全清晰"两档,没有中间状态)往往比带有中间灰度等级的方案效果更好?
研究者专门训练了一个"分级"text8模型,给每个字符加了一个中间状态,先揭示这个字符属于空格、元音还是辅音这个大类,再揭示具体字符。理论上,中间状态能提前泄露一部分信息,降低后续依赖代价,但代价是,要把一个坐标从头到尾走完全程,需要两次"推进"而不是一次,在固定步数预算下,每一步能处理的坐标数量就减半了。
这就像考试时先选大题方向(选修A卷还是B卷)再具体答题,看似能提前锁定一部分不确定性,但答题的总时长没变,意味着真正写字的时间反而被压缩了。实验显示,8步时,纯吸收式模型的bpc依然更低,主要是因为分级模型步数变窄导致代价更高,到16步以后,这个劣势主要来自分级模型自身的训练误差,而不是依赖代价的问题。两种解释合在一起,说明"中间状态"这个设计想法在实践里基本不划算,除非省下的依赖代价能明显盖过步数被压缩的损失,否则还是老老实实用两档状态更稳。
Q&A
Q1:腐蚀格是什么,它解决了什么问题?
A:腐蚀格是论文提出的一个统一框架,把自回归和扩散这两种看起来完全不同的生成方式,都看成是在同一个多维坐标格子里从"全部污染"走到"全部清晰"的路径。它解决的问题是,让不同的解码顺序能够放在同一套数学语言下比较,而不是各说各话。
Q2:依赖代价怎么帮助提前判断解码顺序好不好?
A:依赖代价衡量的是一步并行更新多个坐标时,把它们当作互相独立采样会丢失多少真实关联信息。这个代价可以用预训练模型估计出的核函数提前算出来,不需要真正跑完整个生成过程,就能大致判断哪种坐标选择顺序更划算。
Q3:树深度和零代价解码步数有什么关系?
A:如果数据在某个图结构上满足马尔可夫性质,那么零代价并行解码所需的最少步数正好等于这个图的树深度。链状结构(比如文本序列)的树深度是序列长度的对数,网格结构(比如图像)的树深度跟边长成正比,这解释了为什么文本能用很少步数并行生成,而图像需要更多步数。