Views
No views yet
| Directory | Training Data | Description |
|---|---|---|
classic/ | Classic (20M) | Standard Othello |
nomidflip/ | NoMidFlip (20M) | Flip endpoints only |
delflank/ | DelFlank (20M) | Delete flanked pieces |
iago/ | Iago (20M) | Classic with scrambled token vocabulary |
classic_nomidflip/ | Classic + NoMidFlip (20M each) | Mixed: high rule overlap |
classic_delflank/ | Classic + DelFlank (20M each) | Mixed: low rule overlap |
classic_iago/ | Classic + Iago (20M each) | Mixed: isomorphic control |
board_probes/{run_name}/:| Probe directory | Probes | Description |
|---|---|---|
board_probes/classic/ | 8 | One per layer, trained on Classic data |
board_probes/nomidflip/ | 8 | One per layer, trained on NoMidFlip data |
board_probes/delflank/ | 8 | One per layer, trained on DelFlank data |
board_probes/iago/ | 8 | One per layer, trained on Iago data |
board_probes/classic_nomidflip/ | 16 | 8 Classic + 8 NoMidFlip probes |
board_probes/classic_delflank/ | 16 | 8 Classic + 8 DelFlank probes |
board_probes/classic_iago/ | 16 | 8 Classic + 8 Iago probes |
{game}_board_L{layer}.ckpt (layers 1–8).Coming soon: Game ID probes (linear classifiers that predict which game variant is being played), along with training and plotting scripts, are currently in development and will be uploaded in a future update.
aviralchawla/metaothello/
├── classic/
│ ├── epoch_1.ckpt # ~101 MB each
│ ├── epoch_5.ckpt
│ ├── epoch_50.ckpt
│ ├── epoch_150.ckpt
│ └── epoch_250.ckpt
├── nomidflip/ # same structure
├── delflank/ # same structure
├── iago/ # same structure
├── classic_nomidflip/ # same structure
├── classic_delflank/ # same structure
├── classic_iago/ # same structure
└── board_probes/
├── classic/
│ ├── classic_board_L1.ckpt # ~396 KB each
│ └── ...through L8
├── classic_nomidflip/
│ ├── classic_board_L1.ckpt # ...through L8
│ └── nomidflip_board_L1.ckpt # ...through L8
└── ... # other runs1# Clone the repository
2git clone https://github.com/aviralchawla/metaothello.git
3cd metaothello && pip install -e .
4
5# Download all pretrained assets (models + data + board probes)
6make download-all
7
8# Download all GPT models
9make download-models
10
11# Download all board probes
12make download-probes
13
14# Download selectively
15make download-model RUN_NAME=classic # Single model
16make download-board-probe RUN_NAME=classic_iago # Single run's probesdata/{run_name}/ckpts/ and probes into data/{run_name}/board_probes/.1from huggingface_hub import snapshot_download
2
3# Download a single model's final checkpoint
4snapshot_download(
5 repo_id="aviralchawla/metaothello",
6 repo_type="model",
7 allow_patterns=["classic/epoch_250.ckpt"],
8 local_dir="./data",
9)
10
11# Download all board probes for a run
12snapshot_download(
13 repo_id="aviralchawla/metaothello",
14 repo_type="model",
15 allow_patterns=["board_probes/classic_nomidflip/*.ckpt"],
16 local_dir="./data",
17)1from metaothello.mingpt.utils import load_model_from_ckpt
2
3# Load as a minGPT model
4model = load_model_from_ckpt("data/classic/ckpts/epoch_250.ckpt", vocab_size=66, block_size=59)
5
6# Load as a TransformerLens HookedTransformer (for mechanistic interpretability)
7model = load_model_from_ckpt(
8 "data/classic/ckpts/epoch_250.ckpt", vocab_size=66, block_size=59, as_tlens=True
9)1@article{metaothello2025,
2 title = {MetaOthello: A Controlled Study of Multiple World Models in Transformers},
3 author = {Aviral Chawla, Galen Hall, Juniper Lovato},
4 journal = {arXiv preprint},
5 year = {2025}
6}