寓話
倉庫は半枡分の貨物を入れられる量斗に替えた
銀匠の工房は大量の銀粒を小さな箱に詰めなければならず、以前は一粒ずつ大きな仕切りに個別に収めていた。銀匠は当初、より仕切りを節約できる計量法で仕事をしていた。顔なじみのやり方で、規模が小さいうちはめったに間違えなかった。銀匠は、本当の難題は数字を小さく書くことではなく、限られたVRAMの中でモデルがなお機能し続ける数値情報を保つことだと気づいた。
後に匣が足りなくなり、運搬も遅くなった。匣が小さいほど、精度と容量のトレードオフは鋭くなる。乱暴に統合すれば空間は節約できるが、重要な重みの誤差が蓄積して明らかな品質損失になりうる。
最初の修補は急だった:学徒は銀粒を適当に統合しようとし、計量誤差が大きすぎた。すべての銀粒を同じ短い記号に圧縮すれば確かに空間は節約できるが、重要な数値の誤差が制御不能になった。しかし新しい問題が続いて現れ、皆は最も見えやすい場所だけを見て、遠くの小さな偏差が積み重なった。
師匠はグループ範囲ごとに重みを圧縮し、必要なスケーリング情報を保持し、検証用の分銅で量子化前後の誤差を比較した。bitsandbytes はこの低ビット読み込みと訓練の流れを実現可能にする。
老師匠はよくある重量を短い記号に置き換え、重要な大きな数には十分な目盛りを残し、換算用の検証分銅も用意した。この手間は面倒で、最初は工期も遅らせた。しかし数ラウンド後、手戻りが減り、親方も気分で規則を変えなくなった。倉庫は VRAM 空間を得たが、重要な精度を無限に圧縮できる余裕とは見なさなかった。
ここで節約したVRAMは、より大きなモデルやより多くの同時実行に充てられるが、量子化のたびにタスク品質とスループットの実測で価値があることを証明する必要がある。
銀粒は収まるようになり、帳尻もほぼ合った。それ以来、省スペースはより厳密な記法で実現できるが、どこを省きすぎてはいけないかを知る必要がある。