Transformer系LLMでトークンの位置情報を相対的な回転行列として埋め込む手法。RoPE(Rotary Position Embedding)を基盤に、YaRN・ALiBi・NTK-awareスケーリングなどの拡張技術により、学習時のコンテキスト長を超えた外挿(extrapolation)を可能にする。ロングコンテキスト実現の中核技術。
RoPE(Rotary Position Embedding)は、2021年にSu et al.が提案した位置エンコーディング手法である。Transformerのセルフアテンション機構において、各トークンの位置情報を複素数平面上の回転として表現する。従来の絶対位置エンコーディング(Sinusoidal PE)や学習可能な位置エンコーディングと異なり、RoPEは相対位置情報を自然にアテンションスコアに組み込める点が最大の特徴である。
LLaMA、LLaMA 2、LLaMA 3、Mistral、Qwen、Yi、Gemmaなど、2023年以降の主要オープンソースLLMの大半がRoPEを採用している。GPT-4やClaudeの内部アーキテクチャは非公開だが、同様の位置エンコーディング技術が使われていると推測されている。
RoPEでは、d次元のクエリベクトルqとキーベクトルkに対して、位置mにおける回転行列R(m)を適用する。具体的には、ベクトルを2次元ずつのペアに分割し、各ペアに角度θ_i × mの回転を施す。
基本パラメータ:
この設計により、位置m1のクエリと位置m2のキーのアテンションスコアは、相対位置(m1-m2)のみに依存する。つまり、絶対位置を明示的に学習せずとも、相対的な距離関係が保存される。
学習時のコンテキスト長(例: 4K)を推論時に拡張(例: 128K)するための各手法を比較する。
| 手法 | 提案時期 | 原理 | 拡張倍率 | 追加学習 | 代表的な採用モデル |
|---|---|---|---|---|---|
| Position Interpolation (PI) | 2023年6月 | θをスケーリングして位置を圧縮 | 〜8倍 | 少量必要 | LLaMA 2 Long |
| NTK-aware Scaling | 2023年7月 | baseの値を動的に調整 | 〜16倍 | 不要/少量 | Code Llama |
| YaRN | 2023年8月 | 高周波/低周波を分離してスケーリング | 〜128倍 | 少量必要 | Mistral系, Yi-34B |
| ALiBi | 2022年4月 | 位置バイアスを距離に比例して減衰 | 理論上無限 | 不要 | BLOOM, MPT |
| LongRoPE | 2024年2月 | 進化的探索で最適なスケーリング係数を発見 | 〜2048倍 | 少量必要 | Phi-3 |
| Self-Extend | 2024年1月 | 近傍と遠方で異なるPEを適用 | 〜数十倍 | 不要 | 汎用パッチ |
| Dual Chunk Attention | 2024年3月 | チャンク内/間で位置を分離 | 〜数十倍 | 不要 | 汎用パッチ |
YaRN(Yet another RoPE extensioN)は2023年8月にNotreDame大学のチームが提案した手法で、RoPEの周波数成分を高周波・中間周波・低周波に分類し、各帯域に異なるスケーリング戦略を適用する。
この「周波数帯域別スケーリング」により、局所的な文法・構文情報を保ちつつ、遠距離の意味的関係も捉えられる。Mistral 7B、Yi-34B-200Kなどで実証され、4Kから200Kへの拡張で高い品質を維持した。
ALiBi(Attention with Linear Biases)はRoPEとは根本的に異なるアプローチを採る。位置情報をエンコーディングに埋め込むのではなく、アテンションスコアに距離に比例したペナルティ(線形バイアス)を直接加算する。
ALiBiはBLOOM(176B)、MPT-7B/30Bなどで採用されたが、LLaMA系列がRoPEを標準化したことで、2024年以降はRoPE拡張が主流となっている。
RoPE拡張を実装・利用する際の主要な注意点:
rope_scalingパラメータを指定するQ1: RoPEとSinusoidal Position Encodingの違いは何ですか? A: Sinusoidal PEは絶対位置を固定的なsin/cos関数でエンコードするのに対し、RoPEは回転行列を用いて相対位置情報をアテンションスコアに直接反映させる。RoPEは外挿性能が高く、学習時より長いシーケンスへの対応が容易。2023年以降の主要モデルはほぼすべてRoPEを採用している。
Q2: YaRNとNTK-awareはどちらを使うべきですか? A: 追加学習なしで手軽に拡張したい場合はNTK-awareが適する。より高い拡張倍率(32倍以上)で品質を維持したい場合はYaRNが優位。ただしYaRNは少量の微調整データが必要。実用上はYaRNが4K→128K以上の拡張で安定した結果を出しており、2024年以降のモデルで広く採用されている。
Q3: 位置エンコーディング拡張だけでロングコンテキストは実現できますか? A: 位置エンコーディング拡張は必要条件だが十分条件ではない。FlashAttention-2/3によるアテンション計算の高速化、GQA/MQAによるKVキャッシュの圧縮、PagedAttentionによるメモリ管理なども同時に必要。これらを組み合わせて初めて、実用的なロングコンテキストモデルが実現する。