原版 Transformer 用正弦/余弦函数生成位置编码矩阵, 行对应序列位置,列对应模型维度。点击格子查看具体数值和计算公式, 切换曲线模式观察不同频率维度如何随位置变化。
点击格子查看具体数值(行 = 位置 pos,列 = 维度 dim)
为什么需要位置编码?Transformer 的自注意力机制对输入顺序不敏感(置换不变),需要显式注入位置信息。
sin/cos 设计的优势:① 不同位置的编码互不相同;② 任意固定偏移 k,PE(pos+k) 可由 PE(pos) 线性变换得到,帮助模型学习相对位置。
低维 vs 高维:低维(dim 小)频率高,区分相邻位置;高维(dim 大)频率低,提供全局位置感。热图左侧变化快、右侧变化慢正体现了这一点。
→ 阅读第 3 章《Transformer 架构深度解析》,了解位置编码在整体架构中的位置
→ 可学习位置编码(Learned PE):BERT/GPT 使用可训练的嵌入向量替代固定 sin/cos 编码
→ RoPE(旋转位置编码):LLaMA/Qwen 等现代大模型采用,将位置信息编入注意力计算,支持长度外推
→ ALiBi:用注意力偏置替代位置编码,线性外推能力更强