蒸留・量子化とは

蒸留と量子化は、どちらも大きなモデルを小さく軽くして、速く安く動かすための手法です。目的は同じですが、やり方が違います。

蒸留(Distillation)は、大きなモデルを「先生」、小さなモデルを「生徒」に見立てる方法です。先生の出力を手本にして生徒を学習させ、性能をなるべく保ったまま小さなモデルを作ります。小さなモデルを一から学習させるより、良い振る舞いを身につけやすいとされています。

量子化(Quantization)は、モデルの重みを表す数値の細かさを落とす方法です。たとえば数値を表すのに使う桁数を減らすと、モデルの容量と必要なメモリが小さくなり、計算も速くなります。学習をやり直さずに適用できる点が特徴です。

実務では、手元のパソコンや社内サーバーでモデルを動かしたいとき、応答を速くしたいとき、利用料金を抑えたいときに関わります。ただし、どちらも軽くした分だけ精度が下がることがあります。自社の業務の問題で試し、許容できる品質かを確かめてから使います。

具体例

社内サーバーでモデルを動かす

機密文書を外部に出さずに要約したいため、オープンウェイトモデルを社内サーバーで動かすことにしました。そのままでは必要なメモリが多すぎたため、量子化した版を使いました。導入前に、実際の社内文書30件で要約の質を元の版と比べ、業務上の問題がないことを確かめています。

大量の分類を安く処理する

毎日数万件届く問い合わせを、担当部署ごとに振り分ける処理です。大きなモデルで分類した結果を手本に小さなモデルを学習させる、蒸留の考え方を使いました。分類のような決まった作業なら、小さなモデルでも十分な精度が出やすく、処理の速さと費用の両方で有利になります。