// EXPERIMENT · 7 RUNS · 4 ARCHITECTURES

実験概要

データセットは全実験で TinyShakespeare 80KB / char-level / vocab=61 に統一。計算機は RTX 4060 8GB。char-LM 単体のシンプル評価なので、Perplexity (PPL) のみで横並び比較。

Baseline: Transformer

標準的な decoder-only Transformer。比較対象としての最終目標。

項目
Hidden dim64
Layers2
Heads4
Context64
PPL4.86

DLGN flat — 純 Boolean で言語学習

src/dlgn_charlm.py

16 種類の論理ゲートを softmax で混合した DLGN 層を 4 段積んだ char-LM。

項目
Layers4
Gates per layer256
Soft PPL11.83
Hard PPL15.16

考察

Boolean 回路だけで言語学習が できることは証明された。ただし Transformer の 4.86 にはまだ遠い。設計の工夫が必要なフェーズに入る。

LoopedDLGN — Universal Transformer × Boolean (撃沈)

src/looped_dlgn_charlm.py

同じ DLGN ブロックを入力依存で T 回繰り返し、固定点収束を狙う設計。バナッハの不動点定理に立脚。

Pos EncHiddenMax IterSoft PPLHard PPL
v1なし128811.05754.31
v2あり128818.7312.4
v3あり2561217.9286.1

原因

ハードコラプス時に PPL が爆発的に暴騰。反復ごとに量子化誤差が蓄積するという構造的問題と判明。容量を倍に増やしても本質は解決せず、設計を根本から見直す必要があることが明白に。

HBA v1 — Boolean Router + float Value

src/hba_charlm.py

Attention のルーターのみ Boolean、値集約は float のまま。bilinear router 構造で実装。

項目
Hidden dim / Layers / Heads64 / 2 / 4
Best PPL (Ep12)5.40
Final PPL (Ep60)9.75

考察

TF 4.86 まで 0.54 差まで肉薄。これは大きな飛躍。ただし学習後半で過学習し、最終 PPL は劣化。安定化が必要。

HBA v2 — 安定化

v1 の過学習問題に対処:

項目
Soft PPL5.32
Hard PPL6.54
Train time4.7 min

結果

ハードコラプス後も健全な PPL を保つ。LoopedDLGN の Hard PPL 754 と比べて 115 倍の改善。Boolean Router 設計の構造的優位が数値で実証された。

HBA Distilled — Transformer を逆転

src/hba_distill_charlm.py

教師 (Transformer baseline) → 生徒 (HBA v2 構造) に知識蒸留。CE × 0.3 + KL × 0.7, $T=8$。

ModelSoft PPL
Teacher (Transformer)4.86
Student (HBA distilled)4.73
Hard PPL6.31
逆転幅-0.13

論理回路が Transformer を超えた瞬間

Born-again network の現象がここでも観測された形。教師のソフトラベルが実質的なデータオーグメンテーションとして機能し、生徒が教師を逆転。

実装上の注意 — 温度整合性のバグ

初期実装で温度 $\tau$ の整合性が取れておらず、訓練 eval (tau=1.0) と最終比較 (final_tau=0.1) で PPL が 4.71 vs 8.72 と乖離する事故が発生。

修正後:

これで再現性のある 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 分

主要な発見

  1. 論理ゲートだけで言語学習はできる (DLGN flat PPL 11.83)
  2. 反復 Boolean は誤差が爆発する (LoopedDLGN PPL 754)
  3. Router だけ Boolean にすれば誤差は伝播しない (HBA Hard PPL 6.54)
  4. 蒸留で Boolean モデルが Transformer を超える (PPL 4.73 vs 4.86)
  5. char-LM 容量では会話タスクは無理 (ChatHBA 崩壊 — 詳細)