モデル圧縮手法の比較:量子化・蒸留・プルーニング
項目 | 量子化(Quantization) | 知識蒸留(Distillation) | プルーニング(Pruning) |
---|---|---|---|
目的 | モデルサイズを小さくし、推論速度を向上させる | 大きなモデルの知識を小さなモデルに移す | 重要でない重みやノードを削除する |
手法 | 重みや活性化を低精度(例: FP32→INT8)に変換 | 教師モデルの出力を用いて生徒モデルを訓練 | 重要度の低いパラメータや接続を取り除く |
精度への影響 | 軽微(適切にキャリブレーションすれば無視できる) | 生徒モデルの訓練次第で高精度を維持可能 | やりすぎると精度が低下する場合がある |
推論速度 | 対応ハードウェアで大幅に高速化 | 生徒モデルの構造に依存 | スパース対応ハードウェアで高速化可能 |
モデルサイズ | ビット幅削減により小さくなる | パラメータ数が少ないため小さい | 不要な部分を削除して小さくする |
適用例 | エッジデバイス、モバイル、低遅延用途 | 高性能を維持した軽量モデルのデプロイ | 再学習なしでモデルをスリム化 |
再学習の必要性 | 通常不要(事後適用可能) | 必要(生徒モデルの訓練が必要) | 再学習または微調整が必要な場合あり |
代表例 | GPTのINT4量子化モデル | DistilBERT、TinyGPTなど | Pruned ResNet、スパースなLLMなど |
まとめ:
量子化:数値精度を下げて軽量化・高速化
蒸留:小さなモデルに大きなモデルの能力を継承
プルーニング:重要でない部分を切り捨てて効率化
コメント