本記事にはアフィリエイト広告(Amazon アソシエイト)が含まれます。
実測日: Fri Sep 18 2026 09:00:00 GMT+0900 (Japan Standard Time)
1 bit の重みを自前で作る方法を探しているとき、公開モデルの中身を読んで決定的なことが判った。 Bonsai 2 の符号は、元の重みを回転してから丸めたものと 99.97% 一致する。 本記事は、その確認の手順と、手法の違いが意味することを記録する。
metadata に仕様は全部あった
Bonsai 2 の重みの metadata には、回転の仕様が揃っていた。 対角の符号ベクトル、正規化した Hadamard 行列、その適用順序である。 仕様どおりに回転を再現し、Hadamard 行列を 2 回掛けると単位行列に戻ることを誤差 0 で確かめた。
重みの詰め方についても読み取った。 群の下位 1/3 を 0 にし、残りを符号と群の倍率で表す。 非零が 67.2%、零が 32.8% である。
元の重みを回して突き合わせる
元モデル Qwen3.8 の重みを、3 通りの方法で回してから符号を取り、Bonsai 2 の非零の符号と比べた。
| 回転の取り方 | 非零での符号一致 |
|---|---|
| 対角を先に掛け、Hadamard を後に掛ける | 99.97% |
| Hadamard だけ(対角なし) | 48.56% |
| 回転なし | 50.08% |
対角と Hadamard の両方を正しい順で掛けたときだけ、ほぼ完全に一致する。 回転なしの 50.08% は偶然と同じ水準で、符号は元のままでは何も説明できない。
Bonsai 1 と Bonsai 2 は手法が違う
同じ系列の 1 bit モデルでも、符号が元の浮動小数の重みと違う割合は大きく異なる。
| モデル | 符号が元と違う割合 |
|---|---|
| Bonsai 1(1 bit、回転なし) | 10.93%(小さい重みに集中) |
| Bonsai 2(3 値、回転あり) | 0.03%(非零において) |
Bonsai 1 は、学習で符号を動かして質を得ている。 Bonsai 2 は、符号をほとんど動かさず、回転で分布を均し、下位 1/3 を 0 にして質を得ている。 前回の実験で「符号も倍率も学習済みの値から始める」と決めたが、その前提は Bonsai 1 の世代の話だった。
だから符号の移植は要らない
非零 67.2% -> sign((W · d) @ H) と 99.97% 同じ -> 移植しても情報が無い零 32.8% -> 符号を持たない -> 移植するものが無い必要なのは回転の実装だけで、仕様は metadata に完全にある。 元モデルが Qwen3.6 でも Qwen3.8 でも、回転してから丸めるだけで Bonsai 2 相当の表現を自前で作れる。 残るのは、どこを 0 にするか(群の下位 1/3 という規則)と、倍率の決め方である。
Hadamard 回転を実装する価値は、重みを移植するためではない。 回転そのものが質を作っている。 この読み替えが、次の方式(Terrarium)の出発点になった。
この記事で扱った機材
Crucial DDR5-5600 SO-DIMM 128 GB キット(64 GB × 2、CT2K64G56C46S5)
27B 級の重みを bf16 のまま読み込んだり、1 bit への変換の中間状態を持ったりするには、ミニ PC のメモリをこの容量まで積む必要がある。