旋转位置编码(Rotary Position Embedding,简称 RoPE) 是目前大语言模型(LLM)中最核心、最主流的位置编码技术之一。它由苏剑林等人在 2021 年的论文《RoFormer: Enhanced Transformer with Rotary Position Embedding》中首次提出。 目前,几乎所有主流的开源大模型(如 Meta 的 LLaMA 系列、阿里的 Qwen、百川的 Baichuan、清华的 ChatGLM 等)都在使用 RoPE。 要理解 RoPE,我们需要从“为什么需要位置编码”以及“它是如何巧妙解决问题”的两个角度来看。 --- 1. 为什么需要位置编码? Transformer 模型的核心机制是自注意力(Self-Attention)。自注意力机制天生是“无向”的,它对输入序列的顺序不敏感。换句话说,如果不加任何处理,模型看“狗咬人”和“人咬狗”是一模一样的,因为它只是在并行计算词与词之间的关联度。 为了让模型知道词语的先后顺序,必须引入位置编码(Position Encoding)。 以前主要有两种做法: 绝对位置编码(如早...