RoPE(Rotary Positional Embedding) ろーぷ(ろーたりーぽじしょなるえんべでぃんぐ)
RoPERotary Positional Embedding位置エンコーディング相対位置LLaMA長文対応
RoPEについて教えて
簡単に言うとこんな感じ!
単語の位置情報を「回転」として表現する位置エンコーディングの手法だよ!近い単語同士はアテンションが高く、遠い単語同士は低くなるよう「角度」で距離を表現するんだ。LLaMAやGPT-NeoXで使われていて、長い文章の処理に特に強いんだ!
RoPE(Rotary Positional Embedding)とは
RoPE(Rotary Positional Embedding) とは、トークンの絶対位置ではなく、トークン間の「相対位置」を回転行列で表現する位置エンコーディング手法です。2021年にSu et al.が提案しました。従来の絶対位置エンコーディングは「何番目のトークンか」を直接埋め込むのに対し、RoPEはQueryとKeyのベクトルを位置に応じて回転させることで、ドット積の計算に自然と相対位置情報が組み込まれます。
RoPEの大きな利点は学習時より長いコンテキストへの外挿(extrapolation)性能です。絶対位置エンコーディングでは学習コンテキスト長を超えると性能が大幅に劣化しますが、RoPEは相対的な位置関係を保持するため、より長い文脈でも比較的安定します。LLaMA、GPT-NeoX、Falcon等の主要オープンモデルで広く採用されています。
従来手法との比較
| 手法 | 位置の表現 | 長文外挿 | 代表モデル |
|---|---|---|---|
| 絶対位置(学習可能) | 各位置のベクトルを学習 | 弱い | BERT、GPT-2 |
| 三角関数(固定) | サイン/コサインで固定 | 中程度 | 元のTransformer |
| ALiBi | アテンションにペナルティ加算 | 強い | MPT、BLOOM |
| RoPE | 回転行列で相対位置を表現 | 強い | LLaMA、GPT-NeoX |
歴史と背景
- 2021年:Su et al.「RoFormer: Enhanced Transformer with Rotary Position Embedding」で提案
- 2022年:EleutherAIがGPT-NeoXでRoPEを採用、オープンモデルへの普及が始まる
- 2023年:Meta「LLaMA」シリーズがRoPEを採用し事実上の標準に
- 2023年後半:YaRN・LongRoPEなどRoPEを拡張してコンテキスト長を増やす手法が登場
- 現在:GPT-4・Claudeの内部実装は非公開だが、RoPEが業界標準として定着
RoPEの拡張技術(コンテキスト長延長)
標準RoPE: 学習コンテキスト長(例:4K)で最適
→ より長いコンテキストへ拡張する技術:
YaRN(2023): スケーリングで32K〜128Kへ拡張
LongRoPE(2024): 位置ごとのスケールを最適化
RoPE ABF: 学習段階でのコンテキスト延長
→ LLaMA 3は128Kコンテキストをこれらで実現
関連用語
- ポジショナルエンコーディング — RoPEが属する位置情報付与技術の大分類
- ALiBi — RoPEと並ぶ相対位置の別アプローチ
- コンテキスト長 — RoPEの拡張によって長コンテキスト化が実現
- マルチヘッドアテンション — RoPEが位置情報を組み込む対象の機構