Re Reference AI

技術

プルーニング(枝刈り)とは

Pruning / 枝刈り

出力への寄与が小さいニューロン・重み・層を削減し、モデルサイズと推論コストを下げるモデル圧縮手法

モデル圧縮軽量化

ひとことで言うと

モデルの中であまり使われていない部分を削り、軽く・速くする手法。

概要

プルーニングとは、学習済みニューラルネットワークの重み・ニューロン・層のうち、出力への寄与が小さい部分を削減し、モデルサイズと推論に必要な計算量を減らすモデル圧縮手法を指す。個々の重みを0に置き換える非構造化プルーニングと、ニューロンやアテンションヘッドといった単位ごとまとめて削減する構造化プルーニングに大別され、どの部分を削減対象とするかは重みの絶対値や勾配等を用いた重要度評価にもとづいて決定されることが多い。プルーニング後には、失われた精度を回復するために追加の微調整(ファインチューニング)をするのが一般的だ。

利点

  • モデルサイズと推論に必要な計算量を削減でき、メモリ使用量やレイテンシの改善につながる
  • 重要度の低い部分から優先的に削減するため、削減幅を調整しながら精度低下を抑えやすい
  • 量子化知識蒸留といった他のモデル圧縮手法と組み合わせて使うことができる

欠点

  • 削減しすぎると出力の精度が大きく低下し、追加の微調整でも回復しきれない場合がある
  • 非構造化プルーニングは削減後の重みがスパースな行列になるため、一般的なハードウェア上では計算の高速化に直結しにくい

比較

  • 量子化量子化が重みの数値表現のビット数を減らすのに対し、プルーニングは重みやニューロン自体を削減する点で異なるモデル圧縮手法
  • 知識蒸留知識蒸留が大きなモデルの出力を模倣する小さなモデルを新たに学習させるのに対し、プルーニングは既存モデルの一部を直接削減する
  • スパース化プルーニングによって重みの多くが0になった状態は、モデルをスパース化した結果と捉えることができる

関連用語

モデル圧縮量子化知識蒸留スパース化重要度評価