From be4f9932b0c1fc3190f6852720c1e95df2db0872 Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Mon, 20 Apr 2026 22:49:00 +0200 Subject: [PATCH] =?UTF-8?q?cleanup(fflag):=20delete=20dead=20use=5Fnoisy?= =?UTF-8?q?=5Fnets=20+=20use=5Fdistributional=20=E2=80=94=20[FFLAG-013a]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GpuExperienceCollectorConfig.use_noisy_nets and use_distributional were both declared with "always enabled" comments on their default=true setters. Zero conditional readers anywhere — the GPU kernel always runs NoisyNet exploration and C51 distributional RL. Deleted fields + defaults + training_loop setters. Kept noisy_sigma_init, num_atoms, v_min, v_max since those are read. enable_action_masking left for human review — has real gating chain across collector config + trainer struct + training loop. --- crates/ml/src/cuda_pipeline/gpu_experience_collector.rs | 6 ------ crates/ml/src/trainers/dqn/trainer/training_loop.rs | 2 -- 2 files changed, 8 deletions(-) diff --git a/crates/ml/src/cuda_pipeline/gpu_experience_collector.rs b/crates/ml/src/cuda_pipeline/gpu_experience_collector.rs index c3bc6126f..d1e56dfba 100644 --- a/crates/ml/src/cuda_pipeline/gpu_experience_collector.rs +++ b/crates/ml/src/cuda_pipeline/gpu_experience_collector.rs @@ -200,12 +200,8 @@ pub struct ExperienceCollectorConfig { pub q_clip_max: f32, /// Huber loss kappa for TD error (robust priority). 0.0 = disabled (raw L1). pub huber_kappa: f32, - /// D5: Whether to use NoisyNet exploration in the GPU kernel - pub use_noisy_nets: bool, /// D5: Initial noise std dev for NoisyNet (Rainbow DQN default: 0.5) pub noisy_sigma_init: f32, - /// D6: Whether to use C51 distributional RL - pub use_distributional: bool, /// D6: Number of atoms in C51 distribution (default: 51) pub num_atoms: i32, /// D6: Minimum value support for C51 (default: -50.0) @@ -357,9 +353,7 @@ impl Default for ExperienceCollectorConfig { q_clip_min: -200.0, // Reward v6: tighter than old -500 but covers v_range + safety margin q_clip_max: 200.0, huber_kappa: 0.0, - use_noisy_nets: true, // Rainbow DQN: NoisyNet exploration always enabled noisy_sigma_init: 0.5, - use_distributional: true, // Rainbow DQN: C51 distributional RL always enabled num_atoms: 51, // C51 standard atom count // v_min/v_max: tight support for 16× atom resolution (delta_z=0.6 vs 9.6) v_min: -15.0, diff --git a/crates/ml/src/trainers/dqn/trainer/training_loop.rs b/crates/ml/src/trainers/dqn/trainer/training_loop.rs index af72a99c2..877abdd45 100644 --- a/crates/ml/src/trainers/dqn/trainer/training_loop.rs +++ b/crates/ml/src/trainers/dqn/trainer/training_loop.rs @@ -1285,9 +1285,7 @@ impl DQNTrainer { } else { 0.0 }, - use_noisy_nets: true, noisy_sigma_init: self.hyperparams.noisy_sigma_init as f32, - use_distributional: true, num_atoms: self.hyperparams.num_atoms as i32, v_min: self.hyperparams.v_min as f32, v_max: self.hyperparams.v_max as f32,