RoPE Base Scaling(ロープベーススケーリング)
RoPEのθ(theta)基底値を拡大することで追加学習なしにコンテキスト長を延ばす最もシンプルな手法。Llama 3ではθ=500,000を採用し、500kトークン超えのコンテキストを目指した事前学習を実施している。
RoPE Base Scaling とは
RoPE Base Scaling(RoPEベーススケーリング)は、Rotary Position Embedding(RoPE)のハイパーパラメータである基底値θ(theta)を引き上げることで、LLMのコンテキスト長を延ばす手法です。実装は非常にシンプルで、モデルアーキテクチャへの変更なくコンフィグ変更のみで適用できます。
RoPEとθの関係
RoPEの仕組み
RoPEはトークンの位置mと次元dに対して回転変換を適用します。d次元ペアに対する回転角は:
θ_d = m × (1 / θ^(2d/D))
ここでDはモデルの次元数、mは位置インデックス。θが小さいと高次元の回転が速く、大きいと遅くなります。
θが長文脈に与える影響
θが小さい(例: 10,000)場合:
- 高周波成分が速く回転し、長い系列で「位置の折り返し(aliasing)」が起きやすい
- 訓練長を超えた位置で急速にパープレキシティが悪化
θが大きい(例: 500,000)場合:
- 全周波数成分の回転が遅くなり、長い系列でも安定した位置表現を維持
- 訓練外の位置へのロバスト性が向上
主なモデルとθの値
| モデル | θ値 | 設計コンテキスト |
|---|---|---|
| GPT-NeoX / 初期LLaMA | 10,000 | 2048〜4096トークン |
| LLaMA 2 | 10,000 | 4096トークン |
| LLaMA 3 8B/70B | 500,000 | 8k〜1M(後処理) |
| Qwen 2.5 72B | 1,000,000 | 128kトークン |
Llama 3 でのθ=500,000 採用
MetaはLlama 3(2024年4月)においてθを10,000から500,000(50倍増)に引き上げました。これにより:
- 事前学習: 8kトークンのコンテキストで訓練しながら、500kトークン対応の位置エンコードを組み込み
- 後処理拡張: Llama 3.1では最大128kコンテキストへファインチューニングで拡張
- 将来性確保: θ=500kは1M+のコンテキストを目標とした設計値
Position Interpolation との違い
| 手法 | タイミング | 変更対象 | 追加学習 |
|---|---|---|---|
| RoPE Base Scaling | 事前学習時 | θ値のみ | 不要(事前学習時に組み込み) |
| Position Interpolation | ファインチューニング時 | 位置インデックスのスケール | 1000ステップ必要 |
| YaRN | ファインチューニング時 | 温度+非均一スケール | 400ステップ必要 |
RoPE Base Scalingは「事前学習時に仕込む」アプローチで、PIやYaRNは「既存モデルを後からファインチューニングで拡張する」アプローチです。
理論的背景
θを大きくする効果は「位置エンコードの粗さを減らす」と直感的に理解できます。
- θ=10,000: 位置0と位置32768が同じ高周波コンポーネントの値を持つ→折り返しが起きる
- θ=500,000: 32768まで折り返しが起きない周波数成分が多くなる→長距離で安定
限界と注意点
- θの引き上げだけでは訓練長以上の性能は保証されない(外挿の問題は残存)
- 最良の結果は「θを大きくして訓練 + 後でコンテキスト延長ファインチューニング」の組み合わせ
- θが極端に大きい(例: 1億以上)と低周波成分が消失し性能低下するリスクがある
まとめ
RoPE Base Scalingは設定ひとつで長文脈への適性を高めるシンプルな手法です。Llama 3がθ=500,000を採用したことで広く普及し、現在では大規模モデルの事前学習標準手法のひとつとなっています。PIやYaRN等のファインチューニングベースの手法と組み合わせることで、さらに長いコンテキストの実現が可能です。