AI Room:本当に計算しているニューラルネットワークの中へ
新しいプロジェクト AI Room をオープンソース化しました。ニューラルネットワークを 3D 空間に配置し、中に入ってノード単位で観察できるものです。オンラインデモ:ai-room-phi.vercel.app。
よくある「ニューラルネットワーク解説アニメーション」との本質的な違いが一つあります。これはアニメーションではなく、本物の計算です。ページ読み込み時に、各ネットワークは固定シードでブラウザ内で実際に学習されます。画面に表示される値——活性化値、アテンション重み、softmax 確率——はすべて順伝播の本当の結果です。どのノードでも開いて、自分で検算できます。
なぜ作ったのか
ニューラルネットワークを解説する図や動画はたくさん見てきましたが、大半は「イメージ図」の域を出ません。矢印、ボックス、グラデーション、作り物の数字、演出された流れ。私はずっと「検算できる」バージョンが欲しかったのです——各ニューロンの入力、重み、バイアス、活性化関数が目の前に並び、Σ で足し合わせた数が画面で光っている数とぴったり一致する。嘘だと思うなら、電卓を叩けばいい。
それが AI Room になりました。純粋なフロントエンドで、バックエンドなし、実行時のネットワーク通信もなし。学習も推論もすべてあなたのブラウザの中で行われます。
中身
MLP(多層パーセプトロン):3 つのガウス分布クラスタを分類します。データフローの粒子が重み付きの接続に沿って層ごとに流れ、アニメーションの順序がそのまま計算の順序です。
CNN(畳み込みネットワーク):パターン(縦線/横線/対角線/リング)を分類します。受容野のウィンドウは計算順序どおりに入力上をスライドします。カーネルは 2 モード——手作りの Sobel 風エッジ検出カーネル(解釈可能。全結合ヘッドのみ学習)と、ランダムノイズから手書きの逆伝播でエンドツーエンドに学習されるカーネル。さらにドローモードでは、入力グリッドに自分でパターンを描き、ネットワーク全体が一筆ごとにリアルタイムで分類する様子を見られます。S/M/L の 3 スケールがあり、切り替えるとその場で再学習されます。
ミニ Transformer(文字レベル):構造的に忠実な Transformer ブロックです——トークナイザ → 埋め込み → 正弦波位置エンコーディング → マルチヘッド因果アテンション(2 ヘッド、出力射影付き)→ 残差 + LayerNorm → フィードフォワード → 残差 + LayerNorm → 出力 softmax。順伝播も逆伝播も(LayerNorm と残差の勾配を含めて)手書き実装で、読み込み時に小さなコーパスで約 2.5 秒学習します。2 つのヘッドの 8×8 アテンション行列が行ごとに点灯し、Add & Norm のセルを開くと μ、σ、γ、β までの完全な計算式が見えます。「連続生成」を押すと本物の自己回帰デコードが始まります:サンプリングされた文字がコンテキストに追加され、ウィンドウがスライドし、パイプライン全体が再実行され、テキストが 1 文字ずつ流れ出てきます——実際の LLM の書き方と同じです。温度スライダー(0.2–1.4)でサンプリング分布をリアルタイムに制御できます。
言語識別(AI アプリケーション):何でも入力してみてください。テキストは 8 つの解釈可能な統計量(ラテン文字の割合、CJK の割合、かなの割合など)に変換され、学習済みの MLP が 中文 / English / 日本語 を判定します。これは「計算が本物である」ことの直接的な証明でもあります:あなたの入力、その数値、その予測——一本の鎖として端から端まで追えます。
各層のタイトルをクリックすると解説が開きます:何をしているのか、なぜネットワークに必要なのか、平易な言葉でのたとえ——中国語・英語・日本語の三言語対応で、解説中はその層が 3D 内で光り、他は暗くなります。
GPT のふりはしません
README には「プロダクションモデルとの違い」という専用セクションがあります:Transformer ブロックは 1 つだけ、2 ヘッド、d=12、文字レベルのトークン。学習はサンプル単位の素朴な SGD。CNN は畳み込み+プーリング 1 段のみ。言語識別は現代的な埋め込みではなく、あえて手作りの統計特徴を使っています。表示される数学は本物ですが、規模は本物ではありません。簡略化した点を正直に列挙するほうが、「これが ChatGPT の仕組みです」と装うよりも価値があると考えています。
技術スタック
Vite + React + TypeScript + React Three Fiber + Drei + Zustand。npm run sanity はすべてのネットワークを全スケールで学習させ、精度を検証します。
コードは github.com/tan-zhuo/ai-room にあります。ぜひ遊んでみてください。issue も歓迎です。
COMMENTS