在上一节(2.2 Transformer架构拆解)中,我们明白了 Self-Attention 是如何在一眼之内、无视距离地让单词之间互通款曲的。 这篇发表于 2017 年的架构,确立了“并行+注意力”的盛世。
但如果你真的拿这套原始配置去跑今天的千亿参数模型,你会:
- 当用户丢给你一本 10 万字的小说,它会因为“绝对坐标刻度”不够长而当场变乱码。
- 为了算一个字,模型要把所有千亿参数在硬盘和内存间轮转一次,每次聊天都会破产。
- 注意力矩阵的算力需求是字数的平方指数级爆炸,长度翻倍,它直接死机。
为了解决这些要命的工程极限,顶尖学者们为 Transformer 进行了一次次疯狂的器官替换与魔改。
1. 记住远近:RoPE (旋转位置编码)
在上一章我们提到过,Transformer 默认是个“词袋(Bag of Words)”,它不知道语序。 原始论文的解决方法是硬塞:用固定的 几何波浪,强行赋予第 1 个字和第 1000 个字一个“绝对坐标”。
1.1 绝对坐标的局限:不会拐弯的木头
如果我的模型只被训练过支持最大 2048 个字的长度。你突然丢给我一本 1 万字的小说,那些落在 2048 号位置开外的坐标它从来没见过,结果显然是灾难性的。 更惨的是,人类理解语言靠的是相对位置。 不管“中国”和“北京”这两个词是在文章的第 1 段出现,还是在第 500 段出现,只要它俩挨在一起(相对距离是 1),注意力机制就应该能秒懂它们的羁绊。
1.2 齿轮的魔法:旋转位置编码 (Rotary Position Embedding, RoPE)
这无疑是近几年模型架构最大的突破之一,由中国团队提出,现已全面制霸统治 LLM 界(LLaMA/Qwen/DeepSeek/Mistral 的标配)。
原理: 它不再给每个位置死板地加黑板擦,而是利用复数空间的旋转。 你可以想象成:给每个输入的词向量装上了一个表盘齿轮。
- 如果是在第一个位置,齿轮转了 10 度。
- 到第二天,齿轮转了 20 度。
- 神奇的数学巧合:当 Q(借书卡)带着 10 度的旋转去碰 K(标签)带着 30 度的旋转时,它们的点积结果,在数学公式展开后,奇迹般地只和它们的夹角差(20度,也就是相对距离 2)有关!

史诗级 Buff:因为模型学会了看“相对距离”,工程师只需要在微调时稍微“降低齿轮旋转的速度(RoPE Scaling)”,就能把原本只能看 8000 字的模型,无痛拓宽视野,拉伸到可以阅读 100 万字的神器(比如最近风靡的长文本模型技术)。
2. 算力刺客与 KV Cache
如果你理解了 Decoder-only 模型(GPT系列),你一定知道生成文字是“蹦字机”: 根据“我”,算出“爱”;根据“我爱”,算出“你”。
问题来了: 算“你”的时候,“我”和“爱”是不是又要重新走一遍那几百层的网络,去生成 Q、K、V 矩阵然后再点积? 当你写到第 1 万个字的时候,前面的 9999 个字又要为了这 1 个字重新跑一遍千亿级网络? 如果每次都这么折腾,全球的电站加起来都不够烧的。