| --- |
| license: mit |
| library_name: jax |
| pipeline_tag: reinforcement-learning |
| tags: |
| - reinforcement-learning |
| - planning |
| - discrete-diffusion |
| - remdm |
| - craftax |
| - jax |
| - flax |
| - orbax |
| --- |
| |
| # ReMDM Planner: Craftax checkpoints |
|
|
| Trained weights accompanying *The Double Intractability of Reinforcement Learning for Discrete Diffusion Planners*: a remasking discrete diffusion model |
| (ReMDM) used as an action-sequence planner in |
| [Craftax](https://github.com/MichaelTMatthews/Craftax), together with the |
| PPO-RNN experts that supervise it, and the results reported in the paper. |
|
|
| Code, configs and evaluation harness: https://github.com/mathisweil/craftax-ReMDM-planner |
|
|
| ## Contents |
|
|
| | Path | Role | Environment | Architecture | Selected at | Training | Size | |
| |---|---|---|---|---|---|---| |
| | `checkpoints/offline/Craftax-Classic-Symbolic-v1-Offline-Diffusion-BC-100M` | Diffusion planner (offline BC) | `Craftax-Classic-Symbolic-v1` | 6L, d_model 384, 8 heads, horizon 32 | 1,000,000,000 | 97,600 grad steps | 97 MB | |
| | `checkpoints/online/Craftax-Classic-Symbolic-v1-Online-Diffusion-DAgger-100M` | Diffusion planner (online DAgger) | `Craftax-Classic-Symbolic-v1` | 6L, d_model 384, 8 heads, horizon 32 | 100,000,000 | 97,600 grad steps | 97 MB | |
| | `checkpoints/ppo_agents/Craftax-Classic-Symbolic-v1-PPO_RNN-1000M` | PPO-RNN expert | `Craftax-Classic-Symbolic-v1` | RNN, layer size 512 | 1,000,000,000 | 1e+09 frames | 35 MB | |
| | `checkpoints/ppo_agents/Craftax-Symbolic-v1-PPO_RNN-1000M` | PPO-RNN expert | `Craftax-Symbolic-v1` | RNN, layer size 512 | 1,000,000,000 | 1e+09 frames | 50 MB | |
|
|
| Each diffusion checkpoint ships a `resume_metadata.json` holding the full |
| config snapshot it was trained under; each PPO expert ships `config.yaml` and |
| `wandb-summary.json` (final training metrics). |
|
|
| Weights are [Orbax](https://orbax.readthedocs.io) checkpoint directories |
| (OCDBT format), not `safetensors` — the models are Flax modules restored via |
| `orbax.checkpoint`, and the paths above mirror the source repository so a |
| snapshot can be dropped straight into a working copy. |
|
|
| ## Results |
|
|
| RL fine-tuning ablation runs, as produced by `experiments/rl_finetuning/run_ablations.py`. Each run ships its `results.json` summary, the `diagnosis.md` write-up, and the tables (`.csv` and `.tex`) and figures generated from it. |
|
|
| | Run | Contents | Size | |
| |---|---|---| |
| | `experiments/rl_finetuning/outputs/craftax_classic_ablations` | `results.json`, `diagnosis.md`, 19 tables, 114 figures | 41 MB | |
|
|
| Evaluation results produced by `main.py --mode inference` on the checkpoints above, under `results/inference/`. |
|
|
| | File | Environment | Evaluation | Headline metric | Size | |
| |---|---|---|---|---| |
| | `eval_classic_bc_s0.json` | `Craftax-Classic-Symbolic-v1` | 256 envs x 10000 steps | mean score 4.15 | 1 KB | |
| | `eval_classic_dagger_s0.json` | `Craftax-Classic-Symbolic-v1` | 256 envs x 10000 steps | mean score 2.72 | 1 KB | |
|
|
| ## Download |
|
|
| ```python |
| from huggingface_hub import snapshot_download |
| |
| # everything (~320 MB) |
| snapshot_download(repo_id="mathisweil/remdm-craftax-checkpoints", local_dir=".") |
| |
| # a single model |
| snapshot_download( |
| repo_id="mathisweil/remdm-craftax-checkpoints", |
| local_dir=".", |
| allow_patterns="checkpoints/offline/Craftax-Classic-Symbolic-v1-Offline-Diffusion-BC-100M/**", |
| ) |
| ``` |
|
|
| ## Use |
|
|
| From a clone of the code repository, after downloading into it: |
|
|
| ```bash |
| uv run python main.py --mode inference \ |
| --checkpoint checkpoints/offline/Craftax-Classic-Symbolic-v1-Offline-Diffusion-BC-100M \ |
| --output results/inference/eval.json |
| ``` |
|
|
| Programmatic loading uses `src.planners.model.load_checkpoint` for the |
| diffusion planners and `src.planners.ppo.load_ppo_agent` for the experts; both |
| take the checkpoint directory path and restore the latest step. Architecture |
| arguments should be read from the checkpoint's own `resume_metadata.json` |
| rather than hardcoded. |
|
|
| ## Training |
|
|
| The diffusion planners are bidirectional transformers that denoise a masked |
| action plan conditioned on the symbolic observation, trained either by offline |
| behaviour cloning on PPO rollouts or by online DAgger against the PPO expert. |
| Model size and horizon differ per run (see the table); the PPO-RNN experts are |
| the Craftax baselines. Exact hyperparameters for every run, including the |
| remasking strategy, schedule and sampling settings, are in the per-checkpoint |
| metadata files listed above, which are the authoritative record. |
|
|
| Directory names encode the environment and the total environment timesteps the |
| run was trained for. `Selected at` is whatever each run used as its Orbax step |
| counter, which is environment frames for the runs published here. |
|
|
| ## Limitations |
|
|
| These are research artefacts tied to specific Craftax versions and symbolic |
| observation encodings; they are not general-purpose agents and will not |
| transfer to other environments or to pixel observations. Evaluation results and |
| their variance are reported in the paper. |
|
|
| ## Citation |
|
|
| ```bibtex |
| @inproceedings{remdm-craftax-planner, |
| title = {The Double Intractability of Reinforcement Learning for Discrete Diffusion Planners}, |
| author = {Weil, Mathis}, |
| year = {2026}, |
| note = {NeurIPS 2026 Workshop: Beyond Next-Token Prediction} |
| } |
| ``` |
|
|
| ## License |
|
|
| MIT, see `LICENSE`. |
|
|