TT Lab
ブログ

한국어 English 日本語 中文

はじめる
ブログ

ブログ

推論デコーディング:当たれば4倍、外れれば損

ステータス:ドラフト(2026-10-27)、n-gram実測、EAGLE・MTP・suffix未実測。 8GBクラスのノートPC用GPU(Ada世代)1枚、vLLM 0.31.0、Qwen3-Reranker-0.6Bで2026-10-27に測定しました。モデルベースの手法(EAGLE、MTP、ドラフトモデル)はドラフトの重みを、suffix方式は追加パッケージを新しくダウンロードする必要があるため、今回は測定していません。 2026-10-27追加。 会話用のQwen3-0.6BとvLLM 0.32.0で再測定した結果を3-1節に追加しました。0.31.0およびリランクモデルの数値はそのまま残しています。 作成規則:実測データを基本とし、測定できなかったものは「未実測」、確認できなかったものは「未確認」と表示します。

目次

1. 原理:予測し、一度に確認する

デコードの1ステップは、重みをメモリから1回読み込むことに大部分の時間を費やします(第2回)。しかし、1ステップでトークンを1つ検査しようと5つ検査しようと、重みの読み込み量は同じです。それならば、次の数トークンを安価に 予測しておき、大きなモデルにそのドラフト全体を 一度に検証させればよいのです。

초안(싼 방법): " keeps a queue of"        ← 4토큰 제안
검증(큰 모델 한 걸음): " keeps" ✓ " a" ✓ " queue" ✓ " of" ✓ + 다음 토큰 하나
→ 한 걸음에 5토큰 확정

最初の間違ったトークンで停止し、その場所は大きなモデルが選んだトークンに置き換えます。そのため、1ステップにつき少なくとも1トークンは必ず増加します。サンプリング(温度 > 0)では拒否サンプリング(rejection sampling)により大きなモデル単体で作った場合と同じ分布を維持し、貪欲デコーディングでは出力が一致する必要があります。Leviathanら(ICML 2023)はT5-XXLで出力を変えずに2〜3倍、Chenら(DeepMind, 2023)はChinchilla 70Bで分散環境において2倍から2.5倍高速化したと報告しています(抄録基準)。

メリットは2つの数値によって決まります。

そのため公式ドキュメントでも、推論デコーディングを「中程度以下のリクエスト率、メモリにボトルネックがある負荷においてトークン間隔を短縮する機能」と紹介しています。

2. vLLMのドラフト手法

方法 ドラフトの生成方法 準備物 ドキュメントの評価(定性) 論文が報告している数値(抄録基準)
n-gram(ngram, ngram_gpu) プロンプトとこれまでの出力から同じトークン列を見つけてその続きをコピー なし 低いリクエスト率で低〜中 プロンプト照会デコーディング:A100 1枚、Mistral-7B、要約・文脈QAで平均2.4倍
suffix(suffix) プロンプトと過去のリクエストの出力からサフィックスツリーを作成し、頻度に応じて長さを変えながら提案 arctic-inference パッケージ 低〜中、反復が多い作業に強い SuffixDecoding:エージェント作業(SWE-Bench、Text-to-SQL)で最大5.3倍
EAGLE・EAGLE-3(eagle, eagle3) 大きなモデルの隠れ状態を受け取って次のトークンを出力する小さなヘッド 学習済みドラフトヘッド 高 EAGLE:LLaMA2-Chat 70Bで2.7〜3.5倍。EAGLE-3:最大6.5倍
MTP(mtp など) モデルが本来持っているマルチトークン予測ヘッド MTPを持つモデル(DeepSeek-V3、Qwen3.5など) 高
ドラフトモデル(draft_model) 同じ語彙を持つ小さなモデル 小さなモデル 高

設定は1つのJSONで指定します。

vllm serve <모델> --speculative-config '{"method":"ngram","num_speculative_tokens":4,"prompt_lookup_min":2,"prompt_lookup_max":5}'

n-gramの prompt_lookup_max·min は検索するトークン列の長さの範囲であり、両方省略した場合は5です。0.32.0ではModel Runner V2に長さが動的に変わるGPU n-gram提案機が追加されました。0.31.0には ngram_gpu がすでに選択肢にありましたが、実測ではどちらの方法も「Model Runner V2がまだこの方法をサポートしていないためV1ランナーを使用する」という警告が出力されました。CPU版 ngram は「非同期スケジュールの無効化」という警告も出力しました。

