Skip to content

XLRON v1.5.0

Choose a tag to compare

@micdoh micdoh released this 12 Jul 00:07

RL-algorithm correctness for VTrace + prioritized replay, unbiased load sweeps, blocking-cause diagnostics, unified configuration defaults, and GNN support for VONE and RMSA-GN launch-power training.

Training correctness

  • VTrace + prioritized replay (#50): advantages and value targets are now computed on the temporally-ordered rollout before prioritized resampling (mirroring the GAE flow), so the reverse-time scan no longer runs over randomly resampled transitions. Also fixes a bootstrap bug affecting all VTrace runs: the final transition of every minibatch chunk previously self-bootstrapped on its own value instead of V(s_{T+1}). Importance ratios refresh once per update epoch; VTrace minibatches are now shuffled. Any prior results using PRIO_ALPHA>0 together with RHO_CLIP/C_CLIP>0 should be considered invalid; all VTrace runs get a corrected bootstrap.
  • Load sweeps re-equilibrate (#51): sweeping --load now re-runs the warmup at each swept load and resets the cumulative metric counters, so per-load steady-state metrics no longer inherit state equilibrated at the original load. Sweep runs take proportionally longer; per-load blocking metrics change (previously biased).

Diagnostics

  • Blocking-cause breakdown for GN-model envs (#52): new counters splitting blocked requests into spectrum-blocked vs SNR-blocked vs power-blocked, exposed in step info, aggregated by the LogWrapper, registered in wandb, zeroed correctly after warmup, and documented in docs/gn_model.md. Costs nothing on the hot path (reuses the existing acceptance-check results).

Configuration

  • Single source of truth for defaults (#53): dict-config callers (tests, library users bypassing absl) now get the same defaults as the CLI — process_config layers user config over a defaults dict derived from the flag registry in parameter_flags.py. Every previously-divergent key is enumerated in the PR. CLI behavior is unchanged.

Models

  • VONE + GNN (#54): the GNN node embedder is sized from the same env-type-aware rule the env uses to build graph node features (VONE carries an extra node-capacity feature), fixing the trace-time crash; graph construction and forward pass are regression-tested through the real env path.
  • RMSA-GN launch-power RL (#55): launch_power_type=rl now trains end-to-end on rmsa_gn_model too — the PPO loss tuple handling is gated on GN-model env types rather than the exact string rsa_gn_model, with subprocess smoke tests covering both env variants and both power heads.

Full changelog: v1.4.0...v1.5.0