先日、原さんと『9GB に何が入っているのか』の話をした流れで、自然と次の問いが立ち上がった。「で、具体的にどう圧縮してるの? Q4_K_M って書いてあるけど、あれって結局なに?」
Hugging Face や Ollama でモデルを探していると、必ずぶつかるあの謎の文字列だ。「量子化のレベルです」と答えてはみたものの、自分でも改めて図に描いてみないと、人に説明できる気がしなかった。今日はその対話を、図を交えてもう一度たどってみる。
そもそも、何を圧縮しているのか
LLM の中身は、突き詰めれば 「重み (weight)」と呼ばれる小数の塊だ。14B (140 億パラメータ) のモデルなら、文字通り 140 億個の小数が並んでいる。本来こういう値が入っている。
0.7234567891234567
-0.1845629384756291
0.0023948571049283
… (これが 140 億個)
「重みって何?」と原さんに聞かれた。簡単に言えば、ニューラルネットワーク内で「ある入力に対して、どれくらいの強さで次の層に信号を送るか」を決める係数だ。この数百億個の小数の組み合わせが、モデルの『賢さ』そのものを保存している。
これを FP16 (16 ビット浮動小数点) で素直に保存すると、1 個あたり 2 バイト。140 億個 × 2 バイト = 約 28GB。これが「無圧縮」状態の LLM のファイルサイズだ。
量子化は『小数を丸める』だけ
量子化 (quantization) という言葉は物々しいが、本質は驚くほど単純だ。JPEG 圧縮の数学版だと思えばいい。0.7234567… という値を、もっと粗い目盛りに乗せ換える。それだけの操作だ。
たとえば 0.7234567 を:
- Q8 (8 ビット、256 段階) で保存すると → およそ 0.72
- Q4 (4 ビット、16 段階) で保存すると → およそ 0.73
- Q2 (2 ビット、4 段階) で保存すると → およそ 0.67
これを 140 億個すべてに適用すれば、ファイルサイズは劇的に減る。Q8 で 14GB、Q4 で 7〜9GB、Q2 ならわずか 4GB 前後。同じモデルなのに、半分以下、四分の一以下になる。
なぜ丸めても壊れないのか
原さんが鋭いところを突いた。「16 段階に丸めたら、ふつう壊れるんじゃないの?」
実は LLM の重みは、ほとんどがゼロ付近に集中している。ヒストグラムを描くと、こんな釣り鐘型 (ベルカーブ) になる。
大半の重みは「ちょっとプラス」か「ちょっとマイナス」ぐらいの小さな値で、極端に大きい/小さい値は少数派だ。だから精度を犠牲にしても、全体としての挙動はそれほど崩れない。
写真にたとえると、JPEG 圧縮と同じ構造だ。元の RAW 画像を 1/10 のサイズに圧縮しても、肉眼ではほとんど区別がつかない。それは「ふつうの写真には、極端な変化があまり含まれていない」からだ。LLM の重みも同じ理屈で、適度に丸めても、全体としては似た出力をしてくれる。
Q4_K_M の暗号を分解する
さて、本題の Q4_K_M。これを分解すると、こうなる。
| Q4 | 4 ビットで量子化 |
| K | K-quants 方式 (重要度別の圧縮) |
| M | Medium サイズ (S / M / L から選択) |
つまり「4 ビット、K 方式、ミディアムサイズ」と読む。
ここで「K 方式って何が違うの?」という話になる。ふつうの 4 ビット量子化は、すべての重みを 16 段階に均等に丸める。だが K-quants という方式は、重要な重みは精度を高く、どうでもいい重みは精度を低く、というメリハリのある丸め方をする。
これも写真にたとえれば、人物の顔は高画質に保ち、背景はガッツリ圧縮するようなものだ。同じファイルサイズでも、体感品質が大幅に向上する。2023 年あたりから登場し、今ではローカル LLM の事実上の標準になっている。
どれを選べばいいのか
ファイルサイズと品質のトレードオフを、横並びにするとこうなる。
実用上のおすすめは以下の通り。
- RAM/VRAM に余裕あり: Q5_K_M または Q6_K (品質ほぼフル)
- 標準的な選択: Q4_K_M (世界中のユーザーがこれを使っている、王道)
- メモリギリギリ: Q3_K_M (やや劣化を感じるが実用ライン)
- 最終手段: Q2_K (おすすめしないが、緊急時には動く)
Q4_K_M が世界の標準になっているのは、品質劣化が小さく、サイズが半分以下という絶妙なバランスだから、らしい。
結び ── 量子化は LLM を『酔わせる』こと
原さんに「結局、量子化って LLM に何をしてるの?」と聞かれて、こんなたとえを思いついた。
量子化は、優秀な料理人を『ちょっと酔わせる』ような操作だ。Q8 は素面、Q4_K_M は軽く一杯、Q2 はべろべろ。素面に近いほど精度は高いが、その分機材 (ファイルサイズ) も重い。少し酔わせれば荷物は軽くなって持ち運びやすいが、味付けがちょっと大胆になる。べろべろにすると、もう何が出てくるか分からない。
ローカル LLM を動かしたいと思った時、最初の壁は HDD 容量と RAM 容量だ。28GB の無圧縮モデルを丸ごと動かせるマシンはそうないが、9GB の Q4_K_M なら Mac mini や中堅 PC でも余裕で動く。量子化はその壁を乗り越えるための、現代の魔法の一つと言っていい。
次に試したいのは、最近話題の『1.58 ビット量子化』── 各重みを -1, 0, +1 の三値だけで表現するという、ほぼ正気の沙汰ではない圧縮方式だ。それでもなぜか動く、という衝撃の結果が出ているらしい。それはまた、別の対話のテーマにしよう。












