量子化とは
量子化(Quantization)は、ニューラルネットワークのパラメータや演算を低精度の数値表現に変換する技術です。通常32ビット浮動小数点数(FP32)で表現される重みや活性化値を、16ビット(FP16)、8ビット整数(INT8)、さらには4ビットや2ビットに削減します。これにより、モデルのメモリ使用量と計算コストを大幅に削減できます。
量子化の種類
量子化には主に2つのアプローチがあります。学習後量子化(Post-Training Quantization、PTQ)は、訓練済みモデルのパラメータを直接量子化する手法で、追加の学習なしに適用できますが精度低下が生じる可能性があります。量子化認識訓練(Quantization-Aware Training、QAT)は、量子化を考慮しながらモデルを訓練する手法で、より高い精度を維持できますが、訓練コストが追加で発生します。
量子化の技術的詳細
量子化では、連続的な浮動小数点値を離散的な整数値にマッピングします。対称量子化と非対称量子化があり、後者はゼロポイントのオフセットを使用してより広い値の範囲を表現できます。チャネルごとの量子化(Per-channel Quantization)は、各チャネルの値の範囲に応じた量子化パラメータを使用し、精度の低下を抑えます。
大規模言語モデルにおける量子化
GPTやLLaMAなどの大規模言語モデルでは、GPTQ、AWQ(Activation-aware Weight Quantization)、GGUF形式など、効率的な量子化手法が開発されています。4ビット量子化により、数百億パラメータのモデルを消費者向けのGPUでも動作させることが可能になり、LLMの民主化に大きく貢献しています。