ホーム / 用語集 / 量子化
量子化 (Quantization)とは?
量子化は、LLMの重みをフル16ビット浮動小数点ではなく、より低精度(4ビット / 5ビット / 6ビット)で格納することで、メモリフットプリントを削減する手法です。osFoundryはモデルをQ4_K_M、Q5_K_M、Q6_K、FP16へワンクリックで量子化できます。
詳しく
量子化が変えるのは各重みの表現精度であって、パラメータの個数ではありません。7Bモデルは量子化しても7Bモデルのままで、一つひとつの数値が粗くなるだけです。LLMの重みには大きな冗長性があるため、精度を落としても何十億個の重みが束になって作る出力分布はあまり動きません。この冗長性が尽きるところまで削ると、目に見えて出力が崩れ始めます。
ローカルモデルで広く使われるGGUF形式では、Q8_0、Q6_K、Q5_K_M、Q4_K_M、Q3_K_Sのような表記を目にします。Qの後の数字がおおよそのビット幅、Kが付くものは重要な重みにより多くの精度を割り当てる混合方式、末尾のS/M/Lはその配分バランスの違いです。
メモリの目安は、7BクラスでFP16が約14GB、Q8_0で約7.5GB、Q4_K_Mで約4.5GBです。70BクラスならFP16で約140GB、Q4でも40GBを超えます。これは重みだけの数字で、実行時にはコンテキスト保持用のKVキャッシュが別に必要です。
品質への影響は経験則として、Q8_0はほぼ体感差なし、Q4_K_Mが品質とメモリの定番の妥協点、Q3以下は劣化が目に見えやすい、という線が共有されています。劣化の出方はタスク依存で、一箇所の誤りが致命的なコード生成は敏感に、要約や言い換えは粘り強く動くことが多いです。また同じQ4でも、小さいモデルほど冗長性の余裕がないぶん劣化しやすい傾向があります。
実践的には、まずQ4_K_Mで動かして自分のタスクで品質が足りるかを確かめ、足りなければ量子化を緩める(Q5/Q6/Q8)かモデルサイズを上げる、という順番で試すのが無駄がありません。なお、重みの量子化とは別にKVキャッシュを量子化してメモリを節約する手法や、量子化した状態で学習するQLoRAのような関連技術もあります。
osFoundryでの扱い
osFoundryのインストールフローでは、インストール時に量子化を選択できます。再学習なしで後から量子化を切り替えられます。モデルのハンドルは同じまま、背後の重みだけが変わります。
よくある質問
Q4_K_Mとはどういう意味ですか?
約4ビットのK系混合量子化で、精度配分が中間(M)のものです。品質とメモリの妥協点として、ローカルLLMで最初に選ばれる定番のレベルです。
量子化すると日本語の性能は落ちますか?
言語固有というよりタスク依存です。Q4程度までは日本語でも体感差が小さいことが多い一方、Q3以下では言語を問わず崩れが見えやすくなります。手元の用途で試すのが確実です。
量子化とファイルサイズの関係は?
モデルファイルはほぼビット幅に比例して小さくなります。FP16比でQ8は約半分、Q4は約4分の1が目安で、ダウンロード時間とディスク消費も同様に減ります。
関連用語
関連機能