HeadlinesBriefing favicon HeadlinesBriefing.com

vLLMのspeculative decoding

Hacker News •
×

TL; DR: speculative decodingによりvLLMは単一のターゲットモデルパスで複数のドラフトトークンを検証できます。実験の結果、その出力トークンスループットへの影響はドラフト方法や提案長さ、モデルファミリー、ドラフトチェックポイント、ワークロード、および受け入れ動作によって異なりました。

はじめに:大規模言語モデルは幅広いアプリケーションをサポートしていますが、スケールで提供するには慎重な最適化が必要です。標準的なオートリグレッシブデコーディングは、ほとんどのLLMサービングシステムで使用されるベースラインです:モデルは1つのトークンを生成し、それをシーケンスに追加し、その後更新されたシーケンスを使用して次のトークンを生成します。このプロセスは単純で信頼性が高いですが、サービングループは厳密な左から右への順序で出力トークンを生成する必要があるため、1つのコミットされたトークンずつ進みます。speculative decoding [1]はこのベースライン上にドラフトアンドバリデーション機構を構築します。軽量なドラフトコンポーネントは候補となる未来のトークンを提案し、ターゲットモデルはそれらがコミットされる前に検証します。複数のドラフトトークンが受け入れられると、システムはターゲットモデルの出力動作を保持しながら、単一のターゲットモデル検証ステップから複数の出力トークンをコミットできます。この投稿では、vLLMにおけるspeculative decodingの仕組みを探り、テスト環境からの測定値を共有します。まず、オートリグレッシブデコーディングのベースラインとドラフトアンドバリデーションプロセスを復習します。次に、5つのspeculative-draftingアプローチ:ネイティブMTP、Gemma 4 MTP、EAGLE-3、DFlash、およびDSparkを検討します。これらの方法は、ドラフトコンポーネントがターゲットモデルから情報をどのように受け取るか、および候補トークンがシーケンシャル、オートリグレッシブ、並行、またはハイブリッドアプローチで生成されるかどうかによって異なります。最後に、テスト環境でこれらの方法を有効にする方法を説明し、ROCmオープンソフトウェアプラットフォームを使用したAMD Instinct↓ MI300XおよびMI355X GPUでの実験からの測定値を報告し、実用的なチューニングと可観測性に関する考慮事項について議論します。

オートリグレッシブデコーディングのベースライン:標準的なオートリグレッシブデコーディングでは、各デコードステップが1つの新しいトークンを生成し、コミットします。4つの出力トークンを生成する例では、4つの連続するデコードステップが必要です:ステップ1:context→model→T1 ステップ2:context + T1→model→T2 ステップ3:context + T1 T2→model→T3 ステップ4:context + T1 T2 T3→model→T4 各ステップの後、生成されたトークンはシーケンスに追加され、次のステップの入力になります。このデコードループは単純ですが、各出力トークンにつき1つのモデルデコードステップが必要です。長い生成では、このトークンバイトークンループが遅延を支配し、サービングスループットを制限する可能性があります。

speculative decodingの核心的な問いは therefore:オリジナルモデルの出力動作を保持しつつ、1トークンずつ生成を進める頻度を減らすことはできるか? speculative decodingは提案と検証を分離することでこの問題に対処します。まず、軽量なドラフトコンポーネントがいくつかの候補となる未来のトークンを提案します。その後、オリジナルモデルがターゲットモデルとして機能し、それらがコミットされる前に検証します。

speculative decodingの核心的な考え方:speculative decodingはオリジナルモデルを置き換えません。代わりに、オリジナルモデルをターゲットモデルとして保持し、最終的な出力責任を負わせ、より高速な提案ステージをその前に追加します。このプロセスは2つの部分からなります:ドラフト:候補となる未来のトークンを提案。検証:ターゲットモデルが候補を検証します。

各speculative decodingラウンドで、図1に示すように、軽量なドラフトコンポーネントが1つ以上の未来のトークンを提案します。これらのトークンは候補のみであり、すぐにコミットされません。ターゲットモデルはその後、1回の検証パスで候補トークンのシーケンスを評価します。検証は左から右へ進行します。各ドラフトトークンは、ターゲットモデルの対応する位置の結果を使用してチェックされます。受け入れられたトークンは出力シーケンスにコミットされます。ドラフトトークンが拒否された場合、後の候補...