一个解码顺序能让图像生成质量差一个数量级,这件事值得算清楚
你有没有想过同样一张图片同样一套模型参数仅仅因为生成时先画哪里后画哪里的顺序不同最终质量可能天差地别这不是夸张。宾夕法尼亚大学的研究者在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步以后这个劣势主要来自分级模型自身的训练误差而不是依赖代价的问题。两种解释合在一起说明中间状态这个设计想法在实践里基本不划算,除非省下的依赖代价能明显盖过步数被压缩的损失否则还是老老实实用两档状态更稳。QAQ1腐蚀格是什么它解决了什么问题A腐蚀格是论文提出的一个统一框架把自回归和扩散这两种看起来完全不同的生成方式都看成是在同一个多维坐标格子里从全部污染走到全部清晰的路径。它解决的问题是让不同的解码顺序能够放在同一套数学语言下比较而不是各说各话。Q2依赖代价怎么帮助提前判断解码顺序好不好A依赖代价衡量的是一步并行更新多个坐标时把它们当作互相独立采样会丢失多少真实关联信息。这个代价可以用预训练模型估计出的核函数提前算出来不需要真正跑完整个生成过程就能大致判断哪种坐标选择顺序更划算。Q3树深度和零代价解码步数有什么关系A如果数据在某个图结构上满足马尔可夫性质那么零代价并行解码所需的最少步数正好等于这个图的树深度。链状结构比如文本序列的树深度是序列长度的对数网格结构比如图像的树深度跟边长成正比这解释了为什么文本能用很少步数并行生成而图像需要更多步数。