From 82eeb53e5ce67ca3e017652b27cff0e027c54c95 Mon Sep 17 00:00:00 2001 From: Davide Cappellini Date: Thu, 20 Aug 2026 14:38:09 +0200 Subject: [PATCH] tune(training): 20-round chunks, 50 eval rounds, 30k total rounds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - generalist_train.sh: CHUNK_SIZE 60→20 for faster opponent cycling - generalist_train.sh: EVAL_ROUNDS 30→50 for more reliable eval - training.env: TRAINING_ROUNDS→30000, removed hardcoded opponent - warm_start.py: TARGET_DIM=57 (already committed, ensure latest) --- tools/training_runner/generalist_train.sh | 16 ++++++++++++++-- tools/training_runner/training.env | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tools/training_runner/generalist_train.sh b/tools/training_runner/generalist_train.sh index 6aa834e..3d9fbbc 100755 --- a/tools/training_runner/generalist_train.sh +++ b/tools/training_runner/generalist_train.sh @@ -53,9 +53,9 @@ SELFTEST_LOG="/tmp/generalist_sampling_selftest.log" # ── config (env-overridable) ────────────────────────────────────────────────── TOTAL_ROUNDS="${TOTAL_ROUNDS:-40000}" -CHUNK_SIZE="${CHUNK_SIZE:-60}" +CHUNK_SIZE="${CHUNK_SIZE:-20}" EVAL_INTERVAL="${EVAL_INTERVAL:-1000}" -EVAL_ROUNDS="${EVAL_ROUNDS:-30}" +EVAL_ROUNDS="${EVAL_ROUNDS:-50}" PASS_RATE="${PASS_RATE:-0.90}" FLOOR="${FLOOR:-0.05}" # minimum sampling weight — keeps maintenance sampling alive ALPHA="${ALPHA:-0.3}" # winrate EMA smoothing: new = ALPHA*old + (1-ALPHA)*eval @@ -302,6 +302,18 @@ main() { (cd "$SCRIPT_DIR" && javac -cp "$JAR" RunTraining.java) || { echo "ERROR: RunTraining compile failed" >&2; exit 1; } echo ">>> Compilation done." + # ── tmux-friendly session header ──────────────────────────────────────────── + echo "" + echo "┌─────────────────────────────────────────────────────────────────┐" + printf "│ Start time : %-48s│\n" "$(date '+%Y-%m-%d %H:%M:%S %Z')" + printf "│ Total rounds : %-48s│\n" "$TOTAL_ROUNDS" + printf "│ Chunk size : %-48s│\n" "$CHUNK_SIZE ($(( TOTAL_ROUNDS / CHUNK_SIZE )) chunks total)" + printf "│ Eval interval: %-48s│\n" "every $EVAL_INTERVAL rounds ($(( TOTAL_ROUNDS / EVAL_INTERVAL )) evals planned)" + printf "│ Eval rounds : %-48s│\n" "$EVAL_ROUNDS per opponent ($(( ${#OPPONENTS[@]} * EVAL_ROUNDS )) max wins)" + printf "│ Opponents : %-48s│\n" "${#OPPONENTS[@]} bots" + echo "└─────────────────────────────────────────────────────────────────┘" + echo "" + load_best load_wr persist_wr # materialize state now so an early crash still leaves a readable file diff --git a/tools/training_runner/training.env b/tools/training_runner/training.env index 2f1f76c..e098a64 100644 --- a/tools/training_runner/training.env +++ b/tools/training_runner/training.env @@ -1,5 +1,5 @@ -TRAINING_OPPONENT=Fire -TRAINING_ROUNDS=3000 +# TRAINING_OPPONENT=Fire +TRAINING_ROUNDS=30000 PPOB_LOG_FILE=/home/davide/Projects/SirRoboGarage/tools/training_runner/logs/fire_training.jsonl PPOB_LR=0.0003 PPOB_CLIP_EPSILON=0.2