122 lines
3.8 KiB
TOML
122 lines
3.8 KiB
TOML
# DQN Smoke Test Profile — f32 master weights + bf16 tensor core shadows
|
||
# gpu_n_episodes=auto × gpu_timesteps=100 (auto-scaled from VRAM)
|
||
# batch_size=64 fits in 4GB RTX 3050
|
||
#
|
||
# Mixed-precision (NVIDIA AMP pattern):
|
||
# - f32 master weights, Adam moments, gradients, loss accumulators
|
||
# - bf16 shadow copies for cuBLAS GemmEx tensor core GEMM
|
||
# - gradient_clip_norm=1.0 (prevents large grads from overflow in bf16 backward)
|
||
# - huber_delta=1.0 (keeps TD errors bounded for stable C51 transition)
|
||
# - q_clip ±50 (prevents logit explosion through bf16 forward)
|
||
|
||
[training]
|
||
epochs = 10
|
||
batch_size = 64
|
||
learning_rate = 0.0001
|
||
gamma = 0.95
|
||
weight_decay = 0.0001
|
||
adam_epsilon = 1e-8
|
||
warmup_steps = 0
|
||
hidden_dim_base = 64
|
||
reward_scale = 1.0
|
||
huber_delta = 1.0
|
||
symbol = "ES.FUT"
|
||
imbalance_bar_threshold = 1.0
|
||
imbalance_bar_ewma_alpha = 0.1
|
||
|
||
[distributional]
|
||
num_atoms = 51
|
||
|
||
[exploration]
|
||
epsilon_start = 1.0
|
||
epsilon_end = 0.05
|
||
epsilon_decay = 0.85
|
||
noisy_sigma_init = 0.3
|
||
entropy_coefficient = 0.001
|
||
count_bonus_coefficient = 0.1
|
||
q_gap_threshold = 0.05
|
||
|
||
[replay_buffer]
|
||
buffer_size = 10000
|
||
min_replay_size = 100
|
||
regime_replay_decay = 0.3
|
||
|
||
[early_stopping]
|
||
enabled = true
|
||
patience = 5
|
||
min_epochs_before_stopping = 5
|
||
|
||
[experience]
|
||
gpu_timesteps_per_episode = 100
|
||
gpu_n_episodes = 32
|
||
min_hold_bars = 3
|
||
|
||
[experience.fill_simulation]
|
||
ioc_fill_prob = 0.85
|
||
limit_fill_min = 0.30
|
||
limit_fill_max = 0.80
|
||
spread_cost_frac = 0.50
|
||
spread_capture_frac = 0.50
|
||
|
||
[risk]
|
||
max_position = 2.0
|
||
loss_aversion = 1.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
|
||
spectral_decoupling_lambda = 0.01
|
||
gradient_clip_norm = 1.0
|
||
|
||
[generalization]
|
||
# Toned-down generalization for tiny smoketest network [64,64]
|
||
# Full production uses aggressive defaults; smoketest needs gentler settings
|
||
# to avoid gradient collapse on small capacity networks.
|
||
anti_lr_good_mult = 1.1 # 1.1x — minimal destabilization for tiny network
|
||
anti_lr_bad_mult = 0.9 # 0.9x — minimal stabilization for tiny network
|
||
anti_lr_sharpe_threshold = 5.0 # Very high threshold — rarely triggers on smoketest
|
||
stochastic_depth_prob = 0.1 # 10% vs production 20% (less capacity loss)
|
||
feature_mask_fraction = 0.15 # 15% vs production 30% (more features visible)
|
||
feature_noise_scale = 0.05 # 0.05 vs production 0.1 (less noise)
|
||
asymmetric_dd_weight = 0.2 # 0.2 vs production 0.5 (less aggressive DD penalty)
|
||
trade_clustering_penalty = 0.02 # 0.02 vs production 0.05
|
||
ensemble_disagreement_penalty = 0.1 # 0.1 vs production 0.3
|
||
regret_blend = 0.15 # 0.15 vs production 0.3
|
||
time_reversal_mod = 10 # 10% reversed vs production 20%
|
||
position_entropy_weight = 0.005 # Half of production
|
||
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)
|
||
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)
|
||
pruning_fraction = 0.5 # Less aggressive (50% vs production 70%)
|
||
mixup_alpha = 0.2
|
||
# Core family intensity scalars for hyperopt (1.0 = neutral, range [0.0, 2.0])
|
||
learning_intensity = 1.0
|
||
exploration_intensity = 1.0
|
||
replay_intensity = 1.0
|
||
architecture_intensity = 1.0
|
||
risk_intensity = 1.0
|
||
# Generalization family intensity scalars for hyperopt (1.0 = neutral, range [0.0, 2.0])
|
||
adversarial_intensity = 1.0
|
||
regularization_intensity = 1.0
|
||
augmentation_intensity = 1.0
|
||
loss_shaping_intensity = 1.0
|
||
ensemble_intensity = 1.0
|
||
causal_intensity = 1.0
|
||
|
||
[reward]
|
||
loss_aversion = 1.5
|
||
q_gap_threshold = 0.1
|
||
w_dd = 1.0
|
||
dd_threshold = 0.02
|