AdderBoard — 10桁加算を最小モデルで達成する挑戦
概要
AdderBoardは「Smallest transformer that can add two 10-digit numbers(10桁同士の加算を行える最小のトランスフォーマー)」を目標にした軽量実験リポジトリです。課題設定は、ホールドアウトした10Kのテストセットで99% 以上の正解率を達成する最小モデルを設計・学習させること。リポジトリにはチャレンジの説明、結果を示す図、提出用テンプレート(submission_template.py)、および検証用スクリプト(verify.py)が含まれ、モデル設計・データ生成・評価までをシンプルに試せるようになっています。研究ノート「Addition Under Pressure」に触発された実装で、トランスフォーマーの計算能力とモデル容量の境界を実践的に探るための教材にも適しています。
リポジトリの統計情報
- スター数: 14
- フォーク数: 1
- ウォッチャー数: 14
- コミット数: 8
- ファイル数: 5
- メインの言語: Python
主な特徴
- 10桁+10桁の加算タスクに特化した「最小化」を意識したトランスフォーマー設計の挑戦。
- 提出テンプレートと検証スクリプトを同梱し、結果の再現と評価が容易。
- 実験的・教育的に使える軽量なコードベース(依存は少なめ)。
- 結果ビジュアル(adderboard.png)で比較や説明がしやすい。
技術的なポイント
このプロジェクトの核心は「いかに小さなネットワークで決められた算術タスクを高精度に解かせるか」という点です。典型的なアプローチとして本リポジトリは入力表現の工夫(桁ごとのトークン化や固定長シーケンス化)、極小のモデル容量(層数・埋め込み次元・ヘッド数を抑える)、および学習手順の最適化を組み合わせています。submission_template.py は提出形式に合わせた最小限のモデル定義と学習/推論ループを提供すると想定され、verify.py はホールドアウトの10Kテストセットに対する一括検証を行い、99%の閾値をチェックします。
モデル最小化の典型的な工夫としては、トークン共有(入力・出力で同じ語彙を使う)、重み共有(層間でのパラメータ共有)、活性化や正規化の簡素化、学習率スケジュールやAdamなどの最適化器のチューニング、さらにカリキュラム学習(桁数を徐々に増やす)やデータ拡張の利用が考えられます。加算のような決定論的タスクでは出力エラーの扱い(部分正解をどう扱うか)やトークンレベルの損失設計も重要です。
検証観点では、単純な精度(完全一致)だけでなく桁ごとの部分精度や誤り分布を確認することで、モデルがどの桁で弱いか、桁の繰り上がり処理ができているかを詳細に評価できます。AdderBoardはこうした実験を再現するための最小限のツールセットを提供しており、トランスフォーマーの能力と効率性を比較検討するベースラインとして有用です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- README.md: file
- adderboard.png: file
- submission_template.py: file
- verify.py: file
まとめ
トランスフォーマーの「容量対能力」を実験的に検証するための小規模で実用的なリポジトリ。
リポジトリ情報:
- 名前: AdderBoard
- 説明: Smallest transformer that can add two 10-digit numbers
- スター数: 14
- 言語: Python
- URL: https://github.com/anadim/AdderBoard
- オーナー: anadim
- アバター: https://avatars.githubusercontent.com/u/9118277?v=4
READMEの抜粋:
AdderBoard
Challenge: Build the smallest transformer that can add two 10-digit numbers with >= 99% accuracy on a held-out 10K test set.
This started with Addition Under Pressure, where I gave Claude Code and Codex the same prompt: train the smallest possible transformer that can do 10-digit addition with at least 99% accuracy. [Claude Code](https:…