プルーニング(枝刈り)とは
Pruning / 枝刈り
出力への寄与が小さいニューロン・重み・層を削減し、モデルサイズと推論コストを下げるモデル圧縮手法
ひとことで言うと
モデルの中であまり使われていない部分を削り、軽く・速くする手法。
概要
プルーニングとは、学習済みニューラルネットワークの重み・ニューロン・層のうち、出力への寄与が小さい部分を削減し、モデルサイズと推論に必要な計算量を減らすモデル圧縮手法を指す。個々の重みを0に置き換える非構造化プルーニングと、ニューロンやアテンションヘッドといった単位ごとまとめて削減する構造化プルーニングに大別され、どの部分を削減対象とするかは重みの絶対値や勾配等を用いた重要度評価にもとづいて決定されることが多い。プルーニング後には、失われた精度を回復するために追加の微調整(ファインチューニング)をするのが一般的だ。
利点
欠点
- 削減しすぎると出力の精度が大きく低下し、追加の微調整でも回復しきれない場合がある
- 非構造化プルーニングは削減後の重みがスパースな行列になるため、一般的なハードウェア上では計算の高速化に直結しにくい