こんにちは、@vimmodeです。自然言語界隈ではBERTを始めとしたTransformerベースの手法の進化が目覚ましいですが、実運用されている話はあまり聞きません。 その理由としてモデルのサイズの大きさと推論速度の遅さに一定起因すると感じており、この記事はその解消になり得る量子化と呼ばれる手法の紹介とPyTorchで実装されたBERTモデルに量子化を適応する方法を紹介します。 量子化とは 量子化という単語は数学や物理など様々な領域で使われています。ここで述べる量子化は情報理論における量子化であり、主に連続値を離散値で表現することを考えます。 機械学習の枠組みで考えるとモデルのパラメータや学習時の勾配(場合によっては入力と出力データも含める)の数値表現を浮動小数点から整数に変更することを目的にします。 ディープラーニングではパラメータ等をfloat32で表現することが多いですが、もしこれ