mathisweil commited on
Commit
ea679b7
·
verified ·
1 Parent(s): 7688292

Upload MiniHack ReMDM planner checkpoints and results

Browse files
Files changed (1) hide show
  1. README.md +15 -18
README.md CHANGED
@@ -17,7 +17,7 @@ tags:
17
  Trained weights accompanying *The Double Intractability of Reinforcement Learning for Discrete Diffusion Planners*: a remasking discrete diffusion model
18
  (ReMDM) used as an action-sequence planner in
19
  [MiniHack](https://github.com/facebookresearch/minihack), together with the BFS
20
- oracle rollouts that supervise it.
21
 
22
  Code, configs and evaluation harness: https://github.com/mathisweil/minihack-ReMDM-planner
23
 
@@ -26,7 +26,7 @@ Code, configs and evaluation harness: https://github.com/mathisweil/minihack-ReM
26
  | Path | Role | Environment | Architecture | Selected at | Training | Size |
27
  |---|---|---|---|---|---|---|
28
  | `checkpoints/offline/Minihack-Offline-Diffusion-BC-100M` | Diffusion planner (offline BC) | `MiniHack` | 4L, d_model 256, 4 heads, horizon 64, 5M params | gradient step 50,000 | 102,400,000 sample-equivalents | 100 MB |
29
- | `checkpoints/online/Minihack-Online-Diffusion-DAgger-6M` | Diffusion planner (online DAgger) | `MiniHack` | 4L, d_model 256, 4 heads, horizon 64, 5M params | iteration 563 | 5,654,965 env steps | 100 MB |
30
 
31
  Each checkpoint ships the `.pth` training state it was published from (weights,
32
  EMA shadow, optimiser, scheduler, and for the DAgger run the curriculum and RNG
@@ -38,9 +38,6 @@ Weights are PyTorch training states with a `safetensors` export of the EMA
38
  weights alongside, and the paths above mirror the source repository so a
39
  snapshot can be dropped straight into a working copy.
40
 
41
- `results/` holds the evaluation and ablation tables reported in the paper, as
42
- produced by `experiments/rl_finetuning`. Figures and raw logs stay in the code
43
- repository.
44
 
45
  ## Download
46
 
@@ -54,7 +51,7 @@ snapshot_download(repo_id="mathisweil/remdm-minihack-checkpoints", local_dir="."
54
  snapshot_download(
55
  repo_id="mathisweil/remdm-minihack-checkpoints",
56
  local_dir=".",
57
- allow_patterns="checkpoints/online/Minihack-*/**",
58
  )
59
  ```
60
 
@@ -63,9 +60,10 @@ snapshot_download(
63
  From a clone of the code repository, after downloading into it:
64
 
65
  ```bash
66
- DIR=checkpoints/online/Minihack-OnlineDiffusion-DAgger-123M
67
  uv run python main.py --mode inference \
68
- --config $DIR/config_iter600.yaml --checkpoint $DIR/iter600.pth
 
69
  ```
70
 
71
  Programmatic loading uses `src.models.denoiser.make_model` with the checkpoint's
@@ -76,9 +74,9 @@ from safetensors.torch import load_file
76
  from src.config import load_config
77
  from src.models.denoiser import make_model
78
 
79
- cfg = load_config(f"{DIR}/config_iter600.yaml")
80
  model = make_model(cfg)
81
- model.load_state_dict(load_file(f"{DIR}/model.safetensors"))
82
  model.eval()
83
  ```
84
 
@@ -97,14 +95,13 @@ strategy, schedule and sampling settings, are in the per-checkpoint config
97
  snapshots listed above, which are the authoritative record.
98
 
99
  Both models are best-checkpoint selections rather than final-step dumps: each
100
- trainer evaluates every periodic checkpoint on 50 episodes per environment
101
- using EMA weights, and the highest-scoring one is published (the metric behind that selection is not recorded in this release).
102
- Directory names encode the sample-equivalents the published model consumed
103
- (gradient steps x batch size, rounded); file names carry each trainer's own
104
- counter, DAgger iterations online and gradient steps offline. The offline run
105
- was given the DAgger-matched budget of 60,000 gradient steps and its best
106
- checkpoint fell at 40,000, so the two published models sit at different points
107
- on a matched budget.
108
 
109
  ## Limitations
110
 
 
17
  Trained weights accompanying *The Double Intractability of Reinforcement Learning for Discrete Diffusion Planners*: a remasking discrete diffusion model
18
  (ReMDM) used as an action-sequence planner in
19
  [MiniHack](https://github.com/facebookresearch/minihack), together with the BFS
20
+ oracle rollouts that supervise it, and the results reported in the paper.
21
 
22
  Code, configs and evaluation harness: https://github.com/mathisweil/minihack-ReMDM-planner
23
 
 
26
  | Path | Role | Environment | Architecture | Selected at | Training | Size |
27
  |---|---|---|---|---|---|---|
28
  | `checkpoints/offline/Minihack-Offline-Diffusion-BC-100M` | Diffusion planner (offline BC) | `MiniHack` | 4L, d_model 256, 4 heads, horizon 64, 5M params | gradient step 50,000 | 102,400,000 sample-equivalents | 100 MB |
29
+ | `checkpoints/online/Minihack-Online-Diffusion-DAgger-100M` | Diffusion planner (online DAgger) | `MiniHack` | 4L, d_model 256, 4 heads, horizon 64, 5M params | iteration 563 | 5,654,965 env steps | 100 MB |
30
 
31
  Each checkpoint ships the `.pth` training state it was published from (weights,
32
  EMA shadow, optimiser, scheduler, and for the DAgger run the curriculum and RNG
 
38
  weights alongside, and the paths above mirror the source repository so a
39
  snapshot can be dropped straight into a working copy.
40
 
 
 
 
41
 
42
  ## Download
43
 
 
51
  snapshot_download(
52
  repo_id="mathisweil/remdm-minihack-checkpoints",
53
  local_dir=".",
54
+ allow_patterns="checkpoints/offline/Minihack-Offline-Diffusion-BC-100M/**",
55
  )
56
  ```
57
 
 
60
  From a clone of the code repository, after downloading into it:
61
 
62
  ```bash
63
+ DIR=checkpoints/offline/Minihack-Offline-Diffusion-BC-100M
64
  uv run python main.py --mode inference \
65
+ --config $DIR/config.yaml --checkpoint $DIR/offline_step50000.pth \
66
+ --output results/inference/eval.json
67
  ```
68
 
69
  Programmatic loading uses `src.models.denoiser.make_model` with the checkpoint's
 
74
  from src.config import load_config
75
  from src.models.denoiser import make_model
76
 
77
+ cfg = load_config("checkpoints/offline/Minihack-Offline-Diffusion-BC-100M/config.yaml")
78
  model = make_model(cfg)
79
+ model.load_state_dict(load_file("checkpoints/offline/Minihack-Offline-Diffusion-BC-100M/model.safetensors"))
80
  model.eval()
81
  ```
82
 
 
95
  snapshots listed above, which are the authoritative record.
96
 
97
  Both models are best-checkpoint selections rather than final-step dumps: each
98
+ trainer evaluates every periodic checkpoint on its configured number of
99
+ episodes per environment using EMA weights, and the highest-scoring one is
100
+ published (the metric behind that selection is not recorded in this release). Directory names encode the sample-equivalents the
101
+ published model consumed (gradient steps x batch size, rounded); file names
102
+ carry each trainer's own counter, DAgger iterations online and gradient steps
103
+ offline. Each checkpoint's `selection.json` records the configured budget it
104
+ was drawn from and the step it was selected at.
 
105
 
106
  ## Limitations
107