EAGLE(投機的デコーディング)(イーグルスペキュラティブデコーディング)
LLMの特徴量系列を自己回帰的に予測するドラフトモデルを使う高速化手法。通常の投機的デコーディングより高い受理率を達成し、スループットを3〜4倍に向上させる。EFicient Autoregressive Language model with GuarantEed LLMの略。
EAGLE — 特徴量予測による高効率投機的デコーディング
EAGLE(EFicient Autoregressive Language model with GuarantEed LLM)は2024年に発表されたLLM推論高速化手法だ。既存の投機的デコーディングやMedusaとは異なるアプローチで、LLMの最終層特徴量(隠れ状態)を自己回帰的に予測する小型ドラフトモデルを用い、高い受理率と大幅なスループット向上を実現する。
EAGLEの核心:特徴量予測
従来の投機的デコーディングはトークン(語彙インデックス)の系列を予測する。EAGLEは代わりにLLMの最終隠れ状態の系列を予測する:
通常の投機的デコーディング:
ドラフトモデル: [トークン_t] -> [トークン_t+1, t+2, t+3]
EAGLE:
ドラフトモデル: [特徴量_t, トークン埋め込み_t+1] -> [特徴量_t+1]
特徴量_t+1 からターゲットLLMのLM headで -> トークン確率分布
なぜ特徴量予測が良いのか: ターゲットLLMの最終隠れ状態は「LLMが実際にトークンを予測するために使う内部表現」そのものだ。これを予測することで、ターゲットモデルの意思決定過程に近い予測が可能になり、受理率が向上する。
アーキテクチャ詳細
EAGLEのドラフトモデルは:
- 入力: 前ステップの特徴量 + 現在のトークン埋め込みを結合したベクトル
- 本体: 1層のTransformerデコーダー(ターゲットLLMの1層分に相当)
- 出力: 次ステップの特徴量ベクトル(ターゲットLLMの最終層出力と同次元)
ドラフトモデルはターゲットLLMの最終層のウェイトを初期値として流用できるため、効率的なファインチューニングが可能(データ必要量: 数万件のテキスト)。
EAGLE-2との改善
2024年後半に発表されたEAGLE-2は更なる改善を追加:
- 動的ドラフト予算: 受理確率の高い候補は多く展開、低い候補は早期打ち切り
- Context-aware Dynamic Tree: ツリー構造を静的に固定せず、入力コンテキストに応じて適応的に変化
- 受理率向上: EAGLE比でさらに10〜15%受理率改善
パフォーマンス比較
| 手法 | LLaMA 2 70Bスループット倍率 | 受理率 |
|---|---|---|
| 通常デコーディング | 1倍 | — |
| 投機的デコーディング(Vicuna 7B draft) | 2〜2.5倍 | 70〜80% |
| Medusa-2 | 2.5〜3倍 | 80〜90% |
| EAGLE | 3〜3.5倍 | 88〜93% |
| EAGLE-2 | 3.5〜4倍 | 90〜95% |
EAGLEは同規模のドラフトモデルを使う従来手法より受理率で10〜15ポイント優れており、大型モデル(70B+)での高速化に特に有効だ。HuggingFaceのTransformersライブラリに統合されており、--speculative_model オプションで利用可能。