模型与参数

Transformer 模型:现在的图像与视频模型都跑在它上面

又称 attention mechanism, 注意力机制, 自注意力, DiT, 扩散 Transformer

Transformer 模型是一种把输入切成 token、再用注意力机制决定「谁影响谁」的神经网络。大语言模型跑在它上面,自从主流图像与视频模型换成扩散 Transformer(DiT)之后,你在用的生成模型基本也跑在它上面。

注意力机制在做什么

早期网络的视野是被结构写死的:卷积只看邻近像素,循环网络一步一步读、读完就忘。注意力机制把这个限制拆了,每个 token 都可以看向其余所有 token,自己决定对谁上心。自注意力是「一段序列看自己」的那种,提示词内部的指代关系就是这么解出来的。

整个把戏就这么多,而它能解释一类你早就遇到过的翻车。你要「蓝色天鹅绒球体上的红色玻璃立方体」,出来的却是蓝色立方体。渲染没出问题,是「红色」这个词的影响力摊到了两个物体上,没能落在其中一个身上。这时候把句子拆简单,比把「红色」再重复三遍有效得多。

图像与视频模型为什么换成了 Transformer

SD 1.5 和 SDXL 的去噪主干是卷积 U-Net。现在的旗舰图像与视频模型换成了扩散 Transformer,一般简写成 DiT。换的理由有三条。

一是可预测的规模效应。Transformer 的质量随参数、数据、算力稳定上涨,一次训练就从赌博变成了算预算。二是视频。把一段片子按空间和时间切块,每块算一个 token,视频就退化成「序列更长的文本问题」。三是文本条件:Transformer 模型能吃下长得多的文本嵌入,所以现在的模型能接一整段提示词,而老模型实际上写到二十几个词就被截断了。

这件事怎么改变你写提示词

  • 完整句子胜过关键词堆。 老模型靠 CLIP 文本编码器,token 窗口很短,所以堆 tag 是当年最划算的写法。DiT 模型是真的在读语言,正常的描述句更走得进去。
  • 但长度仍有天花板。 长提示词会稀释注意力,大概过了三四个从句,多出来的指令就开始被悄悄丢掉。
  • 顺序仍然有影响,只是没那么霸道。 靠前的 token 权重更高,把最不愿意丢的东西放最前面。
  • 重复不等于强调。 把「电影感」写三遍基本只是在浪费 token。要加强就用权重语法,或者用模型提供的反向提示词。

哪些锅不该架构背

有相当一部分失败和架构无关。数不清物体个数、拼不对长单词、五秒里保不住同一张脸,这些是某个具体权重和它训练数据的问题,不是 Transformer 这个结构的问题。一个从没见过好手部的模型,你把提示词结构调到天上去也变不出好手。

真正有用的是拿它来分诊:属性串味、从句被丢、构图漂移属于注意力问题,把提示词写短写干净就有救;模型压根不知道这个概念属于数据问题,得换模型、给参考图,或者去做微调。先把一次坏结果扔进这两个桶里的一个,能省掉大量白跑的生成。

这个效果的提示词

一条能稳定出效果的起点。主体和场景可以换,技术性的那几句留着。

A red glass cube resting on a blue velvet sphere, single hard key light from the left, macro lens, matte black background

试一下:Transformer 模型

打开生成器,参数已经预填好。

常见问题

Transformer 模型和扩散模型有什么区别?
两者回答的不是同一个问题。扩散说的是过程,反复去噪直到画面浮现;Transformer 说的是干这件事的网络结构。现在的扩散 Transformer 两者都是:方法用扩散,引擎用 Transformer。
注意力机制在图像模型里到底做什么?
它决定提示词的哪一部分和画面的哪一部分有权互相影响。你写「蓝色球体上的红色立方体」,是注意力把「红色」绑到立方体而不是球体上。属性绑错,本质上就是注意力分配错了。
为什么提示词写长了反而不生效?
注意力是一份要摊到所有 token 上的预算,你每加一个从句,其他从句分到的权重就变少,加到某个点之后新指令弱到改不动画面。先砍到「一个主体 + 一个动作 + 一个光感」,再一条一条加回去。
Transformer 一定比 U-Net 好吗?
在大规模下确实更好,这也是旗舰模型集体换架构的原因。U-Net 是卷积结构,只看局部邻域,全局构图更难稳;Transformer 一眼看全,而且加数据加算力就能线性变强。参数量小的时候,U-Net 反而更快。
为什么视频生成比图像贵那么多?
注意力要把每个 token 和其余所有 token 两两比较,成本大致随 token 数的平方增长。视频的 token 数是帧数乘每帧的分块数,所以时长或分辨率翻倍,算力是成倍数往上翻,不是加一点。

相关术语