0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【物語編】論理ゲートだけで言語モデルを作って Transformer を超えるまで 3 回散った話

0
Last updated at Posted at 2026-05-17

【物語編】論理ゲートだけで言語モデルを作って Transformer を超えるまで 3 回散った話

GPU を一切使わず、AND・OR・XOR などの 論理ゲートだけ で言語モデルを作って、
Transformer (PPL 4.86) を 0.13 上回る PPL 4.73 を出すまでに何があったかを、時系列で書きます。

3 回散ってます。記事中の数字は全部、実際に出たものです。

動機 — float って本当に必要?

AI 推論は GPU の並列 float 積和で動いてます。仮に AND/OR/XOR だけで言語モデルが作れたら:

  • CPU で動く(GPU 不要)
  • 消費電力が桁違いに減る
  • マイコンや組み込みでも巨大 LM が走る可能性
  • ゲートを見れば回路が読める(ブラックボックス感が薄れる)

「重み」「埋め込み」「アテンション」を、論理回路で書けないか。動機はそれだけです。

一度目: DLGN flat — 学習はできた

Petersen et al. (2022) の DLGN を素直に使いました。2 入力ブール関数は 16 種類しかないので、16 ゲートを softmax で混ぜて勾配を流す手法です。

4 段積んで TinyShakespeare 80KB で char-LM 学習:

PPL
DLGN flat 11.83
Transformer (比較) 4.86

論理回路で言語学習ができることは確認。ただし TF には届かず。この時点では「あ、何か工夫すればいけるな」と思っていました。まだ希望があった頃です。

二度目: LoopedDLGN — 構造的に詰む

DLGN flat の表現力不足を、深さ方向の反復で補えると考えました。Universal Transformer の発想 + バナッハの不動点定理で理論武装。

Hard PPL
v1 754.31
v2 (PE あり) 312.4
v3 (容量倍) 286.1

754。TF の 4.86 と比べて 155 倍。最初は「バグだろ」と疑ったんですが、何回確認しても再現。原因は構造的でした:

ε_total ≈ Σ_t ‖f_hard(x⁽ᵗ⁾) - f_soft(x⁽ᵗ⁾)‖

ハードコラプス後、各反復で生じる量子化誤差が深さ方向に蓄積する。容量を倍にしようが、Positional Encoding を入れようが、本質は変わらない。

反復系と Boolean 量子化は相性が最悪。 1 週間分の作業がほぼ無になって、ちょっと諦めかけました。

三度目: HBA — 入れる場所を変える

コーヒー飲みながら、ふと思いました。

「Boolean を深さ方向に入れるからダメなんだ。じゃあどこに入れる?」

Attention は抽象的に 2 ステップに分けられます:

  1. ルーティング: Q, K から「どこを見るか」を決める
  2. 値の集約: 注意重みで V を加重平均

(1) のルーターだけ Boolean、(2) は float のまま。これなら量子化誤差は深さ方向に伝播しない。

これが HBA (Hierarchical Boolean Attention) の発想です。

HBA v1 Best PPL
Ep12 5.40

TF 4.86 まで 0.54 差。LoopedDLGN の 754 と比べたら別世界。

ただし後半で過学習。安定化テクニックを 4 点入れた v2:

  • Best checkpoint 保存(best val PPL でリストア)
  • Early stopping (patience=5)
  • Hard threshold calibration(推論 τ を val で再校正)
  • 温度の warm_hold パターン
HBA v2 Soft PPL Hard PPL
結果 5.32 6.54

Hard PPL 6.54。LoopedDLGN 比 115 倍の改善。「あ、勝てるかもしれない」と思った瞬間です。

蒸留で逆転 — 4.73 vs 4.86

残り 0.46 差。これは中身を変えるより、学習方法を変えた方が早い。Hinton 流の知識蒸留で:

$$\mathcal{L} = \alpha \cdot \mathrm{CE}(p_S, y) + (1-\alpha) \cdot T^2 \cdot \mathrm{KL}(p_T^{(T)} | p_S^{(T)})$$

$\alpha=0.3$, $T=8$。

PPL
Teacher (TF) 4.86
Student (HBA distilled) 4.73
逆転幅 -0.13

論理回路ベースの生徒が、Transformer の教師を 0.13 上回りました。

これは born-again networks (Furlanello et al. 2018) として知られる現象。教師のソフトラベルが実質的なデータオーグメンテーションとして働き、生徒が教師を逆転することがあります。理屈は知っていたけど、自分の手で起きるのを見るのは別の体験 でした。

油断して挑んだ ChatHBA、跡形もなく崩壊

研究で TF 越えできたので調子に乗りました。「会話モデル作れるんじゃね?」

英語 Q&A を 5,377 件自前で作って、HBA を fine-tune。PPL は 6.46 と悪くない値。

REPL で:

Q: What is the capital of France?
A: It is Otewkia.

Q: How are you today?
A: ::: h.

Q: Tell me a joke.
A: The is the is the is the is the...

Otewkia って何の国だよ。

完全に崩壊しました。原因は 3 つほど:

  1. char-LM の context 64 文字では France → Paris のような長距離概念連鎖を学べない
  2. 5,377 件は容量に対してデータ規模が中途半端、汎化ではなく丸暗記
  3. 蒸留なしの fine-tune は HBA 単体の表現力に依存しすぎる

研究で TF 越えできたのは蒸留があったから。 fine-tune は別の戦いだと、この失敗で確認しました。

まとめ — 何が分かったか

主張 確認した数値
Boolean 回路で言語モデルが作れる DLGN flat PPL 11.83
反復 Boolean は誤差が爆発する LoopedDLGN PPL 754
Router だけ Boolean なら誤差は伝播しない HBA v2 Hard PPL 6.54
蒸留で Boolean モデルが TF を超える Student PPL 4.73 (TF 4.86)
char-LM 単体で会話は無理 ChatHBA で Otewkia 出力

応用としては、HBA は Speculative Decoding のドラフトモデル など、軽量・高速ルーティングが必要な特化用途で実用の見込みがあります。そのへんは次のフェーズで。

おわりに

実装の途中で何回散ったかは、他の誰かの研究の役に立つかも、と思って書きました。

PPL 754 で爆死した夜と、4.73 が出た朝の間には、3 週間あります。

  • 動画: https://www.youtube.com/watch?v=nzr18PUjy-Y
  • リポジトリ: GitHub
  • ドキュメント: GitHub Pages
  • 参考: Petersen et al. (2022) "Deep Differentiable Logic Gate Networks"
  • 参考: Hinton et al. (2015) "Distilling the Knowledge in a Neural Network"
  • 参考: Furlanello et al. (2018) "Born Again Neural Networks"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?