Bump avg-strategy 1000iter config: traversals 4x, LR 3e-5→1e-4, LCFR, lighter eval

Apply consultant + review recommendations to address training-budget
shortfall and underutilized weighting:

- traversal.traversals_per_player: 70 → 280 (4× sample touches/iter to
  reduce regret estimate variance early)
- optimization.learning_rate: 3e-5 → 1e-4 (was too low for the 512×1024
  updates schedule)
- training_weighting.mode: none → lcfr (faster convergence; alpha/beta/
  gamma fields are inert with mode=none)
- evaluation.eval_every: 5 → 25 (eval was costing more wall-clock than
  training; 6 opponents × 100 games × 200 evals adds up)
- Drop accidental duplicate keys in traversal/optimization sections
  (YAML last-wins, harmless but confusing)

Wall-clock estimate ~13h on the existing setup. If results clearly
improve, consider 8× traversals (560) as a follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-07 16:40:32 +09:00
co-authored by Claude Opus 4.7
parent acb664c873
commit bac630b50b
@@ -26,10 +26,8 @@ network:
activation: relu activation: relu
traversal: traversal:
traversals_per_player: 2 traversals_per_player: 280
traversals_per_player: 70
max_depth: null max_depth: null
max_nodes_per_traversal: 10000
max_nodes_per_traversal: 1000 max_nodes_per_traversal: 1000
regret_matching_epsilon: 0.0001 regret_matching_epsilon: 0.0001
outcome_sampling_epsilon: 0.2 outcome_sampling_epsilon: 0.2
@@ -44,7 +42,6 @@ traversal:
store_strategy_on_traverser_nodes: true store_strategy_on_traverser_nodes: true
store_strategy_on_opponent_nodes: false store_strategy_on_opponent_nodes: false
num_workers: 8 num_workers: 8
worker_chunk_size: 4
worker_chunk_size: 8 worker_chunk_size: 8
progress_every_traversals: 10 progress_every_traversals: 10
endpoint_depth_bucket_width: 100 endpoint_depth_bucket_width: 100
@@ -54,7 +51,7 @@ regret_matching:
all_negative_fallback: argmax_tiebreak all_negative_fallback: argmax_tiebreak
training_weighting: training_weighting:
mode: none mode: lcfr
self_play: self_play:
snapshot_every: 1 snapshot_every: 1
@@ -67,13 +64,11 @@ self_play:
recent_window: 5 recent_window: 5
optimization: optimization:
advantage_updates_per_iteration: 1
strategy_updates_per_iteration: 1
advantage_batch_size: 1024
strategy_batch_size: 1024
advantage_updates_per_iteration: 512 advantage_updates_per_iteration: 512
strategy_updates_per_iteration: 512 strategy_updates_per_iteration: 512
learning_rate: 0.00003 advantage_batch_size: 1024
strategy_batch_size: 1024
learning_rate: 1.0e-4
weight_decay: 0.0001 weight_decay: 0.0001
grad_clip: 1.0 grad_clip: 1.0
@@ -88,7 +83,7 @@ checkpoint:
exact_resume: false exact_resume: false
evaluation: evaluation:
eval_every: 5 eval_every: 25
games: 100 games: 100
opponents: opponents:
- random - random