27B を 18B に刈り込む。層の重要度で選ぶと 4,400 倍壊れ、perplexity で探すと 1.5 倍で済んだ

本記事にはアフィリエイト広告(Amazon アソシエイト)が含まれます。

実測日: Fri Sep 18 2026 09:00:00 GMT+0900 (Japan Standard Time)

前回、1 bit の 27B を NPU で 7.18 tok/s まで持っていき、速度の半分が重みの読み出しで決まることを示した。 重みを減らすしかない。 本記事は、64 層から層を落として 18B 相当にする探索で、最初の方法が破綻し、方法を変えて通るまでを記録する。

見積りの訂正から始まった

窓の時間は重みの量 f(元に対する割合)にほぼ比例する。

窓(f) = 201.5 × f + 38.5 ms

ここで数え方を 1 つ訂正した。 語彙の head と埋め込みは、層を落としても縮まない。 元の言語の重みは 26.90B で、内訳は層 24.35B、埋め込み 1.27B、語彙 head 1.27B である。 head を床として数え直すと、呼び名の「18B」は 44 層ではなく 40 層(4 層の組を 6 つ落とす)になる。

落とす組 残る層 言語の重み f 窓 ms TG128 の見積り
3 52 22.33B 0.830 205.8 8.36
5 44 19.29B 0.717 183.0 9.40
6 40 17.76B 0.661 171.6 10.02
8 32 14.72B 0.547 148.8 11.56

見積りは受理長 0.72 を保てた場合の値で、刈った本体で draft を学び直す前提である。 44 層で進めるか 40 層まで行くかは、perplexity を見てから決めることにした。

重要度の順に落とすと破綻した

最初の方法は、各層を 1 枚だけ抜いたときの出力の変化(層の働き)を測り、働きの小さい順に組を落とすものだった。 測定そのものは健全だった。 2 種類の文章で順位の相関は Spearman 0.9148 と高く、層 0 の働きは 0.9144 で 2 位の層 63(0.2604)を大きく引き離していた。

それでも答えは壊れていた。

落とした 5 組 選び方 lit_ja selfgen 悪化の平均
1, 2, 3, 4, 7 働きの小さい順 33.2 → 26,959 2.94 → 23,524 4,402 倍
1, 5, 7, 9, 10 無作為(対照) 33.2 → 92.4 2.94 → 4.77 2.20 倍

無作為のほうが 2,000 倍良い。 対照を入れておいたから判った。 層ごとの点数は「他の 63 層が居るときに 1 枚抜いたらどうなるか」しか測っておらず、まとめて抜いたときの崩れを予言しない。 物差しを相対 L2 に変えても同じ 5 組が選ばれたので、物差しの問題でもなかった。

perplexity で貪欲に探す

方法を変えた。 候補の組を 1 つずつ落として perplexity を測り、最も悪化の小さい組を採用して次へ進む貪欲探索である。 探索は 16 窓で行い、採用した組は 64 窓で確認した。

残る層 落とした組 悪化(64 窓) 悪化(16 窓) TG128 の見積り
60 3 1.029 1.027 7.52
56 3, 5 1.093 1.091 7.92
52 3, 5, 10 1.189 1.188 8.36
48 3, 5, 9, 10 1.298 1.302 8.85
44 3, 5, 8, 9, 10 1.479 1.479 9.40
40 + 7 1.743 1.749 10.02
36 + 14 2.483 2.499 10.74
32 + 2 3.924 3.943 11.56

44 層で 1.479 倍となり、事前に決めた閾値 1.5 を通った。 探索(16 窓)と確認(64 窓)の差は最大 0.6% で、探索が窓に合わせ込んでいないことも確かめた。 文章の種類別では、lit_ja が 33.20 から 52.81(1.591 倍)、selfgen が 2.94 から 4.02(1.367 倍)である。 同じ窓で測り直すと、最初の方法の選択は 4,907 倍、無作為は 2.214 倍だった。

40 層より先は悪化が急に大きくなるので、組の選び直しか、落とす幅の検討が要る。 まず 44 層で回復学習へ進むことにした。

原因の説明も 1 回間違えた

最初の失敗を、私は「落とした組 1 から 4 が層 4 から 19 の 16 枚で連続していたから」と説明した。 これは誤りだった。 貪欲探索が選んだ 5 組のうち 8、9、10 も連続していて、層 32 から 43 の 12 枚が続けて消えている。 それで 1.479 倍に収まっている。

落とした区間 連続の長さ 悪化
層 4 から 19(前段)と 28 から 31 16 枚 4,907 倍
層 32 から 43(中後段)と 12 から 15、20 から 23 12 枚 1.479 倍

連続しているかどうかではなく、前段を失うことが致命的だった。 局所の指標で選んではいけない、という教訓は変わらない。 ただし、その理由づけまで実測で確かめないと、次の判断を誤る。

この記事で扱った機材

Crucial DDR5-5600 SO-DIMM 128 GB キット(64 GB × 2、CT2K64G56C46S5)

27B 級の重みを bf16 のまま読み込んだり、1 bit への変換の中間状態を持ったりするには、ミニ PC のメモリをこの容量まで積む必要がある。

KIOXIA NVMe SSD

変換の中間ファイル、context binary、評価の記録の置き場。モデル 1 つの作業で数百 GB を使うので、容量に余裕のあるものを選ぶ。