从位置编码基础到 RoPE 的数学推导、代码实现与长度外推

概述

Transformer 本身不包含位置信息,打乱输入顺序,输出不会改变。位置编码(Position Encoding)就是为了解决这个问题。

本系列从最基础的绝对位置编码出发,深入讲解目前主流 LLM 普遍采用的 旋转位置编码(RoPE),包括数学推导、代码实现,以及如何让模型处理超出训练长度的序列。

本系列假设你已掌握 Attention 机制的基础知识。如果对 Self-Attention 和 Multi-Head Attention 不熟悉,建议先阅读 Attention 机制详解

章节内容

位置编码基础

位置编码基础

为什么 Transformer 需要位置信息,以及绝对位置编码的方案与局限

RoPE 数学推导

RoPE 数学推导

从复数旋转到高维推广,理解 RoPE 的核心数学原理

RoPE 代码实现

RoPE 代码实现

逆频率计算、cos/sin 缓存与 apply_rotary_pos_emb 的向量化实现

长度外推

长度外推

NTK-aware Scaling、YaRN 等方法让模型处理超长序列

参考资料