RoPE(Rotary Position Embedding/回転位置埋め込み)は、TransformerのSelf-Attentionで、QueryとKeyのベクトルを位置に応じて回転させることで語順を伝える手法です。古典的な位置ベクトルの加算やALiBiの距離バイアスとは設計が異なり——本記事は回転行列の暗記ではなく、「なぜ現代LLMが回転で距離を刻むのか」という位置情報の第三の道に焦点を当てます。
試験で問われる見方
位置情報の基本定義は「系列内で各トークンの位置情報をモデルに与える仕組み」(HQ-0260、HQ-0236)。RoPEはその実装方式の一つとして、辞典では「回転で位置情報を埋め込む手法。LLMで広く採用」と整理します。
誤答では、RoPE=Attention(HQ-0284)、RoPE=Transformer全体(HQ-0308)など、概念の入れ替えに注意します。RoPEは語順を伝える部品であり、モデル全体の名前ではありません。
演習で確認する
生成AIパスポート:HQ-0260(定義)、HQ-0284(Attentionとの区別)、HQ-0308(Transformerとの区別)
なぜ位置情報が要るか
Self-Attentionは、系列内のトークン同士の関連を重み付きで集約します。しかし Attention だけでは、入力の並び順が失われます——「犬が猫を追う」と「猫が犬を追う」を区別できません。
そこで位置エンコーディング——系列内で各トークンの位置情報をモデルに与える仕組み——が必要になります。元のTransformer論文では正弦・余弦の位置ベクトルを入力埋め込みに加算する方式が使われました。RoPEは、この問題に対する別の答えです。
回転で距離を刻む考え方
RoPEの核心はシンプルです。位置mのトークンと位置nのトークンのAttentionスコアが、主に相対距離(m−n)に依存するように設計します。そのために、各ヘッドのQuery・Keyベクトルの次元ペアを2次元平面の回転として扱い、位置に応じた角度で回します。
- 加算しない — 入力埋め込みに別ベクトルを足すのではなく、Q/Kに回転を適用
- 相対距離 — 二つの位置の回転角の差が距離を表す
- 内積の性質 — 回転後のQとKの内積が相対位置に依存しやすい
- 外挿 — 学習長を超える位置にも角度を割り当て可能(完全ではないが、固定長の学習済み埋め込みより柔軟とされることが多い)
試験では回転行列の導出より、「Q/Kを位置で回転させ、相対距離をAttentionに刻む」と説明できれば十分なことが多いです。
位置エンコーディング・ALiBiとの対比
語順を伝える手法は複数あります。RoPEはAttentionの中核(Q/K)に位置を組み込む系統です。
| 手法 | 位置の与え方 | 試験向けの整理 |
|---|---|---|
| 正弦位置エンコーディング(古典) | 位置ベクトルを入力に加算 | Transformer原論文の典型 |
| 学習可能な位置埋め込み | 位置ごとのベクトルを学習 | 固定長で学習しやすい |
| ALiBi | Attentionスコアに距離の線形バイアス | 位置埋め込み層を省略しやすい |
| RoPE | Q/Kを回転して相対距離を表現 | 現代LLMで広く採用 |
どれも目的は同じ——系列内で各トークンの位置情報をモデルに与える——です。実装の置き場所(入力加算 vs Attentionバイアス vs Q/K回転)が異なります。
LLMでの採用
RoPEは2019〜2021年頃の研究として提案され、オープンウェイトの大規模言語モデルで標準的な選択肢の一つになりました。LLaMAをはじめ、多くのデコーダ型LLMがRoPE(またはその改良版)を採用しています。
BERTなどのエンコーダ型は、学習可能な位置埋め込みや他方式を使うことも多く、RoPE=すべてのTransformer、とは言えません。試験では「LLMで広く採用される位置情報の手法」と覚えるのが安全です。
長文対応では、学習時の最大長を超える入力への外挿(extrapolation)が課題になり、RoPEの拡張手法も研究されています。詳細の暗記より、位置情報の設計が長文性能に直結する——という認識が実務でも役立ちます。
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| RoPE=Attention | 位置情報の手法 vs 重み付き集約の仕組み(HQ-0284) |
| RoPE=Transformer | 部品の一つ vs モデル全体(HQ-0308) |
| RoPE=匿名加工(ALiBiと混同) | 位置情報 vs 個人情報保護の制度(TF-0112の文脈) |
| RoPE=GPT | 位置の与え方 vs デコーダ型言語モデル |
| 位置エンコーディング=RoPEだけ | RoPEは位置エンコーディングの一実装 |
| RoPEがあれば語順不要 | RoPEこそが語順を与えるための仕組み |
よくある質問
RoPEは何をする手法ですか?
Rotary Position Embedding(回転位置埋め込み)の略で、系列内の各トークン位置に応じてSelf-AttentionのQueryとKeyベクトルを回転させ、語順・距離の情報をモデルに伝えます。位置エンコーディングの一種として、LLaMAなど多くの大規模言語モデルで採用されています。
RoPEと位置エンコーディングは同じですか?
位置エンコーディングは系列内で各トークンの位置情報をモデルに与える仕組みの総称です。RoPEはその実装方式の一つで、入力埋め込みにベクトルを足すのではなく、AttentionのQuery/Keyを位置に応じて回転させる設計が特徴です。目的は同じく語順を伝えることです。
RoPEはAttentionそのものですか?
いいえ。RoPEは位置情報を与える手法であり、入力のどの部分に注目するかを重み付けするAttention機構そのものではありません。位置エンコーディングとAttentionは別概念として区別します。