交叉注意力是不同模态和架构不同部分之间的桥梁。它是翻译模型连接源语言和目标语言、图像生成器遵循文本提示、多模态模型关联图像与文本,以及检索增强系统整合检索文档的方式。每当两个不同的输入需要交互时,通常都涉及交叉注意力。
在自注意力中,Q、K 和 V 都来自同一个序列——每个 token 关注同一输入中的其他 token。在交叉注意力中,Q 来自一个来源(如解码器),K、V 来自另一个来源(如编码器)。解码器 token 问"输入中什么与我正在生成的内容相关?",注意力机制提供输入的加权摘要。
文本到图像模型使用交叉注意力来基于文本条件化图像生成。文本提示被编码为嵌入向量(通过 CLIP 或 T5),在每个去噪步骤中,图像特征通过交叉注意力层关注文本嵌入。这就是模型知道如何生成"冲浪板上的猫"的方式——图像中的每个空间位置都关注相关的词。操纵这些交叉注意力图谱就是提示权重和注意力编辑等技术的工作原理。
自注意力和交叉注意力具有不同的计算特征。自注意力与序列长度呈二次关系(每个 token 关注其他每个 token)。交叉注意力与解码器长度乘以编码器长度呈线性关系(每个解码器 token 关注所有编码器 token)。在实践中,编码器输出通常比解码器序列短得多,使交叉注意力比解码器自注意力更廉价。