人工知能(AI)の急速な進歩に伴い、大規模言語モデル(LLM)は自然言語処理(NLP)の基盤として登場しました。これらのモデルは、言語生成と理解において顕著な能力を示し、機械翻訳、対話システム、テキスト生成などのアプリケーションに不可欠なものとなっています。しかし、これらのモデルのサイズが拡大し続けるにつれて、その推論効率とリソース消費は、大規模展開にとって依然として大きなボトルネックとなっています。
近年、研究者たちはLLM推論の効率を高めるためのさまざまな最適化手法を提案しています。以前の研究では、非常に大規模な言語モデル(vLLM)フレームワークに基づく動的KVキャッシュ圧縮を活用することで、推論を1.5倍高速化し、LLMパフォーマンス最適化の強固な基盤を築きました。
本稿では、さらに2つの最適化戦略、すなわち投機的デコードと低精度量子化について詳しく掘り下げます。これらのアプローチは、主流ハードウェアの計算能力を最大限に活用し、推論コストを削減し、速度を向上させることを目的としています。これらの技術を採用することで、LLM推論効率を高めるための新しい視点と実用的なソリューションを提供し、スケーラブルなAI展開の課題に取り組みます。
投機的デコード
技術的原理
投機的デコードは、より小さいモデルを導入して複数の候補トークンを生成し、それをより大きなモデルが検証することで、並列デコードにより速度を向上させる技術です。このアプローチの実現可能性は、以下の2つの主要な要素に基づいています。
メモリボトルネック
最新のGPUハードウェアでは、メモリアクセス帯域幅が推論に必要な計算速度よりも遅いことが多く、そのためプロセスはメモリバウンドになります。大規模言語モデルの推論段階におけるGPUメモリトラフィックは主にモデルサイズによって決まり、GPUには余剰の計算能力がしばしば存在します。この余剰を小規模モデルとの並列推論によって活用することで、全体的な効率を向上させることができます。
小規模モデルの予測精度
現在主流の言語生成モデルは、通常、Transformerアーキテクチャに基づく自己回帰モデルです。小規模モデルは、一般的な言語パターン(例:慣用句の連語や標準的な表現)の予測において高い精度を示します。小規模モデルが次のトークンを正常に予測した場合、大規模モデルはこの結果を直接再利用できるため、計算コストを大幅に削減できます。
実装方法
投機的デコードの方法は、主に以下のステップで構成されます。
- 複数ラウンドの候補生成
- 特別に訓練された小規模モデルを使用して高速推論を行い、各位置に対して複数の高品質な候補トークンを生成します。
- 動的確率しきい値調整メカニズムを革新的に採用し、候補数を適応的に制御します。
- コンテキスト認識キャッシュメカニズムを導入し、連続テキスト生成時の小規模モデルの予測精度を向上させます。
- 効率的な検証戦略
- バッチ検証メカニズムを設計し、複数の候補トークンをグループ化して大規模モデルに送り、1回のスコアリングプロセスを実行します。
- 早期終了戦略を実装し、高い信頼度の一致が見つかった場合に迅速に結果を返します。
- 検証結果の非同期処理を可能にし、GPUのアイドル待機時間を削減します。
- インテリジェントスケジューリングシステム
- 小規模モデルの予測と大規模モデルの検証の間で計算リソースの割り当てを動的にバランスします。
- 過去の統計に基づく適応予測を使用して、候補トークン生成戦略を最適化します。
- 細粒度のタスク分割とスケジューリングを実装し、ハードウェア利用率を最大化します。

図1. 動的なドラフト長による投機的デコード
実験結果
業界をリードするvLLM推論フレームワークに基づき、深いカスタマイズと開発を行い、顕著なパフォーマンス向上を達成しました。LLaMA-3.1-70B-InstructモデルをH20 GPU上で使用し、さまざまなコンテキスト長のシナリオで実験を実施しました。さらに、投機的デコードなしのvLLMとのパフォーマンスを、異なるバッチサイズにおけるスループットに焦点を当てて比較しました。実験結果を図2に示します。
- パフォーマンスの向上
- 出力品質を維持しながら、全体的な推論速度を1.4倍高速化しました。
- 既存のvLLM機能と完全に互換性があり、現在のシステムにシームレスに統合できます。
- さまざまな規模の言語モデルをサポートし、特に大規模モデルで顕著な改善が見られます。

