像素空间生成模型绕开了单独训练的自动编码器,直接从噪声学像素,代价是整张分辨率的图像都得表示成 Transformer token。大多数这类模型一个图像块占一个 token,于是同一张网格同时决定了模型读什么、每个 token 预测什么、以及多少个 token 要挤进全局注意力——想看更细,注意力代价就直接跟着涨。256×256 的图上,patch 从 16×16 降到 8×8,token 数从 256 涨到 1024,稠密注意力的二次项就放大 16 倍。
问题出在这种耦合上:token 在全局注意力里能跟谁通信,是由它坐在网格的哪个位置决定的,而不是由它最后产出什么决定的。
把切分方式改写成预算分配
北京大学、南洋理工大学和商汤的团队提出 SpecSlot,换的正是切分方式。它把图像 token 总数写成 N = W × K:W 是空间锚点密度,K 是锚点内部的频谱细分。每个锚点展开成 K 个槽,每个槽固定负责一段互不重叠的 DCT 系数带;输出侧再叠一个空间残差做局部修正。生成状态、目标和损失都仍然留在像素空间。
通信按角色来分。每个锚点里最低频的那个槽是载体,只有它进入全局注意力,其余槽只在锚点内部局部交互。调度顺序是全局、全局、局部、局部,重复三轮,一共六个全局块加六个局部块,维度一致。于是全局序列长度只跟 W 走,不再跟 W×K 走:ImageNet-256、s=16、K=4 的配置下,全局序列是 W+C = 288 个 token,而同条件下把所有槽都放进全局的方案需要 1056 个。对应的二次项从 12(WK+C)²d 变成 6(W+C)²d + 6WK²d。
这一层被论文概括为"tokenization as allocation"。它同时松开了两件此前绑在一起的事:读输入的密度由输入网格决定,输出角色由锚点内的频带决定,谁也不再绑架谁。
优势要到 512 分辨率才真正拉开
论文自己的评测里,ImageNet-256 上 SpecSlot W256/K4 拿到 6.59 FID、129.20 GFLOPs,只比同算力对照 JiT-CM 的 6.68 好 0.09 分;作者说这一差距落在五个随机种子的 95% 区间内,基本算持平。真正的质量赢家仍是更贵的 JiT-B/8:4.34 分、218.50 GFLOPs。
到了 ImageNet-512,差距才打开:W256/K4 是 9.14 FID、135.64 GFLOPs,比同算力对照的 11.98 低 2.84 分,前向 FLOPs 还少 3.9%;跟更贵的 JiT-B/16(8.45 分、219.56 GFLOPs)之间只差 0.69 分,算力便宜 38.2%,吞吐 12.69 对 7.93 img/s。作者给的解释是:512 下每个锚点覆盖的像素是 256 的四倍,而全局序列长度始终固定在 288,多出来的细节被留在了锚点内部。
文生图那边,256 分辨率下 DPG-Bench 62.21,比 JiT-B/8 的 61.15 高 1.06 分,前向算力从 218.77 降到 129.86 GFLOPs,少 40.6%。但同一个模型在 GenEval 上是 26.99,低于 JiT-B/8 的 29.78。同一套架构换文本条件就能用,不需要针对文生图改结构,代价是在另一条对齐指标上让了分。
一个容易被跳过的细节:算力对齐不等于速度对齐
路由对比表最能说明这篇工作的性质。同一 W256/K4 配置下,GGLL 是 6.59 FID、129.20 GFLOPs、9.06 img/s;算力匹配的稠密全局对照 Dense-global-CM 是 6.81 分、128.96 GFLOPs,却只有 5.80 img/s。两者实测前向 GFLOPs 几乎一样,墙钟吞吐却差了一大截——在 20、30、50 个 Heun 区间三个预算上,GGLL 的吞吐都是对照的 1.47 到 1.49 倍。
再往上一层,把全部 1024 个槽都放进全局注意力的 Full-global 拿到 5.84 分,是这张表里最好的 FID,代价是 225.82 GFLOPs,比 GGLL 高 74.8%。也就是说,SpecSlot 赢的不是"同算力下的最高分",而是把"全都全局通信"这条路的成本砍掉 42.8% 之后,仍然守住了比算力匹配对照更好的质量。它选的是中间那个受注意力约束的工作点,不是最左边的那个。
机制自证:低频确实先被恢复
论文给了一套机制证据。固定 W256/K4/B1536,只改哪个槽拥有跨锚点访问权:槽 0 得 6.59,换成槽 1、2、3 分别是 6.91、7.21、6.97,全都更差。输出分支的探针显示,频谱分支自能量更大,而空间分支的份额随流过程从 0.07 涨到 0.23;在 t=0.90 处拿掉任一分支,速度 MSE 分别涨 32.1 倍和 64.1 倍,在 t=0.05 处则是 1.1 倍和 2.1 倍——谱骨架从头到尾都在,空间修正是后期才补上来的高频。
分配消融则显示,固定槽预算 2048 时,锚点越多分越低(W64/K32 的 7.28、W256/K8 的 6.28、W1024/K2 的 5.66);而锚点固定为 256 时,把 K 从 2 加到 4 再加到 8,增益一次比一次小,最后一次翻倍只换来 0.31 分。
我的判断
这批结果目前只有一个来源:论文、官方代码库和项目页同属一个团队,所有分数都是作者自测,还没有第三方复现;论文本身标注在 ICLR 2027 评审中。更合适的读法是把它当成一个方法学提案,而不是一条已被验证的结论。
但它指的方向值得留意。过去两年像素空间生成的讨论基本围绕"怎么把自动编码器彻底拿掉",这篇把问题换成了"细节和通信预算怎么解耦"。它在 256 上没能赢过更贵的 JiT-B/8,赢的是在受约束区间给出不被支配的工作点;优势明显出现在 512 上,这恰好暗示解耦的收益跟分辨率一起放大,而不是均匀铺开。
对做生成系统的人来说,更实用的可能是它顺手给出的那条对照结论:算力对齐的两个模型,墙钟速度可以差出一截。压 FLOPs 不等于压延迟,尤其是当你真正改的是注意力的形状而不只是它的规模。下一步要看的,是这套频带分工能不能撑到更大规模,以及在视频这类时序数据上,低频与高频的分工是否还成立。
论文与代码:arXiv 摘要页 arXiv:2610.40647,项目页 yangjiongfan.site/specslot,代码仓库 JiongfanYang/SpecSlot。