Transformer 的基本计算结构

从注意力、位置表示和逐位置变换理解 Transformer,避免只用模型名称解释模型。

Transformer 的基本计算结构

Transformer 以注意力机制处理序列中不同位置的关系,并使用逐位置前馈网络继续变换表示。原始结构包含编码器和解码器,多头注意力、位置编码、残差连接与归一化共同工作。只提“注意力”不足以说明完整计算过程。

注意力按查询选择信息

缩放点积注意力把输入投影为查询、键和值。查询与各键计算相似分数,经过缩放和 softmax 得到权重,再对值做加权汇总。输出因此依赖当前查询以及所有允许访问的位置。

缩放因子用于控制向量维度增加时点积数值过大,避免 softmax 进入梯度很小的区域。注意力权重表达模型当前计算中的信息分配,不应直接等同于人类可解释的重要性或因果贡献。

多头机制建立多个投影空间

多头注意力将查询、键和值投影到多个子空间,分别计算注意力,再拼接并变换。不同头可以学习不同位置关系或表示组合,但并不保证每个头都具有清晰、固定的语言学含义。

头数增加会改变每个头的维度、计算量和参数组织。是否有效要由任务和模型规模验证,不能把更多头简单理解为更多知识。

位置信息补回序列顺序

单纯的自注意力对输入排列缺少顺序区分,因此需要位置表示。原始论文使用正弦与余弦位置编码,将位置向量加入词表示。后续模型也采用可学习位置、相对位置等方法,但它们不属于所有 Transformer 的共同实现。

位置机制决定模型怎样感知距离和顺序,也影响超出训练长度时的行为。支持较长输入格式,不表示模型在所有距离上都能稳定利用信息。

编码器与解码器承担不同交互

编码器层使用自注意力和前馈网络更新整段输入表示。解码器除了自注意力,还可对编码器输出进行交叉注意力。生成任务中的解码器自注意力需要因果掩码,使当前位置不能读取未来标记。

掩码还可排除填充位置。掩码含义、张量形状或数值处理错误,会造成信息泄漏或无效关注。编码器模型、解码器模型和编码器解码器模型使用结构的方式不同,不能仅用 Transformer 名称推断能力。

残差与逐位置网络完成层变换

每个注意力子层之外还有残差连接和归一化,帮助信息与梯度跨层传播。逐位置前馈网络对每个位置独立使用相同参数进行非线性变换,补充注意力中的位置间混合。

自注意力对序列长度的计算和内存成本通常增长较快,长序列需要考虑实际实现和近似方法。原始结构提供了基础框架,具体模型还会改变归一化顺序、位置机制、激活和注意力范围。

资料依据