図2. 投機的デコードの高速化比率図
- 技術的利点
- 確率ベースの動的サンプリング戦略により、効率的なトークンドラフトと検証を実現。
- 安定したインテリジェントスケジューリングメカニズムにより、一貫した高速化効果を保証。
- リソースオーバーヘッドが少なく、コスト効率が高い。
低精度量子化
技術的原理
- 量子化の概要
量子化は、モデルの重みとアクティベーションを高ビット幅表現から低ビット幅表現に変換することで、大規模言語モデル(LLM)の計算コストとメモリコストを削減する、広く採用されている技術です。具体的には、多くの方法がFP16テンソルを低ビット整数テンソルに量子化することを含みます。以下に示します。

- 学習後量子化(PTQ)
PTQは、再学習を必要とせずに事前学習済みモデルを量子化するため、高い再学習コストを回避できます。しかし、従来の量子化手法をLLMに適用すると、特有の課題が生じます。
-
- LLMは、より小規模なモデルと比較して、重みとアクティベーションにおける外れ値の頻度が高く、分布範囲も広くなっています。
- したがって、LLMの効果的な量子化には、精度低下を最小限に抑えながら効率を維持するための特殊な最適化技術が必要です。
実装方法
- 外れ値の最適化
大規模言語モデルの重みとアクティベーションにおける外れ値の存在は、量子化プロセスにおいて大きな課題となります。従来の方法は通常、クリッピングや単純なスケーリングによって外れ値を処理しますが、これは小規模モデルには適していても、LLMのパフォーマンスに大きな影響を与えることがよくあります。
私たちのアプローチは、詳細な分析と最適化戦略を通じて外れ値の処理プロセスを改善します。外れ値の計算を洗練するだけでなく、関連するデータ構造も最適化し、モデルが精度低下を最小限に抑えながら効率的な計算能力を保持することを保証します。例えば、より柔軟な動的範囲分布戦略を採用し、外れ値を階層的に処理することで、モデルの特性をより正確に捉えます。
- 改善された演算子とレイヤー融合
私たちは、量子化データ構造をより効率的に処理できる一連の改良演算子を設計しました。例えば、レイヤー融合技術を通じて、前方計算中に複数の連続する演算子を1つの演算子に結合し、計算オーバーヘッドと中間データ転送を削減します。
さらに、活性化関数と組み合わせた行列乗算などの一般的な操作に対して、効率的な低ビット演算子を設計し、モデル推論を高速化します。この改善は、ハードウェアレベルでの帯域幅要求を大幅に削減するだけでなく、全体的な計算効率もさらに向上させます。
- 独自のFP8量子化スキーム
業界の主流の量子化手法は一般的にFP16からINT8への変換を使用しますが、このアプローチはより低い精度を必要とするシナリオには適さない場合があります。私たちのFP8量子化スキームは、適応スケーリングファクターを導入し、モデルの数値表現力を保持しながらビット幅をさらに削減します。実装では、FP8の指数部と仮数部の比率を調整し、LLMの分布特性にさらに適応させることで、モデルが非常に低いビット幅でも精度を維持できるようにします。
- KVCache量子化
大規模推論をサポートするシナリオでは、KVCacheのストレージとアクセス効率が重要です。従来の方法は、KVCacheのストレージ構造の特定の特性を最適化せずに、標準的な量子化技術を適用することがよくあります。
私たちは、クエリとキー・バリューペアに特定の量子化戦略を適用することで、計算リソース要件を最小限に抑える、特殊なKVCache量子化技術を提案します。具体的には、KVCacheの動的更新とストレージ密度を最適化し、区分量子化とスパース行列ストレージ手法を組み合わせることで、推論プロセス中のキャッシュ利用率を大幅に向上させます。
- 推論プロセスの最適化
FP16のモデル重みは、推論のためにFP8形式に量子化されます。入力トークンは、埋め込み層とTransformerモジュール(アテンションメカニズムとフィードフォワードネットワークを含む)を通過します。
FP8 TensorCoreと最適化されたKVCacheを使用して、システムはキー・バリューペアを効率的に保存および更新します。
線形変換とSoftmax層が出力確率分布を生成し、最終的なトークン出力を生成します。
このアプローチは、FP8 TensorCoreの計算効率を活用し、より低い計算コストでより高速な推論を提供します。図3では、元々FP16形式のモデル重みが推論のためにFP8に量子化され、データアクセスオーバーヘッドを大幅に削減し、速度を向上させます。LLM推論プロセス中、QKV投影、フラッシュアテンション、フィードフォワード層などの操作は、FP8形式で行列乗算が実行されます。これらの計算はTensorコアを使用して高速化され、推論速度が大幅に向上します。精度低下を軽減するために、少量の追加データがPTQに使用され、モデルの推論精度が損なわれないようにします。長文テキストシナリオでは、KVデータアクセスに関連するオーバーヘッドが推論速度を低下させる可能性があります。これに対処するために、KVデータもFP8に量子化され、モデルの推論パフォーマンスがさらに最適化されます。

