Auto-derive run dir from experiment_name + timestamp

Drop checkpoint.directory from config — config defines what an experiment
is, not where its outputs go. The CLI now computes the run directory from
run.experiment_name plus a timestamp, defaulting to runs/tmp/ for
throwaway runs and runs/ when --keep is passed.

- Remove CheckpointConfig.directory and DeepCFRConfig.checkpoint_path
- DeepCFRTrainer takes run_dir: Path explicitly
- CLI: add --keep boolean; --resume requires an explicit path (no shortcut)
- Auto path: runs/[tmp/]<YYYY-MM-DD_HHMMSS>_<experiment_name-kebab>/
- Rename 13 configs to kebab-case; strip directory: lines; kebab their
  experiment_name values
- Rewrite AGENTS.md training/run sections; document
  archive/tmp/<flat> layout, --keep, kebab-case scope
- Update tests for new run_dir flow and dropped --resume shortcut

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-07 16:32:44 +09:00
co-authored by Claude Opus 4.7
parent a177031963
commit acb664c873
19 changed files with 144 additions and 143 deletions
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_color_shared_512x3
experiment_name: lost-cities-deep-cfr-color-shared-512x3
seed: 42
max_iterations: 10000
max_minutes: null
@@ -85,7 +85,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_color_shared_512x3
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_color_shared_attention_512x3
experiment_name: lost-cities-deep-cfr-color-shared-attention-512x3
seed: 42
max_iterations: 10000
max_minutes: null
@@ -85,7 +85,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_color_shared_attention_512x3
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_color_shared_attention_1000iter
experiment_name: lost-cities-deep-cfr-color-shared-attention-1000iter
seed: 42
max_iterations: 1000
max_minutes: null
@@ -85,7 +85,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_color_shared_attention_exp_1000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_opponent_average_strategy_512x3_1000iter
experiment_name: lost-cities-deep-cfr-opponent-average-strategy-512x3-1000iter
seed: 79
max_iterations: 1000
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_opponent_average_strategy_512x3_1000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_opponent_network_1024x4_1000iter
experiment_name: lost-cities-deep-cfr-opponent-network-1024x4-1000iter
seed: 79
max_iterations: 1000
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_opponent_network_1024x4_1000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_opponent_network_512x3_1000iter
experiment_name: lost-cities-deep-cfr-opponent-network-512x3-1000iter
seed: 79
max_iterations: 1000
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_opponent_network_512x3_1000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_pure_selfplay_full_depth_slot_playability_512x3_2x_updates_10000iter
experiment_name: lost-cities-deep-cfr-pure-selfplay-full-depth-slot-playability-512x3-2x-updates-10000iter
seed: 79
max_iterations: 10000
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_pure_selfplay_full_depth_slot_playability_512x3_2x_updates_10000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_selfplay_anchor_safe_512x3_2x_updates_10000iter
experiment_name: lost-cities-deep-cfr-selfplay-anchor-safe-512x3-2x-updates-10000iter
seed: 79
max_iterations: 10000
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_selfplay_anchor_safe_512x3_2x_updates_10000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_selfplay_full_depth_slot_playability_512x3_2x_updates_10000iter
experiment_name: lost-cities-deep-cfr-selfplay-full-depth-slot-playability-512x3-2x-updates-10000iter
seed: 79
max_iterations: 10000
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_selfplay_full_depth_slot_playability_512x3_2x_updates_10000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_selfplay_full_depth_slot_playability_512x3_lcfr_10000iter
experiment_name: lost-cities-deep-cfr-selfplay-full-depth-slot-playability-512x3-lcfr-10000iter
seed: 79
max_iterations: 10000
max_minutes: null
@@ -83,7 +83,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_selfplay_full_depth_slot_playability_512x3_lcfr_10000iter
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_selfplay_full_depth_slot_playability_512x3_unbounded
experiment_name: lost-cities-deep-cfr-selfplay-full-depth-slot-playability-512x3-unbounded
seed: 79
max_iterations: null
max_minutes: null
@@ -82,7 +82,6 @@ memory:
strategy_capacity: 2000000
checkpoint:
directory: runs/deep_cfr/deep_cfr_selfplay_full_depth_slot_playability_512x3_unbounded
save_latest: true
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_selfplay_full_depth_slot_playability_unbounded
experiment_name: lost-cities-deep-cfr-selfplay-full-depth-slot-playability-unbounded
seed: 79
max_iterations: null
max_minutes: null
@@ -86,6 +86,5 @@ evaluation:
- noisy_safe
checkpoint:
directory: runs/deep_cfr/deep_cfr_selfplay_full_depth_slot_playability_unbounded
save_every: 100
progress_interval_seconds: 20.0
@@ -1,5 +1,5 @@
run:
experiment_name: lost_cities_deep_cfr_selfplay_full_depth_slot_playability
experiment_name: lost-cities-deep-cfr-selfplay-full-depth-slot-playability
seed: 79
max_iterations: null
max_minutes: 240
@@ -86,6 +86,5 @@ evaluation:
- noisy_safe
checkpoint:
directory: runs/deep_cfr/deep_cfr_selfplay_full_depth_slot_playability
save_every: 10
progress_interval_seconds: 20.0
+1 -1
View File
@@ -1,4 +1,5 @@
run:
experiment_name: smoke
max_iterations: 1
seed: 1
device: cpu
@@ -25,7 +26,6 @@ memory:
strategy_capacity: 1000
checkpoint:
directory: runs/deep_cfr/smoke
save_every: 0
save_latest: false