Files
foxhunt/config/ml/training.toml
jgrusewski d95e205d4b refactor(ml): delete mixed_precision module — BF16 unconditional on CUDA
Eliminate the entire mixed_precision runtime indirection layer:
- Delete crates/ml-core/src/mixed_precision.rs (training_dtype, ensure_training_dtype, align_dim_for_tensor_cores)
- Inline ~100 call sites across 130 files to constants:
  training_dtype(&device) → candle_core::DType::BF16
  ensure_training_dtype(x) → x.to_dtype(candle_core::DType::BF16)
  align_dim_for_tensor_cores(x, &device) → (x + 7) & !7
- Remove re-exports from ml-dqn, ml-supervised, ml lib.rs
- Clean config/toml/json/shell references

No CPU/Metal training path exists — BF16 is the only dtype.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 16:11:48 +01:00

148 lines
6.5 KiB
TOML

# ML Training Configuration
# Centralized configuration for all training parameters
[training]
# Basic training parameters
total_episodes = 10000 # Total training episodes
steps_per_episode = 1000 # Steps per episode
batch_size = 32 # Training batch size
replay_buffer_size = 100000 # Experience replay buffer size
target_update_frequency = 1000 # Target network update frequency
checkpoint_frequency = 500 # Model checkpointing frequency
evaluation_frequency = 100 # Evaluation frequency
target_performance_threshold = 0.8 # Performance threshold for convergence
episodes_per_checkpoint = 500 # Episodes per checkpoint
adversarial_training_frequency = 1000 # Adversarial training frequency
[learning_rate]
# Learning rate scheduling
schedule_type = "exponential_decay" # constant, linear_decay, exponential_decay, step_decay
initial = 0.001 # Initial learning rate
decay_rate = 0.995 # Decay rate (for exponential)
decay_steps = 1000 # Decay steps
final_rate = 0.0001 # Final rate (for linear decay)
decay_factor = 0.5 # Decay factor (for step decay)
step_size = 1000 # Step size (for step decay)
[exploration]
# Exploration scheduling
schedule_type = "exponential_decay" # linear_decay, exponential_decay, curriculum_based
initial = 1.0 # Initial exploration rate
decay_rate = 0.995 # Decay rate (for exponential)
final_rate = 0.01 # Final rate (for linear decay)
decay_steps = 5000 # Decay steps (for linear decay)
base_rate = 0.1 # Base rate (for curriculum based)
complexity_factor = 0.1 # Complexity factor (for curriculum based)
[coordination]
# Multi-agent coordination settings
enable_experience_sharing = true # Enable experience sharing between agents
enable_centralized_critic = true # Enable centralized critic
coordination_frequency = 10 # Coordination update frequency
rebalancing_frequency = 100 # Resource allocation rebalancing frequency
[environment]
# Training environment parameters
available_capital = 1000000.0 # Available capital for simulation
market_features = 5 # Number of market features
volatility_base = 0.02 # Base market volatility
volume_base = 0.1 # Base market volume
spread_base = 0.3 # Base market spread
var_threshold = 0.015 # VaR threshold
max_drawdown_limit = 0.0 # Maximum drawdown limit
[reward_simulation]
# Reward simulation parameters
reward_range_min = -0.05 # Minimum reward
reward_range_max = 0.05 # Maximum reward
financial_reward_max = 0.1 # Maximum financial reward
execution_quality_max = 0.05 # Maximum execution quality reward
risk_adjusted_max = 0.08 # Maximum risk-adjusted reward
cooperation_reward = 0.0 # Base cooperation reward
exploration_reward = 0.0 # Base exploration reward
[adversarial]
# Adversarial training scenarios
high_volatility_var = 0.25 # High volatility scenario VaR
high_volatility_drawdown = 0.15 # High volatility max drawdown
news_event_var = 0.40 # News event scenario VaR
news_event_drawdown = 0.25 # News event max drawdown
pnl_scenarios = [-0.05, 0.02, -0.08, 0.15, -0.12] # P&L scenarios for high volatility
news_pnl_scenarios = [-0.20, -0.15, -0.10, 0.05, 0.08] # P&L scenarios for news events
[evaluation]
# Evaluation parameters
eval_episodes = 10 # Number of evaluation episodes
eval_frequency = 100 # Evaluation frequency (episodes)
convergence_window = 100 # Window for convergence detection
performance_threshold = 0.8 # Performance threshold
[checkpointing]
# Model checkpointing
checkpoint_dir = "checkpoints" # Checkpoint directory
save_frequency = 500 # Save frequency (episodes)
keep_checkpoints = 10 # Number of checkpoints to keep
model_save_format = "safetensors" # Model save format
[curriculum]
# Curriculum learning parameters
enable_curriculum = false # Enable curriculum learning
initial_difficulty = 0.1 # Initial difficulty level
max_difficulty = 1.0 # Maximum difficulty level
difficulty_increment = 0.05 # Difficulty increment per milestone
milestone_episodes = 1000 # Episodes per difficulty milestone
[hyperparameter_search]
# Hyperparameter optimization
enable_search = false # Enable hyperparameter search
search_algorithm = "random" # random, grid, bayesian
max_trials = 100 # Maximum trials
search_space = [ # Search space definition
{ param = "learning_rate", type = "float", min = 0.0001, max = 0.01 },
{ param = "batch_size", type = "int", min = 16, max = 128 },
{ param = "gamma", type = "float", min = 0.9, max = 0.999 }
]
[data_pipeline]
# Training data pipeline
data_buffer_size = 1000000 # Data buffer size
shuffle_buffer = 10000 # Shuffle buffer size
prefetch_size = 10 # Prefetch size for data loading
num_parallel_workers = 4 # Number of parallel data workers
data_augmentation = false # Enable data augmentation
[validation]
# Training validation
validation_split = 0.2 # Validation split ratio
min_training_samples = 10000 # Minimum training samples
max_dataset_age_days = 30 # Maximum dataset age in days
cross_validation_folds = 5 # Number of cross-validation folds
[early_stopping]
# Early stopping parameters
enable_early_stopping = true # Enable early stopping
patience = 100 # Patience (episodes without improvement)
min_delta = 0.001 # Minimum improvement threshold
restore_best_weights = true # Restore best weights on early stop
[distributed]
# Distributed training
enable_distributed = false # Enable distributed training
num_workers = 1 # Number of distributed workers
communication_backend = "nccl" # Communication backend
gradient_compression = false # Enable gradient compression
[memory_optimization]
# Memory optimization
gradient_checkpointing = false # Enable gradient checkpointing
memory_efficient_attention = true # Enable memory efficient attention
cpu_offload = false # Enable CPU offloading
[logging]
# Training logging
log_frequency = 100 # Log frequency (steps)
tensorboard_log_dir = "logs/tensorboard" # TensorBoard log directory
wandb_project = "foxhunt-ml" # Weights & Biases project name
wandb_entity = "foxhunt" # Weights & Biases entity
log_gradients = false # Log gradient histograms
log_weights = false # Log weight histograms