図3. FP8精度量子化パイプラインの概要
実験結果
- 図4は、Llama3-8B-BF16に低精度量子化を適用した後の高速化比を示しています。異なる入出力長(10000-1000、5000-500、2000-200)とバッチサイズ(Batch Size)で測定しています。入出力長が長いほど、特に大バッチ推論において高速化効果が顕著です。単一の4090 GPUでLlama3-8B-FP8-KV8を実行した場合、ttft(最初のトークンまでの時間)を2秒未満に制限すると、バッチサイズは約4で、高速化比は1.4倍です。

図4. FP8量子化による高速化比
- 私たちの方法は、より大きな入出力長を扱う際の外れ値の影響を大幅に低減し、レイヤー融合などの最適化を通じて計算効率と転送効率を向上させます。業界の従来のPTQ手法は、大規模モデルで大きな入出力長を扱う際にしばしば課題に直面しますが、当社のソリューションはこの問題に特化して設計されており、モデルパフォーマンスの安定性を確保します。
- 実験では、4090 GPU上で、当社の方法は、大きな入出力長と中程度のバッチサイズを処理する際に優れた高速化を示し、推論レイテンシ(ttft)を2秒未満に維持し、リアルタイム推論要件を満たしています。
品質評価
異なるモデルAPI(openrouter.aiなど)をmmlu_pro(5-shot)テストセットでlm-evaluation-harnessツールを使用してテストするには、ツールのデフォルト設定で推論を実行します。結果を図5に示します。

図5. Meta-Liama-3.1-8B-Instruct-FP8 と Meta-Liama-3.1-8B-Instruct の完全一致率の比較
結論
本稿では、投機的デコードと低精度量子化を、大規模言語モデル(LLM)推論の効率を高めることを目的とした相補的な技術として提示しました。投機的デコードは、より小規模なモデルを利用して候補トークンを生成し、それを大規模モデルが並行して検証することで推論プロセスを加速し、1.4倍の高速化を実現します。
対照的に、低精度量子化は、モデル重みをより低いビット幅表現に変換することで計算とメモリのオーバーヘッドを軽減し、モデルパフォーマンスを維持します。総じて、これらの方法論は、動的KVキャッシュ圧縮などの既存技術を補完し、高効率推論を実現するための新しい洞察と実用的なソリューションを提供します。
Originally published at Novita AI
Novita AI は、開発者がシンプルなAPIを使用してAIモデルを簡単にデプロイできるAIクラウドプラットフォームであり、手頃な価格で信頼性の高いGPUクラウドを構築およびスケーリングに提供します。
おすすめの記事
