# Qwen3-8B 量子化方式の選び方：AWQ・GPTQ・FP8・GGUF を用途で決める

> Qwen3-8B をどの量子化で動かすべきか——AWQ・GPTQ・FP8・GGUF を、対応ハードウェア・VRAM・スループット・公式サポート状況で比較。GPU本番はAWQ/FP8、Mac/CPUローカルはGGUF、という判断軸を、VRAM計算と型安全な選定関数（テスト付き）で迷わず決められるようにします。

- 公開日: 2026-06-25
- 著者: 友田 陽大
- タグ: Qwen, AWQ, 量子化, vLLM, GGUF, FP8, セルフホスト
- URL: https://tomodahinata.com/blog/qwen3-quantization-awq-gptq-fp8-gguf-comparison-guide

## 要点

- 結論の早見：H100/Ada等のFP8対応GPUで速度最優先なら『FP8』、24GBクラスのGPUで最大圧縮なら『AWQ(4bit)』、Mac/CPUのローカルなら『GGUF』。GPTQはQwen公式が『To be updated for Qwen3』で既知の不具合もあり、Qwenでは基本AWQを推奨
- VRAM目安（8.2B・要実測）：FP16≈16GB / FP8≈8GB / AWQ・GPTQ Int4≈6GB / GGUF Q4_K_M≈5GB。重みが軽いほどKVキャッシュ（同時実行・文脈長）に回せる
- AWQはactivation-aware重み量子化で品質劣化が小さく、vLLMの連続バッチと相性が良い『GPUサーバ向け』。GGUFはllama.cpp系でCPU/Apple Metal対応の『ローカル/エッジ向け』——土俵が違う
- FP8はfine-grained（ブロックサイズ128）でほぼ無劣化だが、FP8対応GPU（Hopper/Ada/Blackwell）が前提。非対応GPUでは遅くなるか起動失敗
- 選定は感覚でなく式で：対応HW・優先軸を入力に、量子化方式を決定的に返す純粋関数（単体テスト可能）で再現性のある選定にする

---

## この記事のゴール

[Qwen3-8B-AWQ の実践ガイド](/blog/qwen3-8b-awq-self-hosting-reasoning-production-guide)で「AWQ なら 24GB GPU 1枚に載る」と書きました。では **AWQ・GPTQ・FP8・GGUF** のどれを選べばいいのか——案件で必ず聞かれるこの問いに、本稿は**ハードウェア・VRAM・スループット・公式サポート状況**で答えます。

量子化は「とりあえず4bit」で選ぶものではありません。**どのGPU（あるいはCPU/Mac）で、何を優先するか**で正解が変わります。読み終えたとき、「うちの環境なら○○、理由は△△」と**式で言い切れる**状態を目指します。

