EAGLE(LLMデコーディング)(イーグル)
LLMの特徴量レベルで自己回帰予測を行い、次トークン以降の複数候補をツリー構造で同時検証することで、Medusaを上回る2.5〜3.8倍の推論高速化を実現する並列デコーディング手法。
EAGLEとは
EAGLE(Extrapolation Algorithm for Greater Language-model Efficiency)は、Peking UniversityのLi et al.が2024年に発表した並列デコーディング手法である。Medusaがトークン確率空間で予測を行うのに対し、EAGLEは特徴量(feature)空間で自己回帰予測を行う点が根本的に異なる。この設計により、予測精度が大幅に向上し、Medusaの2.5倍に対してEAGLEは3.8倍(Llama 3 Chat 70B、temperature=0)の高速化を達成している。
EAGLEの動作原理
EAGLEの処理フローは以下の3段階で構成される。
- 特徴量予測: ベースモデルの最終隠れ層から取得した特徴量ベクトルを入力として、軽量なオートリグレッションヘッド(1層のTransformerデコーダ、約60Mパラメータ)が次の特徴量を予測する。トークン確率ではなく特徴量レベルで予測するため、情報量が豊富で予測精度が高い
- ツリー展開: 予測された特徴量から複数のトークン候補をデコードし、各候補をさらに展開してツリー構造を生成。デフォルトではツリー幅60、深さ6で最大360ノードを探索
- 並列検証: Tree Attention機構により全ノードを1回のフォワードパスで検証し、最長の有効パスを受理。平均受理長は3.5〜4.5トークン/ステップ
EAGLE vs EAGLE-2の比較
| 項目 | EAGLE (v1) | EAGLE-2 |
|---|---|---|
| ツリー構造 | 静的(固定トポロジ) | 動的(信頼度ベース適応) |
| 高速化倍率 | 2.5〜3.5x | 3.0〜3.8x |
| 受理率 | 平均72% | 平均79% |
| ツリーノード数 | 固定60ノード | 適応的(40〜120ノード) |
| コンテキスト依存性 | なし | あり(入力に応じてツリー形状を最適化) |
| 追加メモリ | +3% | +3〜5% |
EAGLE-2は各ステップの信頼度スコア(Confidence Score)に基づいてツリー構造を動的に調整する。高信頼度の予測パスには多くのノードを割り当て、低信頼度のパスは早期に枝刈りすることで、計算効率を維持しながら受理率を向上させている。
ベンチマーク結果
| モデル | タスク | EAGLE高速化 | Medusa高速化 | Spec.Dec.高速化 | GPU |
|---|---|---|---|---|---|
| Llama 3 Chat 70B | MT-Bench | 3.5x | 2.5x | 2.8x | A100 80GB |
| Llama 3 Chat 8B | MT-Bench | 2.8x | 2.1x | 2.3x | RTX 4090 |
| Vicuna 33B | コード生成 | 3.2x | 2.3x | 2.6x | A100 40GB |
| Mixtral 8x7B | 要約 | 2.9x | 2.0x | 2.4x | A100 80GB |
| Llama 3.1 405B | 汎用 | 3.8x | N/A | 3.2x | H100 x4 |
全ベンチマークにおいてEAGLEはMedusaを上回る高速化を達成しており、特に長文生成タスク(コード生成・要約)で優位性が顕著である。
学習と導入
EAGLEヘッドの学習は以下のスペックで実施可能。
- 学習データ: ShareGPT 68K件またはUltraChat 200K件のサブセット。ドメインデータがあれば精度向上
- 学習時間: A100 80GB 1台でLlama 3 70Bのヘッド学習が約4時間(Medusaの約2倍)
- パラメータ数: 約60Mパラメータ(70Bモデルの0.09%)。ベースモデルの重みは凍結
- フレームワーク: vLLM 0.6+で
--speculative-model eagleとしてネイティブサポート。EAGLE公式リポジトリでもPyTorch実装を提供 - メモリ要件: ベースモデル+約1〜2GBの追加(70Bモデルの場合、FP16で140GB + EAGLEヘッド約1.2GB)
実運用での注意点
- バッチサイズとの関係: バッチサイズ1〜4で最大効果を発揮し、バッチサイズ16以上では高速化倍率が1.5x程度に低下する。高スループット環境ではContinuous Batchingとの併用が推奨される
- 量子化との互換性: GPTQ/AWQ 4bit量子化モデルとの併用が可能。量子化によりベースモデルのメモリ消費が半減するため、EAGLEヘッドの追加コストが相対的にさらに小さくなる
- 温度パラメータ: temperature=0(greedy)で最大効果。temperature>0の場合はTypical Acceptance方式を使用し、高速化倍率が10〜20%低下する
よくある質問(FAQ)
Q1: EAGLEとMedusaのどちらを選ぶべきですか? A: 高速化倍率を最優先するならEAGLE(3.5x vs 2.5x)。学習コストを最小化したいならMedusa(2時間 vs 4時間)。メモリ増加量はどちらもベースモデルの3〜5%程度で大差ない。
Q2: EAGLEはClaude 4やGPT-4oにも適用できますか? A: EAGLEはモデルの内部特徴量にアクセスする必要があるため、APIのみ提供のクローズドモデルには直接適用できない。オープンウェイトモデル(Llama 3.x、Mistral、Qwen 2.5等)が対象となる。
Q3: EAGLE-2の動的ツリーはどう設定しますか? A: EAGLE-2のデフォルト設定では信頼度閾値0.3でツリーの枝刈りを行う。閾値を下げると探索範囲が広がり受理率が向上するが、計算コストも増加する。一般的には0.2〜0.4の範囲で調整する。
まとめ
- EAGLEは特徴量レベルの自己回帰予測により、Medusaを上回る2.5〜3.8倍の高速化を実現
- EAGLE-2は動的ツリー構造で受理率を79%まで向上し、3.0〜3.8倍の高速化を達成
- 追加パラメータはベースモデルの0.09%と極めて軽量
- vLLM 0.6+でネイティブサポートされ、量子化モデルとも互換性あり
- オープンウェイトモデル限定だが、Llama・Mistral・Qwen等の主要モデルをカバー