0Pricing
AI Agents · レッスン

量子化と投機的デコーディング

セルフホストモデルでは、メモリ削減にint8/int4量子化を、スループット向上に投機的デコーディングを使います。

「量子化と投機的デコーディング」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

セルフホストモデルの最適化

セルフホストのオープンモデルでは、速度とコストに大きな効果をもたらす方法が2つあります。

  1. 量子化— 重みを小さくし、RAM/VRAMの使用量を減らして推論を高速化します
  2. 投機的デコーディング— 1ステップで複数のトークンを生成します

量子化の基礎

モデルは通常、FP16(重みあたり16ビット)として保存されます。量子化によって、より少ないビット数に削減します。

  • FP16— ベースライン
  • INT8— 2分の1のサイズで、品質の低下はほぼ無視できる程度
  • INT4 / Q4_K_M— 4分の1のサイズで、品質がわずかに低下
  • INT2 / 1.58-bit— 8分の1以下のサイズで、品質が明確に低下

GGUFと量子化レベル

GGUFはllama.cppで使われる形式です。一般的なレベルは次のとおりです。

  • Q4_K_M — 品質とサイズのバランスが最適
  • Q5_K_M — やや大きく、品質もやや高い
  • Q8_0 — FP16に近い品質で、2倍に圧縮

Quantise With llama.cpp

./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M

# Or download pre-quantised from TheBloke / unsloth on HuggingFace

ハードウェアへの影響

8BのFP16モデルには約16GBのVRAMが必要です。同じモデルをQ4にすると約5GBのVRAMに収まり、はるかに安価なGPUで実行できます。

投機的デコーディング

仕組みは次のとおりです。小規模な「draft」モデルでトークンを提案し、その後、大規模な「target」モデルで1回のフォワードパスで検証します。速度が2~3倍になることもよくあります。

from transformers import AutoModelForCausalLM

target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')

outputs = target.generate(
    input_ids,
    assistant_model=draft,    # speculative decoding
    max_new_tokens=200
)

機能する理由

draftはK個のトークンを提案します。targetはそれらをすべてPARALLEL(並列)に処理します(フォワードパスは1回です)。受け入れられたトークンはそれぞれ「無料」です。却下された場合はロールバックしますが、通常は大部分が受け入れられます。

その他のデコーディング高速化手法

  • Lookahead decoding— 1ステップで複数のdraftを生成
  • Medusa— 複数のデコーディングヘッドを共同学習
  • EAGLE— 高速なツリーベースの投機

これらを実装するツール

  • vLLM— 量子化(AWQ、GPTQ、FP8)と投機的デコーディングの両方に対応
  • llama.cpp— 量子化に対応し、--draft-modelで投機的デコーディングを利用可能
  • TensorRT-LLM— NVIDIAの本番用サーバー
  • SGLang— 連続バッチ処理に対応した、高速でバッチ処理に適したサーバー

連続バッチ処理

vLLMの主要機能です。長さの異なる複数のリクエストを、同じフォワードパスで処理します。本番サーバーではスループットが大幅に向上します。

量子化レベルの選択

候補となる各レベルを、自分の評価セットでテストしてください。まずはQ4_K_Mを標準の出発点とし、品質がしきい値を下回る場合は、より高いレベルにします。

トークン単位のレイテンシーとスループット

最適化手法によって、改善できる指標は異なります。

  • 単一リクエストのレイテンシー:投機的デコーディング
  • 複数ユーザーでのスループット:連続バッチ処理
  • メモリコスト:量子化

量子化の効果

int4量子化の主な効果は何でしょうか?

まとめ

メモリと速度のためにQ4へ量子化します。レイテンシーには投機的デコーディングを使います。スループットには連続バッチ処理を使います。vLLMとllama.cppは、これら3つすべてを実装しています。

よくある質問

「量子化と投機的デコーディング」レッスンは無料ですか?

はい。「量子化と投機的デコーディング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「量子化と投機的デコーディング」で何を学びますか?

セルフホストモデルでは、メモリ削減にint8/int4量子化を、スループット向上に投機的デコーディングを使います。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「量子化と投機的デコーディング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ステップごとのトークン予算
  2. モデルルーティング(安価 -> 高価)
  3. プロンプトと結果のキャッシュ(Anthropic、Vertex)
  4. 量子化と投機的デコーディング
← AI Agentsに戻る