量子化は、ニューラル ネットワーク モデルのサイズとメモリ フットプリントを削減するために使用される手法です。モデルの量子化により、ディープ ニューラル ネットワーク モデルのメモリ フットプリントと計算要件を削減できます。重み量子化は、ニューラル ネットワークの重みとアクティベーションを高精度浮動小数点数から 16 ビットまたは 8 ビット整数などの低精度形式に変換する一般的な量子化手法です。モデルの重みを標準の浮動小数点データ型 (例: 32 ビット浮動小数点) から低精度のデータ型 (例: 8 ビット整数) に変換します。これにより、モデルのサイズとメモリ要件が削減され、(計算の複雑さが軽減されることにより) 推論の速度が向上します。性別)。モデルの量子化により、コンピューティング リソースとメモリ リソースが限られているエッジ デバイスに大規模なモデル (LLM など) を展開しやすくなります。
さまざまなデータ型の中でも浮動小数点数は、さまざまな値を高精度に表現できるため、ディープラーニングで主に使用されます。通常、浮動小数点数は次のように使用します。 n 値を保存するビット。これ n ビットはさらに 3 つの異なるコンポーネントに分割されます。
深層学習で最も一般的に使用されるデータ型には、float32 (FP32) と float16 (FP16) があります。
FP32 は「全精度」(4 バイト) と呼ばれることが多く、FP16 は「半精度」(2 バイト) と呼ばれます。 INT8 データ型の方が優れており、重みを格納するために 1 バイトを使用できます。これは、2⁸ = 256 個の異なる値を格納できる 8 ビット表現で構成されます。
【1】https://www.hopsworks.ai/dictionary/model-quantization
【2】https://medium.com/@sachinsoni600517/introduction-to-model-quantization-4effc7a17000