ドラフトモデル推論(ドラフトモデルスイロン)
投機的デコードの基本手法で、小規模なドラフトモデルが高速に複数トークンの仮説を生成し、大規模ターゲットモデルが並列で検証・受容する。大モデルの出力品質を維持しながら2〜4倍の推論高速化を実現する。
ドラフトモデル推論とは
「ドラフトモデル推論」は投機的デコード(Speculative Decoding)の原形手法で、2022〜2023年にDeepMindとGoogleが独立して発表した。「小さなモデルに仮説を出させ、大きなモデルで並列検証する」というシンプルな発想で、大規模LLMの推論速度を2〜4倍向上させる。
基本アルゴリズム
Step 1 [Draft Phase]: ドラフトモデル M_small で K トークン逐次生成する。 Step 2 [Verification Phase]: ターゲットモデル M_large で K+1 トークン並列評価する(1回のフォワードパス)。 Step 3 [Acceptance]: 各位置 k = 1..K に対して、確率比サンプリングで受容・棄却を判定。棄却点以降のトークンを廃棄し修正する。 Step 4: 受容されたトークンを確定し Step 1 へ。
品質保証の仕組み
ドラフトモデル推論の重要な特性は出力分布の等価性だ。acceptance criterionにより、受容・棄却を繰り返した最終出力はターゲットモデル単独での出力と統計的に同一になることが数学的に証明されている。速度は上がるが品質は落ちない。
ドラフトモデルの選択基準
ターゲットより小さい(パラメータ比5〜10倍差)ほどドラフト生成が高速。ターゲットと同族アーキテクチャなら受容率が高く(語彙・確率分布が近い)、同一語彙・トークナイザーなら受容基準の適用が簡単。
代表的な組み合わせ: LLaMA-2-70B(ターゲット)+LLaMA-2-7B(ドラフト)、GPT-4+GPT-3.5、Gemini Ultra+Gemini Nano。
Kの設定
K(ドラフト長)は通常4〜8に設定する。Kが大きすぎると棄却率が上がり効率低下、小さすぎると並列化の恩恵が少なくなる。生成タスクの複雑さに応じて動的に調整する適応型アルゴリズムも提案されている。
速度向上の条件
投機的デコードが効果を発揮するのは、バッチサイズが小さい(1〜数件)でターゲットモデルのKV計算がメモリバウンドになる状況、ドラフトと出力分布が近い(コード生成・定型文で効果大)、GPU compute >> GPU memory bandwidthの条件が揃う場合だ。バッチサイズが大きい場合(スループット最大化サービング)には効果が限定的。
主要フレームワーク対応
HuggingFace TGIは --speculate K オプションで対応。vLLMはv0.2以降でドラフトモデル指定可能。llama.cppはspeculative decodingオプション実装済み。TensorRT-LLMもDraft model設定でサポート。
まとめ
ドラフトモデル推論は投機的デコードの基本形であり、出力品質を維持しながら2〜4倍の高速化を実現する。MedusaやEAGLEなどの後継手法の概念的基盤となっており、LLMサービングアーキテクチャを理解する上で必須の技術概念だ。