Commit ·
14eddd5
0
Parent(s):
initial commit
Browse files- .gitattributes +36 -0
- README.md +113 -0
- all25/checkpoint_best.pt +3 -0
- all25/config.json +63 -0
- all25/eval_history.jsonl +0 -0
- fold1/checkpoint_best.pt +3 -0
- fold1/config.json +100 -0
- fold1/eval_history.jsonl +0 -0
- fold2/checkpoint_best.pt +3 -0
- fold2/config.json +100 -0
- fold2/eval_history.jsonl +0 -0
- fold3/checkpoint_best.pt +3 -0
- fold3/config.json +100 -0
- fold3/eval_history.jsonl +0 -0
- manifest.json +81 -0
.gitattributes
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
assets/overview.png filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc0-1.0
|
| 3 |
+
tags:
|
| 4 |
+
- world-model
|
| 5 |
+
- arc-agi-3
|
| 6 |
+
- test-time-training
|
| 7 |
+
- next-frame-prediction
|
| 8 |
+
- vision-transformer
|
| 9 |
+
- pytorch
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# WARC
|
| 13 |
+
|
| 14 |
+
[](https://github.com/third-intelligence/WARC)
|
| 15 |
+
[](https://creativecommons.org/publicdomain/zero/1.0/)
|
| 16 |
+
|
| 17 |
+
WARC (World model for ARC-AGI-3) is a 35M-parameter action-conditioned vision transformer. It
|
| 18 |
+
predicts the next frame of a game, cell by cell, from the last three frames and
|
| 19 |
+
the action, and it keeps learning while an agent plays: after every observed
|
| 20 |
+
transition it updates all of its parameters by gradient descent. Pretrained on
|
| 21 |
+
human recordings of other games, it learns to predict four in five mechanics
|
| 22 |
+
of an unseen game with at least 80% accuracy on the cells they change and keeps
|
| 23 |
+
that accuracy to the end of the recordings.
|
| 24 |
+
|
| 25 |
+
## Model details
|
| 26 |
+
|
| 27 |
+
| | |
|
| 28 |
+
|---|---|
|
| 29 |
+
| Input | The last three 64x64 frames of 16 colours, the action after the last frame, and the two actions between the frames |
|
| 30 |
+
| Output | A distribution over the 16 colours of every cell of the next frame |
|
| 31 |
+
| Architecture | 2x2 patches, 10 pre-norm transformer blocks of width 512 with rotary position embeddings, modulated by the action through adaptive layer normalization; a learned vector added to the token of the clicked cell |
|
| 32 |
+
| Parameters | 35M |
|
| 33 |
+
| Pretraining | Next-frame cross-entropy on human recordings of the public games; Muon and AdamW, 30 epochs |
|
| 34 |
+
| Test-time training | 20 gradient steps on the ten newest and twenty earlier transitions after every observed transition; all parameters are updated |
|
| 35 |
+
| License | CC0 1.0 |
|
| 36 |
+
|
| 37 |
+
## Files
|
| 38 |
+
|
| 39 |
+
| File | Pretrained on | Held-out games | Validation exact-frame accuracy |
|
| 40 |
+
|---|---|---|---:|
|
| 41 |
+
| `fold1/checkpoint_best.pt` | 16 games | bp35 lf52 lp85 r11l re86 sb26 sc25 su15 wa30 | 85.7% |
|
| 42 |
+
| `fold2/checkpoint_best.pt` | 17 games | cd82 cn04 dc22 m0r0 sk48 tn36 tr87 tu93 | 79.2% |
|
| 43 |
+
| `fold3/checkpoint_best.pt` | 17 games | ar25 ft09 g50t ka59 ls20 s5i5 sp80 vc33 | 78.5% |
|
| 44 |
+
| `all25/checkpoint_best.pt` | all 25 games | none (one recording per game held out for validation) | 80.0% |
|
| 45 |
+
|
| 46 |
+
Each checkpoint (146 MB) holds the weights, the model configuration, and the
|
| 47 |
+
game split; `config.json` and `eval_history.jsonl` next to it record the
|
| 48 |
+
training configuration and the per-epoch validation accuracy. `manifest.json`
|
| 49 |
+
lists the SHA-256 of every checkpoint and the fold of every game.
|
| 50 |
+
|
| 51 |
+
## Usage
|
| 52 |
+
|
| 53 |
+
Install the code from the [GitHub repository](https://github.com/third-intelligence/WARC)
|
| 54 |
+
and download the weights:
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
git clone https://github.com/third-intelligence/WARC
|
| 58 |
+
cd WARC
|
| 59 |
+
python3.12 -m venv .venv && source .venv/bin/activate
|
| 60 |
+
pip install torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu126
|
| 61 |
+
pip install -r requirements.txt
|
| 62 |
+
hf download third-intelligence/WARC --local-dir models # the four checkpoints (pip install huggingface_hub)
|
| 63 |
+
```
|
| 64 |
+
|
| 65 |
+
Predict the next frame:
|
| 66 |
+
|
| 67 |
+
```python
|
| 68 |
+
import sys
|
| 69 |
+
import torch
|
| 70 |
+
|
| 71 |
+
sys.path[:0] = ["agent", "agent/VARC"]
|
| 72 |
+
from warc_model.model import build_from_checkpoint
|
| 73 |
+
|
| 74 |
+
device = torch.device("cuda")
|
| 75 |
+
model, meta = build_from_checkpoint("models/all25/checkpoint_best.pt", device=device)
|
| 76 |
+
|
| 77 |
+
# The last three frames, (1, 3, 64, 64) colours 0-15. Actions: 1-5 are the keys ACTION1-ACTION5,
|
| 78 |
+
# 6 is a click at column x and row y; x and y are -1 for a key.
|
| 79 |
+
frames = torch.randint(0, 16, (1, 3, 64, 64), device=device) # replace with frames of a game
|
| 80 |
+
action, x, y = (torch.tensor(v, device=device) for v in ([6], [10], [20]))
|
| 81 |
+
hist_action, hist_x, hist_y = (torch.tensor(v, device=device) for v in ([[1, 2]], [[-1, -1]], [[-1, -1]]))
|
| 82 |
+
|
| 83 |
+
with torch.no_grad():
|
| 84 |
+
logits = model(frames[:, -1], torch.zeros(1, dtype=torch.long, device=device), action, x, y,
|
| 85 |
+
hist_obs=frames, hist_action_ids=hist_action, hist_action_xs=hist_x,
|
| 86 |
+
hist_action_ys=hist_y)["ffp_logits"] # (1, 16, 64, 64)
|
| 87 |
+
next_frame = logits.argmax(1)[0] # (64, 64) predicted colours
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
Test-time training inside a game loop (`FinalPredictor` in the repository), the
|
| 91 |
+
agent, the Kaggle notebook, and the training commands are documented in the
|
| 92 |
+
[README](https://github.com/third-intelligence/WARC#quick-start) and in
|
| 93 |
+
[docs/reproducibility.md](https://github.com/third-intelligence/WARC/blob/main/docs/reproducibility.md).
|
| 94 |
+
|
| 95 |
+
## Training data
|
| 96 |
+
|
| 97 |
+
The 340 human gameplay recordings of the 25 public ARC-AGI-3 games published by
|
| 98 |
+
the ARC Prize Foundation ([ARC-AGI-3 human dataset](https://arcprize.org/blog/arc-agi-3-human-dataset)).
|
| 99 |
+
The fold models use the recordings of their training games only; the all-25
|
| 100 |
+
model uses one recording per game for validation and the rest for training.
|
| 101 |
+
|
| 102 |
+
## Acknowledgements
|
| 103 |
+
|
| 104 |
+
WARC follows VARC ("ARC Is a Vision Problem!", Hu et al., 2025) and
|
| 105 |
+
reuses parts of the [VARC code](https://github.com/lillian039/VARC) (MIT). The
|
| 106 |
+
games and the recordings belong to the [ARC Prize Foundation](https://arcprize.org).
|
| 107 |
+
The repository lists every third-party component and its licence.
|
| 108 |
+
|
| 109 |
+
## License
|
| 110 |
+
|
| 111 |
+
The weights and the code are released under
|
| 112 |
+
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/). Third-party
|
| 113 |
+
components keep their own licences.
|
all25/checkpoint_best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:348faf916bb842fe27ccef24efa86f79f13f3175c78d1a1e6408fdddf0502922
|
| 3 |
+
size 146368647
|
all25/config.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fold": 0,
|
| 3 |
+
"split_seed": 0,
|
| 4 |
+
"patch_size": 2,
|
| 5 |
+
"embed_dim": null,
|
| 6 |
+
"depth": null,
|
| 7 |
+
"num_heads": null,
|
| 8 |
+
"mlp_dim": null,
|
| 9 |
+
"hist_n": 3,
|
| 10 |
+
"epochs": 30,
|
| 11 |
+
"batch_size": 86,
|
| 12 |
+
"global_batch_size": 516,
|
| 13 |
+
"learning_rate": 0.0003,
|
| 14 |
+
"weight_decay": 0.0,
|
| 15 |
+
"max_grad_norm": 1.0,
|
| 16 |
+
"lr_scheduler": "cosine",
|
| 17 |
+
"seed": 42,
|
| 18 |
+
"num_workers": 8,
|
| 19 |
+
"optimizer": "muon",
|
| 20 |
+
"muon_lr": 0.0,
|
| 21 |
+
"muon_momentum": 0.95,
|
| 22 |
+
"muon_adjust_lr": "match_rms_adamw",
|
| 23 |
+
"gamma": 0.95,
|
| 24 |
+
"no_amp": false,
|
| 25 |
+
"amp_dtype": "bf16",
|
| 26 |
+
"no_compile": false,
|
| 27 |
+
"compile_mode": "reduce-overhead",
|
| 28 |
+
"distributed": true,
|
| 29 |
+
"disable_augment": false,
|
| 30 |
+
"num_color_permute": 9,
|
| 31 |
+
"eval_batch_size": null,
|
| 32 |
+
"eval_every": 1,
|
| 33 |
+
"max_train_batches": 0,
|
| 34 |
+
"arch": "unified_hist_cm",
|
| 35 |
+
"model_config": {
|
| 36 |
+
"embed_dim": 512,
|
| 37 |
+
"depth": 10,
|
| 38 |
+
"num_heads": 8,
|
| 39 |
+
"mlp_dim": 512,
|
| 40 |
+
"dropout": 0.1,
|
| 41 |
+
"num_actions": 8,
|
| 42 |
+
"arch": "unified_hist_cm",
|
| 43 |
+
"backbone": "unified_hist",
|
| 44 |
+
"click_embed": true,
|
| 45 |
+
"hist_n": 3,
|
| 46 |
+
"patch_size": 2,
|
| 47 |
+
"num_input_colors": 17,
|
| 48 |
+
"conditioning": "adaln_zero_all_layers + learned vector on the clicked patch token (zero-init)",
|
| 49 |
+
"norm": "pre",
|
| 50 |
+
"positional": "rope_only",
|
| 51 |
+
"task_token": false,
|
| 52 |
+
"attention": "sdpa"
|
| 53 |
+
},
|
| 54 |
+
"world_size": 6,
|
| 55 |
+
"loss": "ffp_only",
|
| 56 |
+
"folds": {
|
| 57 |
+
"num_folds": 1,
|
| 58 |
+
"split_seed": 0,
|
| 59 |
+
"test_games_by_fold": {
|
| 60 |
+
"0": []
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
}
|
all25/eval_history.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
fold1/checkpoint_best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e002d2197aa9518cb9075562411d35f01c4cecd9abd02c81483cc4d597fb498e
|
| 3 |
+
size 146368583
|
fold1/config.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fold": 1,
|
| 3 |
+
"split_seed": 0,
|
| 4 |
+
"data_root": "ARC-AGI-3",
|
| 5 |
+
"save_dir": "runs/fold1",
|
| 6 |
+
"patch_size": 2,
|
| 7 |
+
"embed_dim": null,
|
| 8 |
+
"depth": null,
|
| 9 |
+
"num_heads": null,
|
| 10 |
+
"mlp_dim": null,
|
| 11 |
+
"hist_n": 3,
|
| 12 |
+
"epochs": 30,
|
| 13 |
+
"batch_size": 86,
|
| 14 |
+
"global_batch_size": 516,
|
| 15 |
+
"learning_rate": 0.0003,
|
| 16 |
+
"weight_decay": 0.0,
|
| 17 |
+
"max_grad_norm": 1.0,
|
| 18 |
+
"lr_scheduler": "cosine",
|
| 19 |
+
"seed": 42,
|
| 20 |
+
"num_workers": 8,
|
| 21 |
+
"optimizer": "muon",
|
| 22 |
+
"muon_lr": 0.0,
|
| 23 |
+
"muon_momentum": 0.95,
|
| 24 |
+
"muon_adjust_lr": "match_rms_adamw",
|
| 25 |
+
"gamma": 0.95,
|
| 26 |
+
"no_amp": false,
|
| 27 |
+
"amp_dtype": "bf16",
|
| 28 |
+
"no_compile": false,
|
| 29 |
+
"compile_mode": "reduce-overhead",
|
| 30 |
+
"distributed": true,
|
| 31 |
+
"disable_augment": false,
|
| 32 |
+
"num_color_permute": 9,
|
| 33 |
+
"eval_batch_size": null,
|
| 34 |
+
"eval_every": 1,
|
| 35 |
+
"max_train_batches": 0,
|
| 36 |
+
"resume_checkpoint": null,
|
| 37 |
+
"use_wandb": false,
|
| 38 |
+
"wandb_project": "warc",
|
| 39 |
+
"wandb_run_name": "",
|
| 40 |
+
"wandb_resume_id": "",
|
| 41 |
+
"arch": "unified_hist_cm",
|
| 42 |
+
"model_config": {
|
| 43 |
+
"embed_dim": 512,
|
| 44 |
+
"depth": 10,
|
| 45 |
+
"num_heads": 8,
|
| 46 |
+
"mlp_dim": 512,
|
| 47 |
+
"dropout": 0.1,
|
| 48 |
+
"num_actions": 8,
|
| 49 |
+
"arch": "unified_hist_cm",
|
| 50 |
+
"backbone": "unified_hist",
|
| 51 |
+
"click_marker": true,
|
| 52 |
+
"hist_n": 3,
|
| 53 |
+
"patch_size": 2,
|
| 54 |
+
"num_input_colors": 17,
|
| 55 |
+
"conditioning": "adaln_zero_all_layers + click marker on the clicked patch token (zero-init)",
|
| 56 |
+
"norm": "pre",
|
| 57 |
+
"positional": "rope_only",
|
| 58 |
+
"task_token": false,
|
| 59 |
+
"attention": "sdpa"
|
| 60 |
+
},
|
| 61 |
+
"world_size": 6,
|
| 62 |
+
"loss": "ffp_only",
|
| 63 |
+
"folds": {
|
| 64 |
+
"num_folds": 3,
|
| 65 |
+
"split_seed": 0,
|
| 66 |
+
"test_games_by_fold": {
|
| 67 |
+
"1": [
|
| 68 |
+
"bp35",
|
| 69 |
+
"lf52",
|
| 70 |
+
"lp85",
|
| 71 |
+
"r11l",
|
| 72 |
+
"re86",
|
| 73 |
+
"sb26",
|
| 74 |
+
"sc25",
|
| 75 |
+
"su15",
|
| 76 |
+
"wa30"
|
| 77 |
+
],
|
| 78 |
+
"2": [
|
| 79 |
+
"cd82",
|
| 80 |
+
"cn04",
|
| 81 |
+
"dc22",
|
| 82 |
+
"m0r0",
|
| 83 |
+
"sk48",
|
| 84 |
+
"tn36",
|
| 85 |
+
"tr87",
|
| 86 |
+
"tu93"
|
| 87 |
+
],
|
| 88 |
+
"3": [
|
| 89 |
+
"ar25",
|
| 90 |
+
"ft09",
|
| 91 |
+
"g50t",
|
| 92 |
+
"ka59",
|
| 93 |
+
"ls20",
|
| 94 |
+
"s5i5",
|
| 95 |
+
"sp80",
|
| 96 |
+
"vc33"
|
| 97 |
+
]
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
}
|
fold1/eval_history.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
fold2/checkpoint_best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7b9fee3f076d99ba05fd9ee1165a1ac4e4f11cac4bdfacf09ce729e3256c9982
|
| 3 |
+
size 146368583
|
fold2/config.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fold": 2,
|
| 3 |
+
"split_seed": 0,
|
| 4 |
+
"data_root": "ARC-AGI-3",
|
| 5 |
+
"save_dir": "runs/fold2",
|
| 6 |
+
"patch_size": 2,
|
| 7 |
+
"embed_dim": null,
|
| 8 |
+
"depth": null,
|
| 9 |
+
"num_heads": null,
|
| 10 |
+
"mlp_dim": null,
|
| 11 |
+
"hist_n": 3,
|
| 12 |
+
"epochs": 30,
|
| 13 |
+
"batch_size": 86,
|
| 14 |
+
"global_batch_size": 516,
|
| 15 |
+
"learning_rate": 0.0003,
|
| 16 |
+
"weight_decay": 0.0,
|
| 17 |
+
"max_grad_norm": 1.0,
|
| 18 |
+
"lr_scheduler": "cosine",
|
| 19 |
+
"seed": 42,
|
| 20 |
+
"num_workers": 8,
|
| 21 |
+
"optimizer": "muon",
|
| 22 |
+
"muon_lr": 0.0,
|
| 23 |
+
"muon_momentum": 0.95,
|
| 24 |
+
"muon_adjust_lr": "match_rms_adamw",
|
| 25 |
+
"gamma": 0.95,
|
| 26 |
+
"no_amp": false,
|
| 27 |
+
"amp_dtype": "bf16",
|
| 28 |
+
"no_compile": false,
|
| 29 |
+
"compile_mode": "reduce-overhead",
|
| 30 |
+
"distributed": true,
|
| 31 |
+
"disable_augment": false,
|
| 32 |
+
"num_color_permute": 9,
|
| 33 |
+
"eval_batch_size": null,
|
| 34 |
+
"eval_every": 1,
|
| 35 |
+
"max_train_batches": 0,
|
| 36 |
+
"resume_checkpoint": null,
|
| 37 |
+
"use_wandb": false,
|
| 38 |
+
"wandb_project": "warc",
|
| 39 |
+
"wandb_run_name": "",
|
| 40 |
+
"wandb_resume_id": "",
|
| 41 |
+
"arch": "unified_hist_cm",
|
| 42 |
+
"model_config": {
|
| 43 |
+
"embed_dim": 512,
|
| 44 |
+
"depth": 10,
|
| 45 |
+
"num_heads": 8,
|
| 46 |
+
"mlp_dim": 512,
|
| 47 |
+
"dropout": 0.1,
|
| 48 |
+
"num_actions": 8,
|
| 49 |
+
"arch": "unified_hist_cm",
|
| 50 |
+
"backbone": "unified_hist",
|
| 51 |
+
"click_marker": true,
|
| 52 |
+
"hist_n": 3,
|
| 53 |
+
"patch_size": 2,
|
| 54 |
+
"num_input_colors": 17,
|
| 55 |
+
"conditioning": "adaln_zero_all_layers + click marker on the clicked patch token (zero-init)",
|
| 56 |
+
"norm": "pre",
|
| 57 |
+
"positional": "rope_only",
|
| 58 |
+
"task_token": false,
|
| 59 |
+
"attention": "sdpa"
|
| 60 |
+
},
|
| 61 |
+
"world_size": 6,
|
| 62 |
+
"loss": "ffp_only",
|
| 63 |
+
"folds": {
|
| 64 |
+
"num_folds": 3,
|
| 65 |
+
"split_seed": 0,
|
| 66 |
+
"test_games_by_fold": {
|
| 67 |
+
"1": [
|
| 68 |
+
"bp35",
|
| 69 |
+
"lf52",
|
| 70 |
+
"lp85",
|
| 71 |
+
"r11l",
|
| 72 |
+
"re86",
|
| 73 |
+
"sb26",
|
| 74 |
+
"sc25",
|
| 75 |
+
"su15",
|
| 76 |
+
"wa30"
|
| 77 |
+
],
|
| 78 |
+
"2": [
|
| 79 |
+
"cd82",
|
| 80 |
+
"cn04",
|
| 81 |
+
"dc22",
|
| 82 |
+
"m0r0",
|
| 83 |
+
"sk48",
|
| 84 |
+
"tn36",
|
| 85 |
+
"tr87",
|
| 86 |
+
"tu93"
|
| 87 |
+
],
|
| 88 |
+
"3": [
|
| 89 |
+
"ar25",
|
| 90 |
+
"ft09",
|
| 91 |
+
"g50t",
|
| 92 |
+
"ka59",
|
| 93 |
+
"ls20",
|
| 94 |
+
"s5i5",
|
| 95 |
+
"sp80",
|
| 96 |
+
"vc33"
|
| 97 |
+
]
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
}
|
fold2/eval_history.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
fold3/checkpoint_best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:651ca2676710cc6b40d1f1eb4d4d4b838359dadc92038f20ae5c2d5f21c88ed7
|
| 3 |
+
size 146368583
|
fold3/config.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fold": 3,
|
| 3 |
+
"split_seed": 0,
|
| 4 |
+
"data_root": "ARC-AGI-3",
|
| 5 |
+
"save_dir": "runs/fold3",
|
| 6 |
+
"patch_size": 2,
|
| 7 |
+
"embed_dim": null,
|
| 8 |
+
"depth": null,
|
| 9 |
+
"num_heads": null,
|
| 10 |
+
"mlp_dim": null,
|
| 11 |
+
"hist_n": 3,
|
| 12 |
+
"epochs": 30,
|
| 13 |
+
"batch_size": 86,
|
| 14 |
+
"global_batch_size": 516,
|
| 15 |
+
"learning_rate": 0.0003,
|
| 16 |
+
"weight_decay": 0.0,
|
| 17 |
+
"max_grad_norm": 1.0,
|
| 18 |
+
"lr_scheduler": "cosine",
|
| 19 |
+
"seed": 42,
|
| 20 |
+
"num_workers": 8,
|
| 21 |
+
"optimizer": "muon",
|
| 22 |
+
"muon_lr": 0.0,
|
| 23 |
+
"muon_momentum": 0.95,
|
| 24 |
+
"muon_adjust_lr": "match_rms_adamw",
|
| 25 |
+
"gamma": 0.95,
|
| 26 |
+
"no_amp": false,
|
| 27 |
+
"amp_dtype": "bf16",
|
| 28 |
+
"no_compile": false,
|
| 29 |
+
"compile_mode": "reduce-overhead",
|
| 30 |
+
"distributed": true,
|
| 31 |
+
"disable_augment": false,
|
| 32 |
+
"num_color_permute": 9,
|
| 33 |
+
"eval_batch_size": null,
|
| 34 |
+
"eval_every": 1,
|
| 35 |
+
"max_train_batches": 0,
|
| 36 |
+
"resume_checkpoint": null,
|
| 37 |
+
"use_wandb": false,
|
| 38 |
+
"wandb_project": "warc",
|
| 39 |
+
"wandb_run_name": "",
|
| 40 |
+
"wandb_resume_id": "",
|
| 41 |
+
"arch": "unified_hist_cm",
|
| 42 |
+
"model_config": {
|
| 43 |
+
"embed_dim": 512,
|
| 44 |
+
"depth": 10,
|
| 45 |
+
"num_heads": 8,
|
| 46 |
+
"mlp_dim": 512,
|
| 47 |
+
"dropout": 0.1,
|
| 48 |
+
"num_actions": 8,
|
| 49 |
+
"arch": "unified_hist_cm",
|
| 50 |
+
"backbone": "unified_hist",
|
| 51 |
+
"click_marker": true,
|
| 52 |
+
"hist_n": 3,
|
| 53 |
+
"patch_size": 2,
|
| 54 |
+
"num_input_colors": 17,
|
| 55 |
+
"conditioning": "adaln_zero_all_layers + click marker on the clicked patch token (zero-init)",
|
| 56 |
+
"norm": "pre",
|
| 57 |
+
"positional": "rope_only",
|
| 58 |
+
"task_token": false,
|
| 59 |
+
"attention": "sdpa"
|
| 60 |
+
},
|
| 61 |
+
"world_size": 6,
|
| 62 |
+
"loss": "ffp_only",
|
| 63 |
+
"folds": {
|
| 64 |
+
"num_folds": 3,
|
| 65 |
+
"split_seed": 0,
|
| 66 |
+
"test_games_by_fold": {
|
| 67 |
+
"1": [
|
| 68 |
+
"bp35",
|
| 69 |
+
"lf52",
|
| 70 |
+
"lp85",
|
| 71 |
+
"r11l",
|
| 72 |
+
"re86",
|
| 73 |
+
"sb26",
|
| 74 |
+
"sc25",
|
| 75 |
+
"su15",
|
| 76 |
+
"wa30"
|
| 77 |
+
],
|
| 78 |
+
"2": [
|
| 79 |
+
"cd82",
|
| 80 |
+
"cn04",
|
| 81 |
+
"dc22",
|
| 82 |
+
"m0r0",
|
| 83 |
+
"sk48",
|
| 84 |
+
"tn36",
|
| 85 |
+
"tr87",
|
| 86 |
+
"tu93"
|
| 87 |
+
],
|
| 88 |
+
"3": [
|
| 89 |
+
"ar25",
|
| 90 |
+
"ft09",
|
| 91 |
+
"g50t",
|
| 92 |
+
"ka59",
|
| 93 |
+
"ls20",
|
| 94 |
+
"s5i5",
|
| 95 |
+
"sp80",
|
| 96 |
+
"vc33"
|
| 97 |
+
]
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
}
|
fold3/eval_history.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
manifest.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"arch": "unified_hist_cm",
|
| 3 |
+
"model_config_note": "see each checkpoint config.model_config",
|
| 4 |
+
"game_to_fold": {
|
| 5 |
+
"bp35": 1,
|
| 6 |
+
"lf52": 1,
|
| 7 |
+
"lp85": 1,
|
| 8 |
+
"r11l": 1,
|
| 9 |
+
"re86": 1,
|
| 10 |
+
"sb26": 1,
|
| 11 |
+
"sc25": 1,
|
| 12 |
+
"su15": 1,
|
| 13 |
+
"wa30": 1,
|
| 14 |
+
"cd82": 2,
|
| 15 |
+
"cn04": 2,
|
| 16 |
+
"dc22": 2,
|
| 17 |
+
"m0r0": 2,
|
| 18 |
+
"sk48": 2,
|
| 19 |
+
"tn36": 2,
|
| 20 |
+
"tr87": 2,
|
| 21 |
+
"tu93": 2,
|
| 22 |
+
"ar25": 3,
|
| 23 |
+
"ft09": 3,
|
| 24 |
+
"g50t": 3,
|
| 25 |
+
"ka59": 3,
|
| 26 |
+
"ls20": 3,
|
| 27 |
+
"s5i5": 3,
|
| 28 |
+
"sp80": 3,
|
| 29 |
+
"vc33": 3
|
| 30 |
+
},
|
| 31 |
+
"folds": {
|
| 32 |
+
"1": {
|
| 33 |
+
"test_games": [
|
| 34 |
+
"bp35",
|
| 35 |
+
"lf52",
|
| 36 |
+
"lp85",
|
| 37 |
+
"r11l",
|
| 38 |
+
"re86",
|
| 39 |
+
"sb26",
|
| 40 |
+
"sc25",
|
| 41 |
+
"su15",
|
| 42 |
+
"wa30"
|
| 43 |
+
],
|
| 44 |
+
"file": "fold1/checkpoint_best.pt",
|
| 45 |
+
"sha256": "e002d2197aa9518cb9075562411d35f01c4cecd9abd02c81483cc4d597fb498e"
|
| 46 |
+
},
|
| 47 |
+
"2": {
|
| 48 |
+
"test_games": [
|
| 49 |
+
"cd82",
|
| 50 |
+
"cn04",
|
| 51 |
+
"dc22",
|
| 52 |
+
"m0r0",
|
| 53 |
+
"sk48",
|
| 54 |
+
"tn36",
|
| 55 |
+
"tr87",
|
| 56 |
+
"tu93"
|
| 57 |
+
],
|
| 58 |
+
"file": "fold2/checkpoint_best.pt",
|
| 59 |
+
"sha256": "7b9fee3f076d99ba05fd9ee1165a1ac4e4f11cac4bdfacf09ce729e3256c9982"
|
| 60 |
+
},
|
| 61 |
+
"3": {
|
| 62 |
+
"test_games": [
|
| 63 |
+
"ar25",
|
| 64 |
+
"ft09",
|
| 65 |
+
"g50t",
|
| 66 |
+
"ka59",
|
| 67 |
+
"ls20",
|
| 68 |
+
"s5i5",
|
| 69 |
+
"sp80",
|
| 70 |
+
"vc33"
|
| 71 |
+
],
|
| 72 |
+
"file": "fold3/checkpoint_best.pt",
|
| 73 |
+
"sha256": "651ca2676710cc6b40d1f1eb4d4d4b838359dadc92038f20ae5c2d5f21c88ed7"
|
| 74 |
+
}
|
| 75 |
+
},
|
| 76 |
+
"all25": {
|
| 77 |
+
"file": "all25/checkpoint_best.pt",
|
| 78 |
+
"sha256": "348faf916bb842fe27ccef24efa86f79f13f3175c78d1a1e6408fdddf0502922",
|
| 79 |
+
"note": "the submitted model, pretrained on all 25 public games; not for evaluation on public games"
|
| 80 |
+
}
|
| 81 |
+
}
|