96GBのGPUで320Bを丸ごと動かすという記事を読みました。そこで「量子化」という言葉が出てきました。量子化とは、数値を粗くしてデータを小さくすることです。1.75ビットとか3ビットとか、数字を削って小さくする話らしいんです。何をどうやって小さくしてるのか、そこが分かりません。
写真の色数を思い浮かべてください。フルカラーの写真はデータが大きいけど、色を16色に減らすとファイルは小さくなる。代わりにグラデーションは荒くなります。量子化はこれと同じです。AIモデル(学習済みのプログラム)というものがあります。その中に数値がたくさん入っています。その数値を細かい精度から粗い段階に切り詰めます。たとえば小数点以下を細かく覚えていたのを「だいたいこの値」というふうに。すると必要なメモリが減ります。メモリとは、コンピュータがデータを置いておく場所です。小さいGPUでも大きなモデルが動かせます。記事の1.75ビットや3ビットは、数値1つを表すのに使うビット数の違いです。ビット数が少ないほど粗くて小さい。ただし粗くしすぎると品質が落ちるので、どこで切るかのせめぎ合いになります。ここが量子化の面白いところです。
写真の色数を減らすみたいに、数値を粗く覚えてデータを小さくするのが量子化なんですね。1.75ビットとか3ビットは数値1つを覚えるのに使うビット数で、少ないほど粗いけど小さいと。そこで気になったのが「1.75ビット」です。ビットって0か1の単位ですよね。1.75個ってどう数えるんですか。



