diff --git a/config/training/dqn-localdev.toml b/config/training/dqn-localdev.toml index d66883c6e..5d814637b 100644 --- a/config/training/dqn-localdev.toml +++ b/config/training/dqn-localdev.toml @@ -90,7 +90,7 @@ causal_weight = 0.1 causal_intervention_interval = 10 adversarial_warmup_epochs = 50 adversarial_checkpoint_interval = 50 -bottleneck_dim = 0 +bottleneck_dim = 16 stochastic_depth_prob = 0.2 asymmetric_dd_weight = 0.5 time_reversal_mod = 5 diff --git a/config/training/dqn-production.toml b/config/training/dqn-production.toml index d3a060df5..2720654a1 100644 --- a/config/training/dqn-production.toml +++ b/config/training/dqn-production.toml @@ -106,7 +106,7 @@ causal_weight = 0.1 causal_intervention_interval = 10 adversarial_warmup_epochs = 50 adversarial_checkpoint_interval = 50 -bottleneck_dim = 0 +bottleneck_dim = 16 stochastic_depth_prob = 0.2 asymmetric_dd_weight = 0.5 time_reversal_mod = 5 diff --git a/config/training/dqn-smoketest.toml b/config/training/dqn-smoketest.toml index 54a2fbc5f..b90d8615d 100644 --- a/config/training/dqn-smoketest.toml +++ b/config/training/dqn-smoketest.toml @@ -101,7 +101,7 @@ time_reversal_mod = 10 # 10% reversed vs production 20% position_entropy_weight = 0.02 causal_weight = 0.05 # Half of production causal_intervention_interval = 50 # Less frequent than production (10) -bottleneck_dim = 0 # Disabled for smoketest (tiny network can't afford bottleneck) +bottleneck_dim = 16 # 16D bottleneck — 8× more market feature info for all branches adversarial_warmup_epochs = 100 # Beyond smoketest duration (don't activate saboteur) adversarial_checkpoint_interval = 100 pruning_epoch = 100 # Beyond 50-epoch test (don't prune tiny network) diff --git a/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs b/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs index 655c5d740..7832de37c 100644 --- a/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs +++ b/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs @@ -269,7 +269,7 @@ impl Default for GpuDqnTrainConfig { causal_weight: 0.1, causal_intervention_interval: 50, enable_gradient_vaccine: true, // always on - bottleneck_dim: 2, + bottleneck_dim: 16, market_dim: 42, // Default: 42 base features. Overridden to 50 when OFI (MBP-10) enabled. } } diff --git a/crates/ml/src/trainers/dqn/config.rs b/crates/ml/src/trainers/dqn/config.rs index 4b058d35f..29c3e27c3 100644 --- a/crates/ml/src/trainers/dqn/config.rs +++ b/crates/ml/src/trainers/dqn/config.rs @@ -1381,7 +1381,7 @@ impl DQNHyperparameters { hindsight_lookahead: 10, pruning_epoch: 50, // #20: compute mask at epoch 50 pruning_fraction: 0.7, // #20: prune 70% of smallest weights - bottleneck_dim: 2, // #31: 2D information compression (gem of gems) + bottleneck_dim: 16, // #31: 16D bottleneck — 8× more market feature info (was 2, threw away 97.6%) stochastic_depth_prob: 0.2, // #21: 20% drop probability per hidden layer mixup_alpha: 0.2, // Manifold Mixup: Beta(0.2,0.2) target distribution mixing // Core family intensity scalars: 1.0 = no change to defaults (neutral)