ドキュメント
LLMをローカルで実行
プリセット
API
ユーザーインターフェース
LLMをローカルで実行
プリセット
API
ユーザーインターフェース
投機的デコーディング
高度な設定
投機的デコーディングは、大規模言語モデル (LLM) の生成速度を、応答品質を低下させることなく大幅に向上させることができる技術です。
🔔 投機的デコーディングには、現在ベータ版であるLM Studio 0.3.10以降が必要です。こちらから入手してください。
投機的デコーディングは、2つのモデルの協調に依存しています
生成中、ドラフトモデルは潜在的なトークン(サブワード)を迅速に提案します。メインモデルは、ゼロから生成するよりも速くそれらを検証できます。品質を維持するため、メインモデルは自身が生成するであろうものと一致するトークンのみを受け入れます。最後に受け入れられたドラフトトークンの後、メインモデルは常に1つの追加トークンを生成します。
モデルをドラフトモデルとして使用するには、メインモデルと同じ「語彙」を持っている必要があります。
パワーユーザー
モード以上で、モデルを読み込み、チャットサイドバーの投機的デコーディング
セクション内でドラフトモデル
を選択します。
チャットサイドバーの投機的デコーディングセクション
ドロップダウンを開くと、以下の表示が出ることがあります
互換性のあるドラフトモデルなし
読み込んだモデルに、より低いパラメータのバリアントが存在する場合は、それをダウンロードしてみてください。モデルのより小さいバージョンが存在しない場合は、互換性のある組み合わせを見つけてください。
例
メインモデル | ドラフトモデル |
---|---|
Llama 3.1 8B Instruct | Llama 3.2 1B Instruct |
Qwen 2.5 14B Instruct | Qwen 2.5 0.5B Instruct |
DeepSeek R1 Distill Qwen 32B | DeepSeek R1 Distill Qwen 1.5B |
メインモデルとドラフトモデルの両方を読み込んだら、チャットを開始するだけで投機的デコーディングが有効になります。
投機的デコーディングによる高速化は、一般的に以下の2つの要素に依存します
簡単に言うと、メインモデルよりもはるかに小さいドラフトモデルを選ぶと良いでしょう。また、プロンプトによっては、より良い結果が得られます。
投機的デコーディングを有効にするために、メインモデルと並行してドラフトモデルを実行するには、メインモデル単独で実行するよりも多くの計算リソースと計算能力が必要です。
メインモデルの生成を高速化する鍵は、小さく、かつ十分に高性能なドラフトモデルを選択することです。
以下は、メインモデルのサイズ(パラメータ数)に基づいて選択すべき最大ドラフトモデルサイズに関する一般的なガイドラインです
メインモデルサイズ | 高速化が期待できる最大ドラフトモデルサイズ |
---|---|
3B | - |
7B | 1B |
14B | 3B |
32B | 7B |
一般的に、メインモデルとドラフトモデルのサイズ差が大きいほど、高速化の効果も大きくなります。
注記:ドラフトモデルが十分に高速でない、またはメインモデルに「良い」提案をするのに十分効果的でない場合、生成速度は向上せず、実際には低下する可能性があります。
投機的デコーディングを使用すると、生成速度がすべてのプロンプトで一貫しないことに気づくでしょう。
高速化がすべてのプロンプトで一貫しない理由は、一部のプロンプトでは、ドラフトモデルがメインモデルに対して「良い」提案をする可能性が低いからです。
この概念を説明する極端な例をいくつか示します
プロンプト:「二次方程式の公式は何ですか?」
この場合、70Bモデルも0.5Bモデルも、標準的な公式x = (-b ± √(b² - 4ac))/(2a)
を提示する可能性が非常に高いです。したがって、ドラフトモデルがこの公式を次のトークンとして提案した場合、ターゲットモデルはそれを受け入れる可能性が高く、これは投機的デコーディングが効率的に機能する理想的なケースとなります。
プロンプト:「『ドアがきしんで開いた…』で始まる物語を書いてください」
この場合、次の単語が無数の有効な可能性に分岐する可能性があるため、小さいモデルのドラフトトークンは、大きいモデルによって拒否される可能性が高くなります。
「2+2」に対する唯一の合理的な答えは「4」ですが、この物語は「モンスターが現れた」「風がうなり声を上げた」「サラは凍りついた」など、何百もの完全に有効な続き方があり、小さいモデルの具体的な単語予測が大きいモデルの選択肢と一致する可能性がはるかに低くなります。
このページの内容
投機的デコーディングとは
投機的デコーディングを有効にする方法
互換性のあるドラフトモデルを見つける
パフォーマンスに影響を与える主な要因
重要なトレードオフ
プロンプトに依存
- 1. 離散的な例:数学の問題
- 2. 創造的な例:ストーリー生成