Zubnet AI学习Wiki › Positional Encoding
基础

Positional Encoding

别名:位置嵌入、RoPE、ALiBi
一种告诉Transformer模型序列中token顺序的机制。与顺序处理token的RNN不同(因此位置是隐含的),Transformer并行处理所有token,没有内在的顺序感。位置编码注入位置信息,使模型知道“狗咬人”和“人咬狗”是不同的。

为什么重要

没有位置信息,Transformer会将句子视为词袋——词序丢失。位置编码的选择还决定了模型在处理比训练时见过的更长序列时的表现,这就是RoPE和ALiBi等技术对长上下文模型至关重要的原因。

深度解析

原始Transformer(2017年)在每个位置和维度上使用不同频率的固定正弦函数。这些函数有一个很好的理论属性:模型可以学会关注相对位置,因为正弦模式创建了一致的偏移。但学习到的位置嵌入(为每个位置训练一个可训练向量)很快成为默认选择,因为它们性能略好,尽管受限于最大训练长度。

RoPE:现代标准

旋转位置嵌入(RoPE,Su等人,2021年)通过在注意力机制中旋转查询和键向量来编码位置。旋转角度取决于位置,因此两个token之间的点积自然编码了它们的相对距离。RoPE被LLaMA、Mistral、Qwen和大多数现代LLM使用。其关键优势:它支持长度外推——模型可以处理比训练时见过的更长序列,尤其是与YaRN或NTK感知缩放等技术结合使用时。

ALiBi及其他

ALiBi(带线性偏置的注意力)采用更简单的方法:它不修改嵌入,而是根据token之间的距离向注意力分数添加线性惩罚。距离更远的token受到更大的惩罚。这不需要学习参数且能很好地外推到更长序列。一些架构结合多种方法或使用相对位置偏置。趋势是朝向能超越训练长度泛化的方法,因为上下文窗口不断增长。

相关概念

← 所有术语
← PixVerse RAG →