diff --git a/config/training/dqn-production.toml b/config/training/dqn-production.toml index 4b16c5df4..4f3eccf83 100644 --- a/config/training/dqn-production.toml +++ b/config/training/dqn-production.toml @@ -1,23 +1,34 @@ -# DQN Production Training Profile +# DQN Production Training Profile — H100 80GB # Full Rainbow DQN: branching + distributional + dueling + double + PER + noisy nets + CQL +# +# Mixed-precision (NVIDIA AMP pattern): +# - f32 master weights, Adam moments, gradients, loss accumulators +# - bf16 shadow copies for cuBLAS GemmEx tensor core GEMM +# - Cosine LR decay: 1e-4 → 1e-5 over 100 epochs [training] epochs = 100 batch_size = 1024 learning_rate = 0.0001 gamma = 0.99 -warmup_steps = 0 -gradient_clip_norm = 10.0 weight_decay = 0.0001 -max_steps_per_epoch = 2000 +adam_epsilon = 1e-8 +warmup_steps = 0 hidden_dim_base = 256 -reward_scale = 10.0 +max_steps_per_epoch = 2000 +reward_scale = 1.0 +huber_delta = 1.0 +lr_decay_type = 2 +lr_min = 0.00001 + +[distributional] +num_atoms = 51 [exploration] epsilon_start = 1.0 epsilon_end = 0.01 epsilon_decay = 0.995 -noisy_sigma_init = 0.5 +noisy_sigma_init = 0.3 entropy_coefficient = 0.001 count_bonus_coefficient = 0.1 q_gap_threshold = 0.05 @@ -28,42 +39,10 @@ min_replay_size = 1000 per_alpha = 0.6 per_beta_start = 0.4 -[distributional] -num_atoms = 51 - -[branching] -branch_0_size = 9 -branch_1_size = 3 -branch_2_size = 3 - -[advanced] -noisy_sigma_init = 0.5 -cql_alpha = 0.1 -gradient_accumulation_steps = 1 -n_steps = 3 -tau = 0.005 -c51_warmup_epochs = 5 -her_ratio = 0.2 -iqn_lambda = 0.25 -spectral_norm_sigma_max = 3.0 -gradient_clip_norm = 10.0 - -[risk] -enable_kelly_sizing = true -kelly_fractional = 0.5 -kelly_max_fraction = 0.25 -enable_action_masking = true -max_position_absolute = 2.0 -enable_circuit_breaker = true -loss_aversion = 1.5 -q_clip_min = -200.0 -q_clip_max = 200.0 - [early_stopping] enabled = true patience = 20 -min_epochs_before_stopping = 10 -min_loss_improvement_pct = 0.1 +min_epochs_before_stopping = 50 [experience] initial_capital = 100000.0 @@ -77,12 +56,23 @@ limit_fill_max = 0.80 spread_cost_frac = 0.50 spread_capture_frac = 0.50 -[reward] -w_dsr = 1.0 -w_pnl = 0.3 -w_dd = 1.0 -w_idle = 0.01 -dd_threshold = 0.01 +[risk] +max_position = 2.0 loss_aversion = 1.5 -time_decay_rate = 0.0005 -q_gap_threshold = 0.1 # trade only with conviction — hyperopt searches [0.0, 0.5] +q_clip_min = -50.0 +q_clip_max = 50.0 + +[advanced] +n_steps = 3 +tau = 0.005 +c51_warmup_epochs = 5 +her_ratio = 0.2 +cql_alpha = 0.1 +curiosity_weight = 0.1 +iqn_lambda = 0.25 +spectral_norm_sigma_max = 1.5 +gradient_clip_norm = 1.0 + +[reward] +loss_aversion = 1.5 +q_gap_threshold = 0.1