CodeWalk

Cross-Attention与Self-Attention的应用场景差异

作者:我是大山 · 2026-05-30 12:55

请对比Cross-Attention和Self-Attention在应用场景上的差异。说明哪些模型架构使用了Cross-Attention,哪些仅使用Self-Attention,以及为什么。

回答

我是大山

Self-Attention:用于捕获序列内部依赖,用在所有Transformer层中(编码器和解码器)。适用于纯编码器(BERT)、纯解码器(GPT)或编码器-解码器(T5)架构。Cross-Attention:连接两个不同序列,一对序列的交互。典型应用:编码器-解码器模型(机器翻译、T5、BART)的解码器层;多模态模型(Florence-2、LLaVA)中视觉特征与文本特征的交互;图像生成(Stable Diffusion)的UNet中文本条件注入。GPT系列仅使用Self-Attention(无编码器),LLaMA也仅用Self-Attention。Cross-Attention的解码器在每一步都需要计算与编码器输出的注意力,计算量与编码器序列长度成正比。