0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

科学と神々株式会社アドベントカレンダー 2025

LLM量子化 Day 4: 量子化手法の全体像

3つのパラダイム

LLM量子化には、大きく分けて3つのアプローチがあります:

量子化のパラダイム
├── PTQ (Post-Training Quantization)
│   └── 学習済みモデルを後から量子化
│       → GGUF, AWQ, GPTQ
│
├── QAT (Quantization-Aware Training)
│   └── 量子化を考慮しながら学習
│       → 従来からの研究的アプローチ
│
└── Native Low-Bit Training
    └── 最初から低ビットで学習
        → BitNet b1.58 (1.58ビット)

これらは「いつ・どのように」ビット数を削減するかが異なります。

PTQ:学習後量子化(llm-quantize の主要手法)

PTQは「学習後量子化」と訳されます。すでに学習が完了したモデルを、追加の学習なしに量子化する手法です。

料理に例えると

PTQは、すでに完成した料理を「お弁当箱に詰め直す」作業に似ています。元の料理の味は少し損なわれるかもしれませんが、おおむねそのまま楽しめます。

PTQの代表的な手法

手法 特徴 主な用途
GGUF k-quantsによる混合精度 CPU/Apple Silicon
AWQ アクティベーション重視 GPU推論 (vLLM)
GPTQ ヘシアンベースの誤差補償 GPU推論 (ExLlama)
HQQ キャリブレーション不要 高速量子化

PTQの利点

  • 追加学習が不要:GPUを長時間占有せずに済む
  • 学習データ不要:元のデータセットがなくても実行可能(AWQ/GPTQはキャリブレーションデータのみ)
  • 迅速に適用:数分〜数時間で完了
  • エコシステムが充実:llama.cpp、vLLM、TGIなど

PTQの欠点

  • 低ビットでの精度低下:2〜3ビットでは品質が顕著に落ちる
  • 元モデルの品質に依存:量子化で品質は上がらない

QAT:量子化を考慮した学習

QATは「量子化を考慮した学習」です。学習中に量子化の影響をシミュレートすることで、量子化に強いモデルを作ります。

スポーツ選手に例えると

本番の試合(量子化後の推論)を想定して練習する選手のようなものです。

フェイク量子化の仕組み

フォワードパス:
   FP32重み → 量子化 → 逆量子化 → FP32(誤差が注入される)
                                       ↓
                                    活性化計算

バックワードパス:
   勾配は通常通りFP32で計算
   → モデルが量子化誤差に適応

QATの利点と欠点

利点 欠点
低ビットでも高精度 計算コストが高い
ロバスト性向上 学習データが必要
理論的に最適 実装が複雑

BitNet:1.58ビットの革命

2024年にMicrosoftが発表したBitNet b1.58は、LLM量子化のパラダイムを大きく変える可能性を持っています。

BitNetとは

BitNetは、PTQやQATとは根本的に異なるアプローチです。最初から重みを三値(-1, 0, +1)だけで学習します。

従来の量子化:
FP16で学習 → 学習後に量子化 → 精度低下

BitNet:
三値(-1, 0, +1)で最初から学習 → 精度低下なし

なぜ1.58ビットか

三値 {-1, 0, +1} を表現するには log₂(3) ≈ 1.58 ビットが必要です。これが「1.58ビット」の由来です。

2値 (-1, +1): 1ビット → BitNet 1-bit
3値 (-1, 0, +1): 1.58ビット → BitNet b1.58

BitNetの革新性

計算の変化:
従来: 行列乗算 (multiply-accumulate)
     W × X → 高コストな乗算が必要

BitNet: 加減算のみ (addition)
     W ∈ {-1, 0, +1}
     → 乗算が不要!
     → +1: そのまま加算
     → -1: 符号反転して加算
     → 0: スキップ

これにより、理論上の演算コストは大幅に削減されます。

BitNet b1.58の性能

Microsoftの研究によると:

比較 BitNet b1.58 従来のFP16
3Bパラメータ LLaMA同等の精度 基準
推論速度 2.71倍高速 基準
GPUメモリ 3.55倍少ない 基準
70Bパラメータ 4.1倍高速 基準

BitNetの制約

  1. 学習が必要:既存モデルをBitNetに変換することは困難
  2. 専用最適化:通常のGPUライブラリでは恩恵を受けにくい
  3. エコシステム:まだ発展途上(bitnet.cpp、2024年10月公開)