> **信頼性の開示**：本稿の方式特性・コマンド・公式サポート状況は、[Qwen 公式ドキュメント（量子化）](https://qwen.readthedocs.io/en/latest/quantization/awq.html)・各モデルカード（[AWQ](https://huggingface.co/Qwen/Qwen3-8B-AWQ) / [FP8](https://huggingface.co/Qwen/Qwen3-8B-FP8) / [GGUF](https://huggingface.co/Qwen/Qwen3-8B-GGUF)）に基づきます。**VRAM とスループットは環境依存・要ベンチ**です。本稿の数値は目安であり、実装前に自社環境で必ず計測してください。GPU 本番運用は[動画AIローカライズ基盤](/case-studies/ai-video-localization-lipsync)で実際に向き合った領域です。

---

## 30秒の結論：早見表

| 方式 | ビット | 対応HW | 重みVRAM(8.2B) | 主用途 | Qwen3公式 |
| --- | --- | --- | --- | --- | --- |
| **FP8** | 8bit float | **FP8対応GPU**（H100/H200・Ada・Blackwell） | ≈8GB | **GPUサーバ・速度最優先・ほぼ無劣化** | `Qwen3-8B-FP8` |
| **AWQ** | 4bit weight | 一般的なGPU（24GB級でも可） | ≈6GB | **GPUサーバ・最大圧縮・1枚運用** | `Qwen3-8B-AWQ` |
| **GPTQ** | 4/8bit | GPU（vLLMはMarlin） | ≈6GB（Int4） | 既存GPTQ資産がある場合 | ⚠️ 「To be updated」 |
| **GGUF** | 2〜8bit可変 | **CPU / Apple Metal / GPU** | ≈5GB（Q4_K_M） | **ローカル・Mac・エッジ・単機** | `Qwen3-8B-GGUF` |

**3行で言うと**：

- **GPUで本番サーブ** → **FP8**（対応GPUがあれば速くて綺麗）か **AWQ**（汎用GPUで最大圧縮）。
- **Mac/CPUでローカル** → **GGUF**（Ollama / LM Studio / llama.cpp）。
- **GPTQ** は Qwen3 で公式が「更新待ち」かつ既知の不具合報告があり、**Qwen では基本 AWQ を選ぶ**のが無難。

---

## まず「量子化で何が起きるか」を1分で

LLM の重みは通常 FP16（1パラメータ2バイト）。**量子化は、この重みをより少ないビットで表す**ことで、VRAM とメモリ帯域を削り、**載る・速い・安い**を実現します。代償は**わずかな品質劣化**——どれだけ賢く削るかが各方式の腕の見せどころです。

VRAM の概算式はシンプルです。

```text
重みVRAM ≈ パラメータ数 × (ビット数 / 8) [byte]
  FP16 : 8.2e9 × 2     ≈ 16.4 GB
  FP8  : 8.2e9 × 1     ≈ 8.2 GB
  4bit : 8.2e9 × 0.5   ≈ 4.1 GB（+スケール/ゼロ点で実測 5〜6GB）
```

> 💡 **重みが軽い＝同時実行が増える**：空いた VRAM は **KVキャッシュ**（＝同時リクエスト数と文脈長を決める）に回せます。だから「重みを削る」ことは、単に載るだけでなく**セルフホストの実効スループット**（[原価を決める分母](/blog/llama-inference-cost-optimization-self-host-vs-api)）を直接押し上げます。

---

## AWQ：GPUサーバの“本命”

**AWQ（Activation-aware Weight Quantization）** は、「出力に効く重みほど壊さない」**活性化を考慮した4bit重み量子化**です。公式は AutoAWQ 実装で **FP16比 約3倍のメモリ削減・約3倍の高速化**を示しています。

- **強み**：4bit で**品質劣化が小さい**。vLLM の連続バッチと相性が良く、**24GB級GPU 1枚**で実用的に回る。Qwen 公式が `Qwen3-8B-AWQ` を配布。
- **向く**：L4 / A10 / RTX 4090 などの汎用GPUで、**最大圧縮しつつ本番サーブ**したい。

```bash
# AWQ：そのままOpenAI互換でサーブ（詳細は実践ガイドへ）
vllm serve Qwen/Qwen3-8B-AWQ --reasoning-parser qwen3 --max-model-len 32768
```

サーブと本番運用の作法は[Qwen3-8B-AWQ 実践ガイド](/blog/qwen3-8b-awq-self-hosting-reasoning-production-guide)に集約しています。

---

## FP8：対応GPUがあるなら最有力

**FP8** は 8bit の浮動小数点量子化。Qwen3 の FP8 は **fine-grained（ブロックサイズ128）**で、**ほぼ無劣化**に近いのが特徴です。

- **強み**：精度劣化が極小。**FP8対応GPUでは演算が速い**（Tensor Core が FP8 を直接処理）。
- **前提**：**FP8対応GPU が必須**——Hopper（H100/H200）、Ada（L4/L40S/RTX 40系）、Blackwell。非対応GPU（例：A100/V100）では**遅くなるか起動に失敗**します。
- **VRAM**：≈8GB と AWQ より重いが、**24GBに十分収まる**。

```bash
# FP8：対応GPUなら速くて綺麗。重みは≈8GB
vllm serve Qwen/Qwen3-8B-FP8 --reasoning-parser qwen3 --max-model-len 32768
```

> 🔧 **AWQ と FP8、どちらか**：**H100/Ada を持っていて速度最優先なら FP8**。**汎用24GB GPUで“とにかく載せて安く”なら AWQ**。VRAM が逼迫して同時実行を稼ぎたいなら 4bit の AWQ が有利、品質を1ミリも落としたくないなら FP8——という住み分けです。

---

## GPTQ：Qwen3では「更新待ち」、基本は避けて良い

**GPTQ** は近似2次情報を使うワンショット重み量子化で、Int4/Int8 が一般的。vLLM では **Marlin カーネル**で高速化されます。

ただし Qwen の[GPTQ 公式ドキュメント](https://qwen.readthedocs.io/en/latest/quantization/gptq.html)は冒頭に **「Attention: To be updated for Qwen3」** と明記されており、**Qwen3 向けの公式 GPTQ は更新待ち**の状態です。加えて Qwen2.5 系で **「72B-GPTQ-Int4 が生成を止められない」「32B-GPTQ-Int4 が vLLM 複数GPUで文字化け」**といった既知の不具合が報告され、**回避策として AWQ が案内**されています。

> ⚠️ **結論**：**Qwen で量子化を選ぶなら、まず AWQ**。GPTQ は「既存の GPTQ パイプラインがある」等の明確な理由がない限り、Qwen3 では積極的に選ぶ理由が薄いです。選ぶ場合も**単機・単GPU**で挙動を必ず検証してください。

---

## GGUF：Mac・CPU・ローカルの“もう一つの世界”

**GGUF** は **llama.cpp** 系のフォーマット。AWQ/FP8/GPTQ が「GPUサーバ向け」なのに対し、GGUF は**土俵が違います**。

- **強み**：**CPU でも Apple Silicon（Metal）でも動く**。**Ollama / LM Studio / llama.cpp** がそのまま読む。ローカル開発・Mac・エッジ・単機の決定版。
- **ビット**：可変。**Q4_K_M がサイズと品質の定番スイートスポット**（実効約4.5bit）、**Q8_0 はほぼ無劣化（≈8bit）**。極端な Q2/Q3 は劣化が見える。
- **不得手**：**多数同時リクエストの高スループットサーブ**。それは vLLM × AWQ/FP8 の領分です。

```bash
# Mac/ローカルで最短：Ollama で Qwen3-8B（GGUF）を動かす
ollama run qwen3:8b
# llama.cpp で特定の量子化を選ぶ場合（例：Q4_K_M）
llama-cli -hf Qwen/Qwen3-8B-GGUF:Q4_K_M -p "RAGの再ランキングを2行で"
```

> 💡 **使い分けの本質**：GGUF は「**自分のMacで、外部に出さず、すぐ試す**」。AWQ/FP8 は「**サーバで、多数同時に、速く捌く**」。開発はGGUF、本番はvLLM、と[Ollama と vLLM の住み分け](/blog/vllm-llama-self-hosting-production-inference-server#よくある質問faq)に揃えてください。

---

## VRAM とハードウェアの対応表

| 環境 | 推奨方式 | 理由 |
| --- | --- | --- |
| H100 / H200 / L40S（FP8対応） + 速度最優先 | **FP8** | Tensor Core で高速・ほぼ無劣化 |
| L4 / A10 / RTX 4090（24GB級）+ 最大圧縮 | **AWQ 4bit** | 6GBに圧縮し同時実行を稼ぐ |
| A100 / V100（FP8非対応）| **AWQ 4bit** | FP8は不可。4bitで載せる |
| Apple Silicon Mac | **GGUF（Metal）** | Ollama/LM Studioで即動く |
| GPUなし・CPUのみ | **GGUF（Q4_K_M）** | CPU推論はllama.cpp一択 |
| 既存GPTQ資産あり | GPTQ（要検証）| Marlinで動くが Qwen3 は更新待ち |

---

## 迷わないための「選定関数」（型安全・テスト可能）

“世界最高峰”は派手さではなく、**入力だけで決まる小さな純粋関数**です。環境と優先軸を入れれば量子化方式が**決定的**に返り、そのまま単体テストに載ります（[型安全の規律](/blog/typescript-type-safety-discipline-zod-nevererror-no-any)）。

```ts
// lib/pick-quantization.ts — 環境×優先軸 → 量子化方式を決定的に返す純粋関数
export type Hardware = "fp8-gpu" | "ampere-24gb" | "older-gpu" | "apple-silicon" | "cpu-only";
export type Priority = "throughput" | "max-compression" | "no-quality-loss" | "local-dev";

export interface QuantChoice {
  readonly method: "FP8" | "AWQ" | "GGUF";
  readonly model: `Qwen/Qwen3-8B${"-FP8" | "-AWQ" | "-GGUF"}`;
  readonly runtime: "vLLM" | "Ollama/llama.cpp";
  readonly reason: string;
}

/** ハードウェアと優先軸から、Qwen3-8B の量子化方式を一意に決める。 */
export function pickQuantization(hw: Hardware, priority: Priority): QuantChoice {
  // ローカル/CPU/Macは土俵が違う：GGUF一択（GPUサーバ系の議論に巻き込まない）
  if (hw === "cpu-only" || hw === "apple-silicon" || priority === "local-dev") {
    return { method: "GGUF", model: "Qwen/Qwen3-8B-GGUF", runtime: "Ollama/llama.cpp",
      reason: "CPU/Apple Metal/ローカル単機。Ollama・LM Studio・llama.cpp が直接読む。" };
  }
  // FP8対応GPUで「劣化させたくない or 速度最優先」なら FP8
  if (hw === "fp8-gpu" && (priority === "no-quality-loss" || priority === "throughput")) {
    return { method: "FP8", model: "Qwen/Qwen3-8B-FP8", runtime: "vLLM",
      reason: "FP8対応GPUではTensor Coreが速く、fine-grained FP8はほぼ無劣化。" };
  }
  // それ以外のGPU（FP8非対応含む）/ 最大圧縮 → AWQ 4bit
  return { method: "AWQ", model: "Qwen/Qwen3-8B-AWQ", runtime: "vLLM",
    reason: "汎用GPUで最大圧縮（重み≈6GB）。activation-awareで品質劣化が小さく、vLLM連続バッチと好相性。" };
}
```

```ts
// pick-quantization.test.ts — 仕様を表で固定（退行を止める）
import { describe, it, expect } from "vitest";
import { pickQuantization } from "./pick-quantization";

describe("pickQuantization", () => {
  it("Mac はランタイムに関わらず GGUF", () => {
    expect(pickQuantization("apple-silicon", "throughput").method).toBe("GGUF");
  });
  it("FP8対応GPUで無劣化優先なら FP8", () => {
    expect(pickQuantization("fp8-gpu", "no-quality-loss").method).toBe("FP8");
  });
  it("FP8非対応GPUは AWQ にフォールバック", () => {
    expect(pickQuantization("older-gpu", "throughput").method).toBe("AWQ");
  });
  it("24GB級で最大圧縮なら AWQ", () => {
    expect(pickQuantization("ampere-24gb", "max-compression").model).toBe("Qwen/Qwen3-8B-AWQ");
  });
});
```

選定を**コードとテストに落とす**と、チームの誰が判断しても同じ結論になり、環境が増えても分岐を1か所で保守できます（DRY・SRP）。

---

## ハマりどころ & ベストプラクティス

- 🔴 **FP8 は対応GPU必須**。非対応GPU（A100/V100等）に FP8 を載せると遅化・起動失敗。`nvidia-smi` で世代を、起動ログで実 dtype を確認。
- 🟠 **GPTQ は Qwen3 で更新待ち＋既知の不具合**。選ぶなら単GPUで挙動検証。Qwen では基本 AWQ。
- 🟠 **GGUF を高スループットサーバに使わない**。多数同時は vLLM×AWQ/FP8。GGUF は単機・ローカルの強み。
- 🟠 **二重量子化しない**。配布済みの量子化済みモデルを更に量子化しない。公式の量子化版をそのまま使う。
- 🟢 **どの方式でも思考モードのサンプリングは守る**。量子化に関わらず greedy decoding 禁止・`presence_penalty≈1.5` は[実践ガイド](/blog/qwen3-8b-awq-self-hosting-reasoning-production-guide#ハマりどころ--公式ベストプラクティス)どおり。
- 🟢 **品質は自社タスクで評価**。一般ベンチではなく、**あなたのプロンプトで** AWQ と FP8 を比べる。差が無ければ軽い方（AWQ）が得。

---

## よくある質問（FAQ）

**Q. 結局おすすめは？**
A. **GPU本番なら AWQ（汎用GPU）か FP8（対応GPU）**、**Mac/CPUローカルなら GGUF**。Qwen で GPTQ は基本選ばなくて良い。迷ったら本文の選定関数に環境を入れてください。

**Q. 4bit にすると賢さはどれくらい落ちる？**
A. AWQ は activation-aware で**実用上わずか**。ただし**タスク依存**です。一般ベンチではなく、**自社の評価セット**で AWQ と FP8/FP16 を比べて差を確かめてください。

**Q. FP8 と AWQ、品質はどっちが上？**
A. 一般に **FP8 の方が劣化が小さい**（8bit・fine-grained）。一方 AWQ は **より軽い（4bit）**ので同時実行を稼げます。「品質1ミリも落とさない」FP8、「載せて安く」AWQ。

**Q. GGUF の Q4_K_M と Q8_0、どっち？**
A. **サイズ優先なら Q4_K_M**（定番スイートスポット）、**品質優先なら Q8_0**（ほぼ無劣化だが約2倍の容量）。Mac のメモリと相談して選びます。

**Q. 量子化でコストはどれくらい変わる？**
A. 重みが軽い＝同じGPUに**より多く同時に載る**＝実効スループットが上がり、[出力1Mトークンあたり原価](/blog/llama-inference-cost-optimization-self-host-vs-api#検証可能なコスト計算機純粋関数)が下がります。効果は必ずベンチで確認を。

---

## まとめ

Qwen3-8B の量子化選びは、流行りではなく**環境と優先軸の関数**です。

1. **GPUサーバ × 速度/無劣化** → **FP8**（対応GPUが前提）。
2. **GPUサーバ × 最大圧縮（24GB級）** → **AWQ 4bit**（Qwenの本命）。
3. **Mac / CPU / ローカル単機** → **GGUF**（Ollama・llama.cpp）。
4. **GPTQ** は Qwen3 で更新待ち＋既知の不具合——**基本は AWQ**。
5. 最終判断は**自社タスクの評価と VRAM/スループットの実測**で。選定はコードとテストに落として再現性を持たせる。

> モデル量子化の選定・ベンチ設計から、vLLM 本番サーブ・原価試算までまとめて伴走します。GPU 推論基盤の[実績](/case-studies/ai-video-localization-lipsync)をご覧のうえご相談ください。**一人 × 生成AI**で、速く・安く・安全に。

### 出典・公式リソース

- [Qwen 公式ドキュメント（AWQ）](https://qwen.readthedocs.io/en/latest/quantization/awq.html) ／ [（GPTQ）](https://qwen.readthedocs.io/en/latest/quantization/gptq.html)
- モデルカード：[Qwen3-8B-AWQ](https://huggingface.co/Qwen/Qwen3-8B-AWQ) ／ [Qwen3-8B-FP8](https://huggingface.co/Qwen/Qwen3-8B-FP8) ／ [Qwen3-8B-GGUF](https://huggingface.co/Qwen/Qwen3-8B-GGUF)
- [vLLM 公式ドキュメント](https://docs.vllm.ai/) ／ [llama.cpp](https://github.com/ggml-org/llama.cpp) ／ [Ollama](https://ollama.com/)

※ 方式特性・公式サポート状況・VRAM/スループットは更新・環境依存です。実装前に一次情報と自社ベンチで必ず確認してください。
