跳到主内容
快讯直播
AI智模界
AI 词典

时间步嵌入:扩散模型怎么知道“现在噪到第几步”

Timestep AI 词典:Embedding">Embedding(时间步嵌入)是扩散模型里专门表示“当前处于第几个加噪/去噪步骤”的一小段向量。它回答的不是“画什么”,而是“现在噪声有多大、该去掉多少”。

扩散模型训练时,会把一张图逐步加噪,从干净图到近似纯噪声;生成时反过来,从噪声逐步去噪。假设总步数是 T,模型在每一步都要预测“这一步加进去的噪声”或“去噪方向”。如果只把步数 t 当成一个普通数字喂进去,比如 500,网络深处很容易把它当成一个孤立的数值:500 比 1 大很多,但“大 499 倍”并不代表噪声多 499 倍;而且训练时见过一个固定区间,推理时换成别的步数,模型可能完全没感觉。

主流做法是先用正弦位置编码(Sinusoidal Positional Encoding)把 t 变成一串不同频率的正弦、余弦值,再经过多层感知机(MLP)变成向量。这样每个时间步都像一组独特的“音叉频率”:相邻步的频率组合很接近,相隔远的步差异明显,而且曲线平滑连续。模型因此能分辨“轻微噪声”“中等噪声”“几乎纯噪声”,也能在没见过的步数上保持合理行为。

打个比方:如果把时间步直接写成数字,就像对厨师喊“火候 5”。他可能理解成 5 秒、5 档、5 克盐。正弦编码则像把“5”翻译成“中火,第 5 分钟,锅已经热了”的完整坐标,厨师一听就知道现在该干什么。

时间步嵌入通常会被注入网络每个残差块,或者通过自适应组归一化(AdaGN)去调制特征:让浅层和深层都知道当前噪声水平。它和另外两个常被混为一谈的概念不同:

概念回答的问题典型作用
时间步嵌入现在噪到第几步告诉模型当前噪声水平,决定去噪力度
文本/类别嵌入要生成什么控制内容、风格、类别
位置编码序列里第几个 token让 Transformer 知道词序

对从业者来说,时间步嵌入是采样器、少步生成、模型蒸馏里很敏感的一环:条件给得弱,模型可能在不同噪声水平下用错策略,生成发灰、过曝或结构崩坏。对普通人来说,它解释了为什么 AI 画图不是“一步成图”,而更像一位知道当前进度、逐步擦除噪声的修图师。具体实现细节以官方代码或论文为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。