> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/llm_internals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/llm_internals/di-yi-bu-fen-ji-chu-pian/04_position_encoding.md).

# 第四章：位置编码的设计哲学

[第三章](/llm_internals/di-yi-bu-fen-ji-chu-pian/03_components/3.3_position_encoding.md)已经解释了位置编码存在的必要性：自注意力是置换等变的，必须显式注入位置信息。但“如何”编码位置，是一个充满巧妙设计与持续演进的领域。

从原始 Transformer 的正弦位置编码到 GPT 等模型的可学习位置编码，再到 Llama 等现代模型广泛采用的旋转位置编码（RoPE），每一种方案都体现了不同的设计哲学和对“位置”这一概念的不同理解。本章沿着四个问题展开：

* [4.1 节](/llm_internals/di-yi-bu-fen-ji-chu-pian/04_position_encoding/4.1_sinusoidal.md)：为什么偏偏是正弦？“相对距离可以通过线性变换表示”怎么证明？
* [4.2 节](/llm_internals/di-yi-bu-fen-ji-chu-pian/04_position_encoding/4.2_learnable.md)：让模型自己学位置向量更直接，代价是什么？
* [4.3 节](/llm_internals/di-yi-bu-fen-ji-chu-pian/04_position_encoding/4.3_rope.md)：RoPE 为什么靠“旋转”就同时编码了绝对与相对位置？
* [4.4 节](/llm_internals/di-yi-bu-fen-ji-chu-pian/04_position_encoding/4.4_alibi_others.md)：长度外推的手段都是事后补丁，有没有一开始就不这么写位置的方案？