一緒に使用できない機能もあります。0.32.0のドキュメントの互換性表によると、推論デコーディングはLoRA、プーリングモデル、プロンプト埋め込み入力と同時に使用できず、 min_p と logit_bias は無視されるという警告がログに記録されました。

3. 実際に測定してみる

方法

結果1. 単体で使用する場合:コピーすれば4倍から6倍

作業(同時1) デフォルト n-gram k=2 n-gram k=4 n-gram k=8 GPU n-gram k=4
コピー、tok/s 176.4 427.5(2.4倍) 704.1(4.0倍) 1,117.0(6.3倍) 669.5(3.8倍)
コピー、受容率 97.7% 99.0% 95.8% 95.3%
ワードチェイン、tok/s 175.6 524.7(3.0倍) 515.8(2.9倍)
ワードチェイン、受容率 90.8% 67.9%

k=4はサーバーを個別に2回起動して測定し(692.6、704.1 tok/s)、ほぼ同じ値になりました。コピーにおいて提案数を8個に増やすと、8個のドラフトのうち平均7.7個が当たり、大きなモデルが追加する1トークンを含めて1ステップあたり約8.7トークンが確定しました。しかしスループットは8.7倍ではなく6.3倍でした。9トークンを一度に検証するステップが、通常のステップ(5.7ms)よりも約1.4倍(7.8ms)長かったことを意味します。重みの読み込みが1回であっても、検証するトークンが増えると計算とアテンションが増加します。

「ワードチェイン」も3倍高速化したのは、このモデルが同じ単語を繰り返すためです(例: signal river meadow signal river meadow …)。通常の会話モデルではこのように一致しないでしょう。

結果2. ランダム出力:プロンプトによって異なる

温度1.0のランダム出力はプロンプトごとに結果が大きく異なるため、バッチごとに記載します(同時1、tok/s)。

プロンプト デフォルト k=2 k=4(受容) k=8
1 171.4 242.4 237.6(113/430) 397.6
2 171.3 384.0 596.5(202/208) 914.2
3 171.4 149.2 153.6(22/175) 139.9

結果3. 同時実行数を上げるとメリットが減り、ランダム出力は損になる

作業 同時実行数 デフォルト tok/s n-gram k=4 tok/s 比率 受容率
コピー 8 1,124.6 2,860.6 2.54 97.1%
コピー 32 2,868.7 4,042.9 1.41 83.4%
ワードチェイン 8 1,089.7 2,478.3 2.27 92.1%
ランダム単語入力、負荷テスト(第2回と同じ条件) 16 1,683.1 2,436.5 1.45
ランダム単語入力、負荷テスト 64 2,899.3 3,267.8 1.13
ランダム出力 8 1,072.0 950.4 0.89 58.2%
ランダム出力 32 2,590.8 2,239.8 0.86 51.4%

バッチが大きくなるとGPUがすでに高負荷になり、検証するトークンが増える分だけステップが長くなります。受容率が高いコピーでも、同時実行数32ではメリットが1.41倍に減減少、受容率が半分程度のランダム出力は同時実行数8と32で11〜14%のマイナスとなりました。ドキュメントの「高リクエスト率ではメリットが減少する」という説明が数値として表れています。

結果4. 出力とコスト

3-1. 2026-10-27再測定:会話モデルと0.32.0

先ほどの測定は、同じ言葉を繰り返すリランクモデルであったためn-gramに有利でした。会話用のQwen3-0.6B(bf16)とvLLM 0.32.0で再測定しました。ワークロードは4つです。

タスク 同時実行 基本 tok/s n-gram k=4 tok/s 比率 受容率
コピー 1 176.3 656.0 3.72 87.3%
コードの返却 1 177.7 544.2 3.06 69.7%
コードの返却 8 1,288.6 3,252.8 2.52 69.7%
説明 1 178.6 173.9 0.97 3.0%
説明 8 1,163.5 1,141.5 0.98 3.6%
ランダム出力 1 171.9 197.3 1.15 13.0%
ランダム出力 8 1,074.7 961.9 0.90 18.0%

4. いつ有効にするか

5. 確認できなかったこと

参考

ログインするといいねできます

コメント

まだコメントはありません。

ログインするとコメントできます