AI・機械学習
上級

EAGLE(LLMデコーディング)(イーグル)

LLMの特徴量レベルで自己回帰予測を行い、次トークン以降の複数候補をツリー構造で同時検証することで、Medusaを上回る2.5〜3.8倍の推論高速化を実現する並列デコーディング手法。

0 回閲覧
0 いいね

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. 特徴量予測: ベースモデルの最終隠れ層から取得した特徴量ベクトルを入力として、軽量なオートリグレッションヘッド(1層のTransformerデコーダ、約60Mパラメータ)が次の特徴量を予測する。トークン確率ではなく特徴量レベルで予測するため、情報量が豊富で予測精度が高い
  2. ツリー展開: 予測された特徴量から複数のトークン候補をデコードし、各候補をさらに展開してツリー構造を生成。デフォルトではツリー幅60、深さ6で最大360ノードを探索
  3. 並列検証: Tree Attention機構により全ノードを1回のフォワードパスで検証し、最長の有効パスを受理。平均受理長は3.5〜4.5トークン/ステップ

EAGLE vs EAGLE-2の比較

項目EAGLE (v1)EAGLE-2
ツリー構造静的(固定トポロジ)動的(信頼度ベース適応)
高速化倍率2.5〜3.5x3.0〜3.8x
受理率平均72%平均79%
ツリーノード数固定60ノード適応的(40〜120ノード)
コンテキスト依存性なしあり(入力に応じてツリー形状を最適化)
追加メモリ+3%+3〜5%

EAGLE-2は各ステップの信頼度スコア(Confidence Score)に基づいてツリー構造を動的に調整する。高信頼度の予測パスには多くのノードを割り当て、低信頼度のパスは早期に枝刈りすることで、計算効率を維持しながら受理率を向上させている。

ベンチマーク結果

モデルタスクEAGLE高速化Medusa高速化Spec.Dec.高速化GPU
Llama 3 Chat 70BMT-Bench3.5x2.5x2.8xA100 80GB
Llama 3 Chat 8BMT-Bench2.8x2.1x2.3xRTX 4090
Vicuna 33Bコード生成3.2x2.3x2.6xA100 40GB
Mixtral 8x7B要約2.9x2.0x2.4xA100 80GB
Llama 3.1 405B汎用3.8xN/A3.2xH100 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等の主要モデルをカバー