llm-quantizeがPTQを選んだ理由

llm-quantizeプロジェクトでは、すべての量子化器(GGUF、AWQ、GPTQ)がPTQ手法を採用しています。

1. ユースケースとの適合

目的: 公開されている学習済みモデルを手軽に量子化

QAT/BitNet:
├── 高性能GPU必須(A100で数日)
├── 学習データの準備が必要
└── 専門知識が必要

PTQ:
├── CPUでも実行可能
├── キャリブレーションデータのみ
└── CLIコマンド一つで完了 ✓

2. 4ビット以上では十分な品質

手法 4ビット精度維持率 8ビット精度維持率
PTQ 95%以上 99%以上
QAT 97%以上 99%以上

多くのユースケースでは、PTQで十分な品質が得られます。

3. エコシステムとの互換性

主要な推論フレームワーク(llama.cpp、vLLM、TGI)は、すべてPTQベースの量子化形式をサポートしています。

キャリブレーション:PTQの品質を左右する鍵

PTQでも高品質な量子化を実現するための鍵が「キャリブレーション」です。

キャリブレーションの役割

キャリブレーションなし:
重み分布のみで量子化 → 外れ値に引っ張られる

キャリブレーションあり:
実際のデータで活性化分布を分析
→ 重要な重みを特定
→ 最適なスケールを決定
→ 高品質な量子化

形式別のキャリブレーション要否

形式 キャリブレーション 特徴
GGUF 不要(オプション) 重みの統計のみで量子化
AWQ 必要 アクティベーション分析
GPTQ 必要 ヘシアン行列の計算

llm-quantizeではデフォルトで256サンプルのキャリブレーションを使用します。

HQQ:キャリブレーション不要の新手法

Half-Quadratic Quantization (HQQ) は2024年に登場した新しい手法です。

特徴:
├── キャリブレーションデータ不要
├── 高速な量子化(リアルタイムに近い)
├── 任意のモデルに適用可能
└── AWQ/GPTQに匹敵する精度

HQQは、重みの二次最適化問題を効率的に解くことで、キャリブレーションなしでも高品質な量子化を実現します。

LittleBit:0.1ビット/重みの極限圧縮

LittleBit(arXiv 2506.13771、NeurIPS 2025)は、潜在行列分解を用いた超低ビット量子化手法です。

LittleBitの革新性:
├── 0.1 BPW(bits per weight)を実現
├── 31倍のメモリ削減
├── Llama2-13Bを0.9GB未満に圧縮
└── FP16比で11.6倍の高速化(カーネルレベル)

技術的なアプローチ

従来の量子化:
重み → 直接量子化 → 2-8ビット

LittleBit:
重み → 低ランク分解 → 因子を二値化 → 0.1ビット
     W ≈ L × R(低ランク近似)
     L, R を {-1, +1} に二値化

多スケール補償

極端な圧縮による精度低下を防ぐため、3つのレベルで補償を行います:

  • 行レベル補償
  • 列レベル補償
  • 潜在次元レベル補償

llm-quantizeでの対応

llm-quantizeではLittleBitサポートを計画中です(スペック策定済み)。将来のバージョンで以下の機能が追加される予定です:

  • 0.1〜2.0 BPWの柔軟な圧縮レベル
  • 自動/手動のランク選択
  • 品質閾値による自動調整
  • ネイティブ .littlebit 形式とGGUF互換出力

手法選択のガイドライン

「とりあえず試したい」場合
→ GGUF Q4_K_M(キャリブレーション不要、高速)

「GPU推論で高スループットが欲しい」場合
→ AWQ 4bit(vLLMとの相性が良い)

「品質を最大化したい」場合
→ GPTQ 4bit + group_size=64(細かい制御が可能)

「最小サイズが必要」場合
→ GGUF Q2_K(ただし品質低下に注意)

「将来を見据えて」
→ BitNet対応モデルの登場を待つ(2025年以降)

次回予告

Day 5では「良いソフトウェア設計の原則」について解説します。量子化ツールの開発を通じて、単一責任の原則やレジストリパターンなど、拡張性の高いソフトウェアを作るための考え方を紹介します。


量子化技術は急速に進化しています。PTQは「今すぐ使える」成熟した技術であり、BitNetは「未来を変える」可能性を持つ新技術です。両者を理解することで、適切な選択ができるようになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?