更改

添加2,203字节 、 2026年7月1日 (星期三)
第96行: 第96行:     
这种设计使得每个注意力头在较低维度子空间中进行计算,从而在保持总计算量与单头全维度注意力大致相当的前提下,显著提升了模型的表达能力与学习多样关系的能力。
 
这种设计使得每个注意力头在较低维度子空间中进行计算,从而在保持总计算量与单头全维度注意力大致相当的前提下,显著提升了模型的表达能力与学习多样关系的能力。
 +
 +
===解码器的特殊设计===
 +
 +
与编码器相比,解码器在结构上具有若干关键差异。首先,解码器在每一层中额外引入了一个编码器-解码器注意力子层(encoder-decoder attention)。在该子层中,查询(<math>Q</math>)来自解码器前一子层的输出,而键(<math>K</math>)和值(<math>V</math>)则来自编码器的输出表示,从而使解码器能够在生成序列时利用输入序列的全局信息。
 +
 +
其次,解码器中的自注意力采用了掩码机制(masked self-attention),以保证自回归生成过程的正确性。具体而言,对于位置<math>i</math>,模型仅允许其关注位置小于或等于<math>i</math>的信息,而对所有位置<math>j > i</math>的注意力权重在<math>\mathrm{softmax}</math>之前被置为<math>-\infty</math>,从而在归一化后对应概率为零。
 +
 +
此外,在训练阶段,目标序列会整体向右平移一位作为解码器输入,即:
 +
<math>
 +
y_i \text{ 仅依赖于 } y_{<i}
 +
</math>
 +
这种“输出偏移”策略确保了模型在位置 $i$ 的预测只依赖于先前已生成的内容,从而与推理阶段的自回归生成方式保持一致。
 +
 +
====位置编码====
 +
 +
由于 Transformer 结构本身不包含循环或卷积操作,无法显式建模序列中的位置信息,因此需要引入位置编码以注入序列顺序。论文中采用基于正弦和余弦函数的固定位置编码,其定义为:
 +
 +
<math>
 +
\mathrm{PE}(pos, 2i) = \sin\left(\frac{pos}{10000^{\frac{2i}{d_{\text{model}}}}}\right)
 +
</math>
 +
 +
<math>
 +
\mathrm{PE}(pos, 2i+1) = \cos\left(\frac{pos}{10000^{\frac{2i}{d_{\text{model}}}}}\right)
 +
</math>
 +
 +
该设计具有多方面优势。首先,不同维度对应不同频率的周期函数,使模型能够在多个尺度上感知位置信息。其次,这种编码方式使得任意相对位置偏移<math>k</math>满足<math>\mathrm{PE}(pos + k)</math>可以表示为<math>\mathrm{PE}(pos)</math>的线性函数,从而有助于模型学习相对位置关系。最后,由于位置编码是确定性函数而非学习参数,它天然具备良好的外推能力,可以推广到比训练时更长的序列长度。
558

个编辑