本記事にはアフィリエイト広告(Amazon アソシエイト)が含まれます。
実測日: Fri Sep 18 2026 09:00:00 GMT+0900 (Japan Standard Time)
層を落として 44 層にした模型は、bf16 のままでは NPU に載らない。 1 bit に戻す必要がある。 本記事は、刈った模型を 1 bit にする 4 つの方法を同じ物差しで比べ、何が効いて何が効かないかを確かめた記録である。
貼る先の対応を取る
まず、公開されている 1 bit モデルの重みを、刈った模型のどの Linear に対応させるかを決めた。 head の並べ替えを探索すると、attention の V と z の投影も候補の並べ替えで 80% を超える一致になり、貼る側に入った。 覆った範囲は 77% から 93.7% に広がった(線形 attention の層で 91.7%、通常の attention の層で 100%)。 bf16 のまま残るのは出力投影だけである。 量子化する 401 本は、以下のどの方法でも同じ集合にした。
素の丸めと、貼り付けの比較
| 構成 | 64 層 lit_ja | 44 層 lit_ja | 64 層 bf16 比 | 44 層 bf16 比 |
|---|---|---|---|---|
| bf16 | 33.20 | 52.81 | 1.000 | 1.000 |
| A: 元の重みを自前で符号に丸める | 249,686 | 277,033 | 12,886 | 6,874 |
| B: 公開 1 bit モデルの重みを貼る | 318.21 | 572.11 | 6.089 | 8.198 |
B は A より、64 層で 2,116 倍、44 層で 839 倍良い。 学習済みの 1 bit 重み(QAT の成果)の値打ちは桁で大きい。 また、64 層での B が 6.089 倍なのに対し 44 層では 8.198 倍で、刈り込みが上乗せする悪化は 1.35 倍に過ぎない。 壊しているのは量子化のほうである。
倍率を付け直すと 200 倍悪くなる
符号は B のまま固定し、群ごとの倍率だけを 3 通りにして測った。
| 倍率 | 64 層 bf16 比 | 44 層 bf16 比 |
|---|---|---|
| S0: 公開モデルが持っている値 | 6.089 | 8.198 |
S1: 最小二乗 mean(W × s) |
2,788.8 | 1,695.9 |
| S2: `mean( | W | )` |
付け直すと 175 倍から 207 倍悪化する。 予想は逆だった。 符号を固定したときに重みとの距離を最小にする倍率は S1 で、算術としては正しい。 正しいが、効かない。 重み空間で最良の倍率は、機能の空間では 200 倍悪い。 公開モデルの倍率は元の重みの平均絶対値ではなく、学習が収束した先の値である。 その散らばりこそが学習の中身で、44 層を通ると桁で効く。 閉じた式で安く取れる分は無い、と判った。
目標を模型の出力に変える
次に、符号を凍結し、群ごとの倍率に掛ける倍数(1 億 3,100 万個と 1,000 万個)だけを学習した。 最初は 1 本の Linear の出力を目標にしたが、局所の誤差は模型の質を予言しなかった。 そこで目標を模型の次 token の損失に変え、300 step、6 分で回した。
| 目標 | 44 層 bf16 比 |
|---|---|
| 重みとの距離(素の丸め) | 6,874 |
| 1 本の Linear の出力 | 379.3 |
| 貼っただけ(公開モデルの学習結果) | 8.198 |
| 模型の出力(倍数だけ 300 step) | 1.605 |
8.198 倍が 1.605 倍まで、5.11 倍縮んだ。 模型に近い目標ほど良くなる、という並びが桁を追って最後まで通った。 出発点の値は貼り付けの実測と小数 3 桁まで一致しており、貼り方が正しいことも同時に確かめられた。
この数字の割り引き方
- 文章への適応が混ざっている。学習と評価で同じ 2 種類の文章を使った(窓は別)。selfgen は 3.249 で bf16 の 4.022 より良くなっているが、これは量子化の回復ではなく適応である。
- 正直な数字は lit_ja の 2.40 倍である。64 層の bf16 から見ると、刈り込みの 1.479 倍を掛けて 3.55 倍になる。
- これは下限である。符号は凍結、出力投影は bf16 のまま、学習は 300 step しかしていない。
それでも設計は決まった。 符号も倍率も学習済みの値から始め、最小二乗から始めてはいけない。 残りは学習でしか動かず、目標は模型の出力にする。 本番の学習は、この設計で組む。
この記事で扱った機材
Crucial DDR5-5600 SO-DIMM 128 GB キット(64 GB × 2、CT2K64G56C46S5)
27B 級の重みを bf16 のまま読み込んだり、1 bit への変換の中間状態を持ったりするには、ミニ PC のメモリをこの容量まで積む必要がある。