---
title: "旋轉位置編碼（Rotary Position Embedding）"
slug: rotary-position-embedding
language: zh-TW
source: https://aiterms.tw/terms/rotary-position-embedding
updated_at: 2026-06-22
tags: [大型語言模型, 深度學習, 神經網路, 模型訓練]
ipas_term: false
---

# 旋轉位置編碼（Rotary Position Embedding）

一種位置編碼方法，通過複數旋轉操作將位置信息編碼到注意力機制中，相比絕對位置編碼具有更好的外推性能。

## 完整說明

旋轉位置編碼（Rotary Position Embedding, RoPE）是一種相對位置編碼方法，由蘇劍林在 2021 年提出。與傳統的絕對位置編碼（如 Sinusoidal Encoding）不同，RoPE 使用複數旋轉操作，在向量空間中通過旋轉角度直接編碼相對位置。RoPE 具有良好的外推性能，即訓練時沒見過的更長序列在推理時仍能正常處理，成為現代大型語言模型（GPT-3、LLaMA、Mistral）的標準位置編碼方法。

## 常見問題

### 為什麼說 RoPE 的外推性比絕對位置編碼更好？

RoPE 編碼的是相對位置，而不是絕對位置。在訓練時，模型學習的是相對位置與注意力的關係（例如，同一句話中相隔 3 個位置的詞更可能相關）。推理時，即使遇到絕對位置超出訓練範圍，只要相對位置關係相同，模型就能正確處理。例如，訓練在 2K 序列上，推理時遇到 4K 序列中相隔 100 個位置的兩個詞，因為相對位置（100）與訓練時相同，模型能夠正確計算注意力。相比之下，絕對位置編碼直接將位置映射到值空間，超出訓練範圍的位置會映射到未知區域，導致性能下降。

### RoPE 的旋轉頻率參數如何選擇？

RoPE 的旋轉頻率由 base 參數控制（通常設為 10,000）。基礎公式是 θ_i = base^(-2i/d)，其中 d 是嵌入維度。較大的 base（如 100,000）會降低高頻分量的頻率，使得高維度對長距離位置也有區分能力，從而增強外推性。較小的 base（如 1000）則相反。在實踐中，base = 10,000 對於訓練序列長度 2K 或更短比較平衡。對於更長序列或更強外推要求，可以選擇更大的 base，或使用 YaRN 等動態調整方法。

### RoPE 與 ALiBi 有何區別，應該如何選擇？

RoPE 直接在查詢和鍵向量中融入位置信息（通過旋轉），而 ALiBi 在計算注意力分數時添加位置相關的偏置項。RoPE 的優點是理論基礎扎實，相對位置性質清晰；缺點是改動了嵌入層，遷移或微調時需要重新計算位置編碼。ALiBi 的優點是無須改動嵌入層，可直接在預訓練模型上應用；缺點是偏置項設計相對簡單，外推性可能不如 RoPE。在實踐中，RoPE 在新模型訓練時更常使用，ALiBi 在對已有模型進行長上下文適配時更方便。

---

來源：https://aiterms.tw/terms/rotary-position-embedding
快查頁：https://aiterms.tw/terms/rotary-position-embedding
最後更新：2026/06/22
深度解說：https://aiterms.tw/learning/what-is-rotary-position-embedding