|
Download README.md from djmango/openfront-rl: direct link, hf CLI and curl.
- Browser
- Download file 4.17 kB
-
https://huggingface.co/djmango/openfront-rl/resolve/main/README.md
- Command line
-
hf download hf://djmango/openfront-rl/README.md
-
curl -L -o README.md https://huggingface.co/djmango/openfront-rl/resolve/main/README.md
4.17 kB
| license: mit | |
| library_name: safetensors | |
| tags: | |
| - reinforcement-learning | |
| - ppo | |
| - openfront | |
| - game-ai | |
| - pytorch | |
| language: [] | |
| pipeline_tag: reinforcement-learning | |
| # openfront-rl | |
| PPO policy checkpoints for a self-play agent on | |
| [OpenFront.io](https://openfront.io), trained with the Rust `oftrain` stack in | |
| [djmango/openfront-ai](https://github.com/djmango/openfront-ai). | |
| Encoders used by these policies live in a sibling repo: | |
| [`djmango/openfront-tile-autoencoder`](https://huggingface.co/djmango/openfront-tile-autoencoder). | |
| ## Latest (use this) | |
| | Field | Value | | |
| |-------|-------| | |
| | **Run** | `ppo_v11` | | |
| | **Pointer** | [`ppo_v11/latest.safetensors`](ppo_v11/latest.safetensors) + [`ppo_v11/latest.state.json`](ppo_v11/latest.state.json) + [`ppo_v11/manifest.json`](ppo_v11/manifest.json) | | |
| | **Update** | **2486** (milestone file `policy_update2485.*` is the last numbered snapshot; `latest` is one step ahead) | | |
| | **Curriculum stage** | 23 | | |
| | **Approx. env steps** | 16.2M | | |
| | **Reward / schedule** | `v10-anti-spiral-v1` / curriculum `v10` | | |
| | **Weights size** | ~154 MB (safetensors) | | |
| Download the current policy: | |
| ```bash | |
| huggingface-cli download djmango/openfront-rl \ | |
| ppo_v11/latest.safetensors \ | |
| ppo_v11/latest.state.json \ | |
| ppo_v11/manifest.json \ | |
| --local-dir ./ppo_v11 | |
| ``` | |
| Or from the trainer / play scripts (they already default to this repo): | |
| ```bash | |
| # restore into a checkpoint dir (validates manifest) | |
| uv run python scripts/hf_checkpoint_sync.py \ | |
| --checkpoint-dir rust/checkpoints/ppo_v11 \ | |
| --run-prefix ppo_v11 \ | |
| --restore-latest | |
| # live play helper | |
| RUN_NAME=ppo_v11 bash scripts/play_live.sh | |
| ``` | |
| Always prefer **`ppo_v11/latest.*`** over digging through numbered milestones. | |
| `manifest.json` is the compatibility gate (`format=oftrain-safetensors`). | |
| ## Layout | |
| ``` | |
| ppo_v11/ # current training run | |
| latest.safetensors # ← production pointer | |
| latest.state.json | |
| manifest.json # architecture + AE refs + update/stage | |
| policy_updateNNNN.* # thinned milestone history | |
| curriculum_advance_*.* # snapshots at stage promotions | |
| curriculum_demote_*.* # snapshots at stage demotions | |
| ppo_v10/ … ppo_v81/ # prior runs: latest.* + manifest only | |
| ``` | |
| Older dense `policy_update*` histories (every ~5 updates) were pruned — | |
| adjacent milestones are nearly identical for most uses. Kept history for | |
| `ppo_v11` is every 100 updates, plus every 25 in the most recent ~200 updates, | |
| plus all curriculum advance/demote snapshots. | |
| ## Architecture (from `manifest.json`) | |
| - **Policy:** `oftrain-policy` schema v3 — spatial grid tower + player/unit | |
| streams, legality-masked discrete actions (full OpenFront intent surface). | |
| - **Recurrent:** LSTM (`hidden_size=512`, BPTT 24 / rollout 48), | |
| `action-outcome-v1` context, reset on `episode_done`. | |
| - **Observation:** frozen tile autoencoders (`ae_v32_nostatic` fine 1/8 + | |
| coarse 1/16) with exact-state bypass (diplomacy, scalars, transients). | |
| - **Training:** PPO + GAE, win-gated multi-map curriculum, native engine | |
| (Node hedge optional). | |
| See the living design notes in the git repo: | |
| [`DESIGN.md`](https://github.com/djmango/openfront-ai/blob/master/DESIGN.md). | |
| ## Prior runs | |
| | Run | Role | What remains here | | |
| |-----|------|-------------------| | |
| | `ppo_v11` | **Current** | latest + thinned milestones + curriculum snapshots | | |
| | `ppo_v10` | Previous mainline | `latest.*` + `manifest.json` only | | |
| | `ppo_v9`, `ppo_v86`…`ppo_v81` | Lineage / ablations | `latest.*` + `manifest.json` only | | |
| | Early `ppo_v*` / `bc_*` | Legacy | removed in the HF cleanup (recoverable from git LFS/history only if re-uploaded) | | |
| ## Retention | |
| Going forward, training pods should not re-flood the Hub with every-5-update | |
| milestones. Use `scripts/hf_prune_openfront_rl.py` after large syncs, and prefer | |
| syncing `latest.*` / `manifest.json` / curriculum markers plus sparse | |
| milestones. | |
| ## License / credit | |
| MIT, matching [djmango/openfront-ai](https://github.com/djmango/openfront-ai). | |
| OpenFront itself is a separate project — this repo only hosts learned weights | |
| and trainer metadata. | |