1行定義
モデル圧縮とは、学習済みモデルの精度をなるべく保ちながら、パラメータ数やデータ量、計算量を減らして、モデルを小さく軽くする技術のことです。
試験範囲としての全体像はシラバス項目『モデルの軽量化』の要点まとめで整理しています。
くわしく
モデル圧縮は、ディープラーニングのモデルを、性能をなるべく落とさずに小さく、軽くするための技術の総称です。モデルの軽量化とも呼ばれます。
なぜ必要か
精度の高いモデルほど、パラメータ数も計算量も大きくなりがちです。そのままでは、スマートフォンや組み込み機器などのエッジ端末のメモリに収まらず、推論にも時間がかかります。クラウドで動かす場合でも、推論は利用のたびに発生します。1回あたりの計算が重いと、費用と電力がかさみます。
代表的な手法
- 量子化:重みなどを少ないビット数で表します。パラメータの数はそのままで、1つあたりのデータ量を減らします。
- プルーニング:出力への影響が小さい重みや結合を取り除き、パラメータの数を減らします。
- 蒸留:大きな教師モデルの出力を手本に、小さな生徒モデルを新しく学習させます。
このほか、大きな重みの行列を小さな行列の積で近似する方法(低ランク近似)もあります。MobileNetのように、はじめから計算量の少ない構造を設計する方法も、軽量化の手段としてよく挙げられます。
組み合わせの効果
これらの手法は組み合わせられます。2015年に発表されたDeep Compressionは、プルーニング、量子化、ハフマン符号化を順に組み合わせました。AlexNetのデータ量を240MBから6.9MBへ、約35分の1にしても、精度は落ちませんでした。
言葉の由来と注意点
「モデル圧縮」という言葉は、2006年にBuciluǎらが論文の題名に使いました。多数のモデルを組み合わせた大きなアンサンブルを、小さく速いモデルに置き換える研究です。この考え方は、のちの蒸留につながりました。
圧縮すると、精度が下がることがあります。どこまで小さくするかは、用途で許される精度と、端末や費用の制約とのバランスで決めます。
覚え方
「量子化は桁を、プルーニングは数を減らし、蒸留は小さく作り直す」と覚えます。
G検定での出題
出題のされ方
量子化・プルーニング・蒸留という代表的な手法の仕組みの違い、エッジAIで必要になる理由、精度とのトレードオフ、複数の手法を組み合わせられる点が問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
モデル圧縮の手法は、どれか1つを選んで使うものであり、プルーニングと量子化を同じモデルに組み合わせることはできない。
答えを見る
答え × 誤り
組み合わせて使えます。たとえばDeep Compressionは、プルーニング、量子化、ハフマン符号化を順に組み合わせ、精度を落とさずにデータ量を大きく減らしました。
-
モデル圧縮は、エッジ端末に載せるためだけでなく、クラウドで多数の利用者に推論結果を返すときの計算コストや電力を減らす目的でも使われる。
答えを見る
答え ◯ 正しい
推論は利用のたびに発生します。そのため、1回あたりの計算を減らす効果は、利用者が多いほど大きくなります。
-
モデル圧縮で精度がどの程度変わるかは、手法や圧縮の度合いによって異なるため、圧縮後のモデルも改めて評価する必要がある。
答えを見る
答え ◯ 正しい
ほとんど変わらない場合もあれば、大きく下がる場合もあります。用途で許される精度を満たすかを、圧縮後のモデルで確かめます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目34 モデルの軽量化)
- Cristian Buciluǎ, Rich Caruana, Alexandru Niculescu-Mizil, Model compression, KDD 2006, 535–541
- Song Han, Huizi Mao, William J. Dally, Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLR 2016
- Geoffrey Hinton, Oriol Vinyals, Jeff Dean, Distilling the Knowledge in a Neural Network (2015)