EAGLE デコーディング(イーグルデコーディング)
Extrapolation Algorithm for Greater Language-model Efficiency。LLMの特徴量(隠れ状態)レベルで動作する自己回帰ドラフトモデルを使い、追加パラメータを最小限に抑えながら3〜4倍の推論高速化を実現する投機的デコード手法。
EAGLE デコーディングとは
EAGLE(Extrapolation Algorithm for Greater Language-model Efficiency)は、2024年に北京大学とMicrosoft Researchが発表した投機的デコード手法。従来の投機的デコードと異なり、「特徴量(feature)レベル」でドラフトモデルを動作させることが最大の特徴だ。
基本原理
通常の投機的デコードでは、小規模ドラフトモデルがトークン確率分布を直接出力する。しかしドラフトモデルとターゲットモデルでは語彙確率の傾向が異なり、受容率(acceptance rate)が低下しやすい。
EAGLEはこの問題を「特徴量外挿(feature extrapolation)」で解決する。ターゲットLLMの各レイヤー出力(隠れ状態)をそのまま入力として受け取り、次の隠れ状態を予測する軽量な自己回帰モデルをドラフトとして使う。
ターゲットLLMが隠れ状態h_tを出力し、EAGLEドラフトモデル(小型)がh_tとtoken embeddingを入力としてh_{t+1}の予測を生成する。その予測h_{t+1}からトークン候補を作成し、ターゲットLLMで並列検証する。
EAGLE-1 vs EAGLE-2
EAGLE-1(2024年初版)
固定深さのドラフトツリーを使用。LLaMA-2-Chat-7Bで3.05倍の速度向上を達成し、追加パラメータはベースモデルの約10%以下に収まる。
EAGLE-2(2024年後期)
動的ドラフトツリーを導入。受容率が高いパスを優先的に展開し、低受容パスの計算を削減する。LLaMA-3-Instruct-8Bで3.59倍に向上し、より長いコンテキストや複雑な推論タスクで効果が大きい。
受容率の高さの理由
EAGLEの受容率がMedusaより高い主な理由は3点ある。特徴量の連続性(トークン確率より隠れ状態は外挿しやすい)、同一語彙空間(ターゲットモデルの特徴量を直接入力するため分布ズレが少ない)、文脈的整合性(直前の隠れ状態を利用するため文脈依存の予測精度が高い)。
パフォーマンス比較
LLaMA-2-7B: EAGLE-1で3.05倍、LLaMA-2-70B: EAGLE-1で2.90倍、LLaMA-3-8B: EAGLE-2で3.59倍、Vicuna-13B: EAGLE-1で3.10倍。同一条件でMedusa(2.8×)やlookahead(1.5〜2×)を上回る。
実装と導入
公式実装はGitHubで公開(SafeAILab/EAGLE)。Hugging Face TransformersのモデルならLLaMA・Vicuna・Mistral・Gemmaで動作する。vLLM v0.5以降でEAGLEのネイティブ対応が進み本番環境への導入障壁が下がった。
学習は元モデルの隠れ状態出力を使ったself-distillationで行い、追加の教師データは不要。既存LLMのcheckpointに対しA100 80GB×8で数時間程度で学習完了する。
まとめ
EAGLEは「高受容率」「ドラフトモデル品質の高さ」「シンプルな実装」を兼ね備えた投機的デコードの現時点での最有力手法の一つ。バッチサイズ1のオンライン推論シナリオで特に効果的で、チャットボット・コーディングアシスタント等のインタラクティブなLLMサービングに適している。