考察
Boolean 回路だけで言語学習が できることは証明された。ただし Transformer の 4.86 にはまだ遠い。設計の工夫が必要なフェーズに入る。
データセットは全実験で TinyShakespeare 80KB / char-level / vocab=61 に統一。計算機は RTX 4060 8GB。char-LM 単体のシンプル評価なので、Perplexity (PPL) のみで横並び比較。
標準的な decoder-only Transformer。比較対象としての最終目標。
| 項目 | 値 |
|---|---|
| Hidden dim | 64 |
| Layers | 2 |
| Heads | 4 |
| Context | 64 |
| PPL | 4.86 |
src/dlgn_charlm.py
16 種類の論理ゲートを softmax で混合した DLGN 層を 4 段積んだ char-LM。
| 項目 | 値 |
|---|---|
| Layers | 4 |
| Gates per layer | 256 |
| Soft PPL | 11.83 |
| Hard PPL | 15.16 |
Boolean 回路だけで言語学習が できることは証明された。ただし Transformer の 4.86 にはまだ遠い。設計の工夫が必要なフェーズに入る。
src/looped_dlgn_charlm.py
同じ DLGN ブロックを入力依存で T 回繰り返し、固定点収束を狙う設計。バナッハの不動点定理に立脚。
| 版 | Pos Enc | Hidden | Max Iter | Soft PPL | Hard PPL |
|---|---|---|---|---|---|
| v1 | なし | 128 | 8 | 11.05 | 754.31 |
| v2 | あり | 128 | 8 | 18.7 | 312.4 |
| v3 | あり | 256 | 12 | 17.9 | 286.1 |
ハードコラプス時に PPL が爆発的に暴騰。反復ごとに量子化誤差が蓄積するという構造的問題と判明。容量を倍に増やしても本質は解決せず、設計を根本から見直す必要があることが明白に。
src/hba_charlm.py
Attention のルーターのみ Boolean、値集約は float のまま。bilinear router 構造で実装。
| 項目 | 値 |
|---|---|
| Hidden dim / Layers / Heads | 64 / 2 / 4 |
| Best PPL (Ep12) | 5.40 |
| Final PPL (Ep60) | 9.75 |
TF 4.86 まで 0.54 差まで肉薄。これは大きな飛躍。ただし学習後半で過学習し、最終 PPL は劣化。安定化が必要。
v1 の過学習問題に対処:
warm_hold パターン (最初は柔らかく、徐々に hard へ)| 項目 | 値 |
|---|---|
| Soft PPL | 5.32 |
| Hard PPL | 6.54 |
| Train time | 4.7 min |
ハードコラプス後も健全な PPL を保つ。LoopedDLGN の Hard PPL 754 と比べて 115 倍の改善。Boolean Router 設計の構造的優位が数値で実証された。
src/hba_distill_charlm.py
教師 (Transformer baseline) → 生徒 (HBA v2 構造) に知識蒸留。CE × 0.3 + KL × 0.7, $T=8$。
| Model | Soft PPL |
|---|---|
| Teacher (Transformer) | 4.86 |
| Student (HBA distilled) | 4.73 |
| Hard PPL | 6.31 |
| 逆転幅 | -0.13 |
Born-again network の現象がここでも観測された形。教師のソフトラベルが実質的なデータオーグメンテーションとして機能し、生徒が教師を逆転。
初期実装で温度 $\tau$ の整合性が取れておらず、訓練 eval (tau=1.0) と最終比較 (final_tau=0.1) で PPL が 4.71 vs 8.72 と乖離する事故が発生。
修正後:
final_tau=0.1 のような恣意値は廃止これで再現性のある PPL 4.73 が出るように。
| 実験 | 所要 |
|---|---|
| Transformer baseline | 約 5 分 |
| DLGN flat | 約 5 分 |
| LoopedDLGN v1/v2/v3 | 各 7-10 分 |
| HBA v1/v2 | 各 4-5 分 |
| HBA Distillation | 約 10 分 |
| ChatHBA (5377 QA × 50 ep) | 約 30 分 |