現代大型語言模型架構內部

旋轉位置編碼(RoPE)

注意力本身對順序視而不見:把詞打亂,原始數學會給出相同結果,但語言顯然依賴位置。RoPE 的解法是把每個查詢與鍵向量旋轉一個與其序列位置成正比的角度。把每一對座標想成一根小時針:位於第五個位置的詞元轉五步,第五十個位置的轉五十步。由於兩個旋轉後向量的內積只取決於它們角度的差,注意力便自動看見了相對距離。

具體而言,模型把每個注意力頭的向量切成許多二維區塊,並套用一個旋轉矩陣,其角度等於位置乘上每個區塊固定的頻率。它不學任何額外參數,也不在嵌入上加東西;旋轉只發生在注意力內部,且只作用於查詢與鍵。這種相對的、乘性的編碼比舊的加性正弦編碼外推得更優雅,而它那個頻率旋鈕,正是人們用來把模型拉伸到更長上下文時所調整的對象。

(R_\theta x)_i = x_i\cos(m\theta_i) - x_{i+1}\sin(m\theta_i)

位置 m 把座標對 (x_i, x_{i+1}) 旋轉 m·θ_i;兩個旋轉後向量的內積只取決於位置差。

又稱
RoPErotary embeddings