Avra98's picture
Add trainer README: find data at any path, then launch
5bce762 verified
|
Raw History Blame Contribute Delete
4.7 kB
# Sudoku noisy-latent trainer
This directory is **code only**. The training arrays are not in git.
They live on Hugging Face: https://huggingface.co/Avra98/Sudoku_superposition
under `data/`. They may already be on disk under another path.
If you are an agent: find the 11 files below (by **filename**, not folder name),
export the six path variables, then run `bash run_experiment.sh` from this directory.
## Required filenames
Search the machine for these exact names. A folder called `data/` is common but
not required.
| filename | role | env var |
|---|---|---|
| `train_sudoku_puzzles.npy` | raw train puzzles (clues + solution) | `SUDOKU_TRAIN_PATH` |
| `test_sudoku_puzzles.npy` | raw test puzzles | `SUDOKU_TEST_PATH` |
| `train_cand_masks.npy` | staged candidate sets, train `(N,12,81)` | `SUDOKU_TRAIN_CAND` |
| `test_cand_masks.npy` | staged candidate sets, test | `SUDOKU_TEST_CAND` |
| `train_assignments.npy` | train instance boards `(M,81)` | in `SUDOKU_INSTANCE_DIR` |
| `train_starts.npy` | train `(puzzle,stage)` row starts | in `SUDOKU_INSTANCE_DIR` |
| `train_counts.npy` | train `(puzzle,stage)` counts | in `SUDOKU_INSTANCE_DIR` |
| `test_assignments.npy` | test instance boards | in `SUDOKU_INSTANCE_DIR` |
| `test_starts.npy` | test starts | in `SUDOKU_INSTANCE_DIR` |
| `test_counts.npy` | test counts | in `SUDOKU_INSTANCE_DIR` |
| `test_bigq300.npz` | large-sample `q` for the hinge gate | `SUDOKU_GATE_Q` |
`SUDOKU_INSTANCE_DIR` is a **directory**. The loader opens
`{train,test}_{assignments,starts,counts}.npy` inside it.
Do **not** require `*_index.npy`, `*_meta.npy`, or `*_solution.npy`.
Typical places to look:
```
./data/
./Sudoku_superposition/data/
./datasets_superposition/ # rebuilt instances only
/tmp/sudoku_s12/ # masks on some cluster nodes
/tmp/sudoku_superposition/ # instances on some cluster nodes
```
```bash
find "$HOME" /tmp /scratch -name 'train_assignments.npy' 2>/dev/null
find "$HOME" /tmp /scratch -name 'train_cand_masks.npy' 2>/dev/null
find "$HOME" /tmp /scratch -name 'train_sudoku_puzzles.npy' 2>/dev/null
```
## If the files are already on disk (any path)
Point each variable at the file you found. Masks and puzzles can live in one
folder and instances in another.
```bash
export SUDOKU_TRAIN_PATH=/abs/path/train_sudoku_puzzles.npy
export SUDOKU_TEST_PATH=/abs/path/test_sudoku_puzzles.npy
export SUDOKU_TRAIN_CAND=/abs/path/train_cand_masks.npy
export SUDOKU_TEST_CAND=/abs/path/test_cand_masks.npy
export SUDOKU_INSTANCE_DIR=/abs/dir/that/contains/assignments_starts_counts
export SUDOKU_GATE_Q=/abs/path/test_bigq300.npz
# this directory (the one that contains train/ and run_experiment.sh)
bash run_experiment.sh
```
Or, if all 11 files are in one folder:
```bash
SUDOKU_DATA_DIR=/abs/path/to/that/folder bash run_experiment.sh
```
`run_experiment.sh` refuses to start if any required file is missing or empty.
## If the files are not on disk
```bash
pip install -U "huggingface_hub[hf_xet]"
huggingface-cli download Avra98/Sudoku_superposition \
--include "data/train_sudoku_puzzles.npy" \
--include "data/test_sudoku_puzzles.npy" \
--include "data/train_cand_masks.npy" \
--include "data/test_cand_masks.npy" \
--include "data/train_assignments.npy" \
--include "data/train_starts.npy" \
--include "data/train_counts.npy" \
--include "data/test_assignments.npy" \
--include "data/test_starts.npy" \
--include "data/test_counts.npy" \
--include "data/test_bigq300.npz" \
--local-dir ./Sudoku_superposition
SUDOKU_DATA_DIR=$PWD/Sudoku_superposition/data bash run_experiment.sh
```
## What each group is
- **Puzzles** — clue tokens and solver order. Not replaceable by instances.
- **Masks** — post-constraint set `S` after each of 12 solver waves. Premade; keep them even if you rebuilt instances.
- **Instances** — concrete boards sampled from those masks, plus `starts`/`counts` for O(1) lookup.
- **Gate** — `test_bigq300.npz` for the hinge promotion statistic.
If instances were rebuilt, keep the premade masks and set `SUDOKU_INSTANCE_DIR` to the new folder only.
## Trainer command (what the script runs)
```bash
python -m train.main --workdir=../runs/noise --exp_name=noise
```
Must be run from this directory so `train/` is a package. Needs
`jax flax optax ml_collections clu absl-py tensorflow wandb`.
Useful knobs: `SUDOKU_LATENT_NOISE=1`, `SUDOKU_MC_SAMPLES=8`,
`SUDOKU_LATENT_SLOTS=12`, `SUDOKU_AUX_WEIGHT=0`, `SUDOKU_START_STAGE=1`
(set `4` to skip early curriculum).
Do not run `data_gen/staged_candidate_gen.py` or
`data_gen/build_superposition_dataset.py` just to start training.
Those already produced the HF `data/` files.