Clean up Deep CFR config schema

Remove legacy aliases, rename max_hours to max_minutes, collapse the
four checkpoint save flags into save_every + save_latest, and change
defaults to safer values (opponent_policy=self_play_league,
device=auto, eval_every=50, max_depth=null). Migrate all archived
yaml configs and tests to the new schema.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-07 16:09:19 +09:00
co-authored by Claude Opus 4.7
parent c2b88d7c9c
commit a177031963
21 changed files with 257 additions and 367 deletions
+12 -16
View File
@@ -66,11 +66,9 @@ Short fixed-iteration run:
```bash
uv run lost-cities-deep-cfr train \
--config configs/deep_cfr/deep_cfr_selfplay_full_depth_slot_playability.yaml \
--set run.iterations=100 \
--set run.max_hours=null \
--set run.max_iterations=null \
--set checkpoint.save_latest_only=true \
--set checkpoint.save_every_iteration=false
--set run.max_iterations=100 \
--set run.max_minutes=null \
--set checkpoint.save_every=0
```
Use explicit run directories for experiments. Put Deep CFR runs under
@@ -95,17 +93,16 @@ Useful train controls:
- `--resume PATH`: resume from a specific checkpoint.
- `--set PATH=VALUE`: override config fields. It is repeatable and parses
values as YAML, e.g. `--set traversal.num_workers=4` or
`--set run.max_hours=null`.
`--set run.max_minutes=null`.
Common `--set` overrides:
- `--set run.device=cuda`: set the trainer device.
- `--set checkpoint.exact_resume=true`: require checkpoint config compatibility.
- `--set checkpoint.save_latest=false --set checkpoint.save_every_iteration=false
--set checkpoint.save_iteration_interval=0`: disable checkpoint writes.
- `--set checkpoint.save_latest_only=true --set checkpoint.save_every_iteration=false`:
keep only `latest.pt`.
- `--set checkpoint.save_iteration_interval=N`: archive every N iterations.
- `--set checkpoint.save_latest=false --set checkpoint.save_every=0`:
disable checkpoint writes.
- `--set checkpoint.save_every=0`: keep only `latest.pt` (no archives).
- `--set checkpoint.save_every=N`: archive every N iterations.
## Long Runs
@@ -149,16 +146,15 @@ The unbounded config intentionally has:
```yaml
run:
iterations: null
max_iterations: null
max_hours: null
max_minutes: null
checkpoint:
save_iteration_interval: 100
save_every: 100
```
`latest.pt` is updated continuously; archive checkpoints are written every 100
iterations. If disk is tight, prefer `--set checkpoint.save_latest_only=true` or
increase `save_iteration_interval`.
iterations. If disk is tight, set `--set checkpoint.save_every=0` (keep only
`latest.pt`) or increase `save_every`.
## Evaluation And Analysis