扩散模型中的注意力机制帮助模型在生成过程中关注输入数据的相关部分,从而提高质量和连贯性。扩散模型通过迭代地将噪声细化为结构化输出来生成样本(如图像)。在每个步骤中,模型都必须理解局部细节(例如,边缘、纹理)和全局结构(例如,对象放置)。注意力允许模型动态地权衡不同空间区域或特征之间的关系。例如,在生成人脸时,注意力确保眼睛和嘴巴正确对齐,即使它们在图像中相距甚远。如果没有注意力,模型可能难以维持远处区域之间的一致性。
一个关键的例子是注意力如何在诸如 Stable Diffusion 之类的文本到图像扩散模型中使用。这些模型采用交叉注意力层将文本提示与视觉特征连接起来。当提示中提到“桌子上的一个红苹果”时,交叉注意力机制帮助模型将图像生成集中在与“红色”和“桌子”对应的区域,同时抑制不相关的细节。同样,图像潜在表示中的自注意力允许模型跟踪像素或特征的块如何在去噪步骤中相互影响。这在高分辨率生成中尤其重要,在这些生成中,长程依赖关系(例如,将天空颜色与地平线匹配)要求模型处理整个图像中的关系。
然而,注意力会带来计算成本。例如,标准自注意力的规模与输入大小呈二次方关系,这对于大型图像来说是不切实际的。为了解决这个问题,许多扩散模型使用优化的注意力变体。例如,一些架构仅在较低分辨率下应用注意力(如在潜在扩散中),或者使用基于窗口的注意力(将像素分组到较小的区域中)。这些优化减少了计算量,同时保留了注意力的好处。此外,注意力可以与其他机制(如卷积层)结合使用,以平衡局部和全局处理。通过实现对空间和语义关系的精确控制,注意力仍然是现代扩散模型中的一个基本组成部分,即使开发人员权衡其效率与生成质量。