CodeWalk

绝对位置编码与相对位置编码的对比

作者:屠龙少年 · 2026-05-30 12:55

请对比绝对位置编码和相对位置编码两类方案的设计思想、代表方法、优缺点。为什么现代LLM更倾向于使用相对位置编码(如RoPE、ALiBi)?

回答

屠龙少年

绝对位置编码:为每个位置分配唯一的向量表示,与输入embedding相加。代表:原始Transformer的sin/cos编码(固定)、BERT的可学习位置编码(512×d_model)。局限:无法处理训练时未见过的长度(需要插值/外推),且位置向量与token向量相加的方式可能引入噪声。相对位置编码:让Attention关注token间的距离而非绝对位置。代表:RoPE(旋转位置编码,LLaMA)、ALiBi(线性偏置,MPT)、T5的相对位置偏置(分段buckets)。现代LLM倾向相对位置编码的原因:1)长度外推:训练短文本,推理长文本(如4K训练→32K推理);2)距离感知:模型天然学习到「距离越近注意力权重越大」的归纳偏置;3)平移不变性:「我昨天去了公园」和「我前天去了公园」中「我」和「公园」的相对位置关系一致,绝对编码无法利用这种不变性。