モデルの数値を粗くして、容量と計算量を減らす手法です。
手元のPCで動かせるかどうかを分ける技術でもあります。仕組みと、どこまで落としてよいかを見ます。
何を削っているか
モデルの中身は、膨大な数の数値です。
この一つひとつが、もとは小数として細かく持たれています。16桁分の情報で1つの数を表す形が標準でした。
量子化は、この精度を落とします。16から8へ、さらに4へ。表せる値の刻みが粗くなるかわりに、1つあたりの容量が半分、4分の1になる。
写真の色数を減らす操作に近い。見分けがつく範囲なら、容量だけ落とせます。
何が変わるか
| 精度 | 70億規模のモデルの目安 |
|---|---|
| 16ビット | およそ14GB |
| 8ビット | およそ7GB |
| 4ビット | およそ4GB |
この差が効くのは、動くか動かないかの境目だからです。手元のPCに載るメモリは限られている。16ビットのままでは無理でも、4ビットなら収まる、という場面がよくあります。
速度も上がります。扱う情報量が減るぶん、計算そのものが軽くなる。読み込みにかかる時間も短くなるので、起動の待ち時間が変わってきます。
精度は落ちるのか
落ちます。ただし落ち方が一様ではありません。
研究で分かったのは、一部の数値だけが結果を大きく左右するということでした。その少数を高い精度のまま残し、残りを粗くする。この折衷で、8ビットまでならほぼ劣化なく動かせるようになった。
4ビットまで落とすと、劣化が見える場面が出てきます。それでも、動かないより動くほうがよい用途では十分に使えます。
どの作業に効くかは一様ではない。翻訳や要約は耐えやすく、細かい推論や計算は崩れやすい傾向があります。
手元で動かす意味
性能だけを見れば、提供元のサービスを使うほうが上です。
それでも手元で動かす理由は、データを外に出さずに済むこと。規約や社内規程の面で扱いに困る資料も、手元で完結するなら話が変わります。
従量課金がないのも大きい。試行錯誤を繰り返す作業では、回数を気にせず回せます。
接続がなくても動く点も、環境によっては効きます。
名前の読み方
配布されているモデルのファイル名には、記号が並んでいます。
末尾にある数字が、おおむね精度を表します。4と書かれていれば4ビット、8なら8ビット。同じモデルでも複数の版が並んでいるのは、この違いです。
迷ったら、手元のメモリに収まる中でいちばん精度の高いものを選べば外しません。容量がそのまま目安になります。余裕を1〜2GB残しておくと、動作が安定します。
向かない用途
最新の大きなモデルと同じ結果は出ません。
手元で動く規模には限りがあります。難しい推論や、長い文脈を保った処理を求めると、差がはっきり出る。
用途を絞るのが現実的です。決まった形式への変換、分類、下訳。こうした作業なら、小さいモデルでも実用になります。判断の要らない下ごしらえほど、任せやすい。
必要な環境
専用の機材がなくても始められます。
近年のノートPCなら、メモリが16GB程度あれば小規模なモデルは動く。統合メモリを積んだ機種は、そのぶん条件が緩くなります。
導入も手順化が進みました。モデルを選んで読み込ませるだけのソフトが複数あり、コマンドを打たずに試せます。
ただし動く規模と、実用になる速度は別の話。文字が1秒に数個しか出ないなら、その用途では使えません。試すときは速度も測っておきたい。
試すときの順番
いきなり業務に組み込まないほうがよい。
まず同じ入力を、提供元のサービスと手元のモデルの両方に投げます。出力を並べて、自分の用途で耐えるかを見る。
耐えないなら、精度を1段上げてみる。4ビットで崩れたものが8ビットで直ることはよくあります。それでも足りなければ、その作業は外部のサービスに任せる判断でよい。
全部を手元に寄せる必要はありません。出したくないデータを含む工程だけ、手元に置く。この分け方がいちばん現実的です。
手元で動かす選択肢があると知っているだけでも、使える場面は増えます。規約を理由に諦めていた作業が、そのまま通ることがあるからです。
出典
精度を落としても動く理由については下記に基づきます。

