Transformer 通过位置编码(PE)解决自注意力机制的位置无关性。原始 PE 利用不同频率的 sin/cos 函数,提供序列长度可扩展性并隐式编码相对位置信息,但存在信息耦合和长序列泛化性差的局限。
旋转位置嵌入(RoPE)通过对 Query/Key 向量进行旋转,显式地将相对位置信息编码到注意力机制中,理论上具有无限外推能力。然而,在实际超长上下文应用中,RoPE 仍面临性能下降,原因是模型未在训练中见过极端长距离的高频旋转模式。
为解决此问题,主要有两种扩展方法:
线性插值(PI):通过统一缩放位置索引,将长序列“压缩”回训练范围,简单有效但可能牺牲短距离高频信息的精度。
非线性缩放(YaRN):在 PI 基础上改进,结合了 NTK-aware(调整频率基数保护高频)、NTK-by-parts(按频率分段插值)和动态缩放(根据当前长度调整缩放因子)及温度缩放(稳定注意力分数),旨在更精细地平衡长短距离信息,实现更稳定、高效的超长上下文扩展。
自 Transformer 的提出已经约 8 年了,但在这期间,Transformer 的改进从未停止过,正如其位置编码的不断迭代一样。尽管人们不断呼吁下一个超越 Transformer 模型架构,也有很多学者尝试提出替代性的架构,例如基于 Mamba 等思路的模型,试图在长序列建模、计算效率或记忆机制上取得突破。
但是 Transformer 依然凭借其通用性、可扩展性以及强大的表示能力,稳坐深度学习的头把交椅。如今,“如何取代 Transformer” 与 “如何让 Transformer 更高效、更具归纳偏置” 已成为研究者们思考的两条并行路线。