Files
foxhunt/crates/ml
jgrusewski 590883408a feat(hyperopt): auto-detect CPU for parallel RL hyperopt, use all cores
DQN/PPO networks are tiny (3 layers × 128 neurons). Running parallel
hyperopt on GPU wastes cores because CUDA context serializes across
threads — 5 trials on L4 only used 2000m of 6000m requested CPU.

Changes:
- Add --device flag to hyperopt_baseline_rl (auto/cpu/cuda)
- Auto mode forces CPU for parallel runs (no CUDA contention)
- CPU mode uses all available cores (no 2-core reserve)
- Add with_device() builder to DQN/PPO hyperopt trainers
- Downgrade "portfolio value <= 0" and GPU utilization warnings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:11:58 +01:00
..

ml

Machine learning models for Foxhunt.

Models

  • DQN (Rainbow) -- Deep Q-Network with prioritized experience replay, dueling heads, noisy nets, double Q-learning
  • PPO -- Proximal Policy Optimization with GAE, LSTM policies, clip-higher option
  • TFT -- Temporal Fusion Transformer for multi-horizon time series forecasting
  • Mamba2 -- State space model for efficient sequence prediction
  • Liquid Networks -- Biologically inspired neural networks for non-stationary data
  • TLOB -- Transformer-based Limit Order Book analysis
  • Flash Attention -- Optimized attention implementation

Training

Two paths per model:

  1. Standalone trainer -- direct training loop (e.g., DQN::train, PpoTrainer)
  2. UnifiedTrainable adapter -- wraps models for the hyperopt pipeline (e.g., DQNTrainableAdapter, UnifiedTrainablePPO)

Inference

InferenceAdapterBridge connects models to the ensemble coordinator in adaptive-strategy. Each model exposes an InferenceAdapter trait for prediction.

Backend

  • Candle v0.9.1 -- VarMap, AdamW, loss.backward(), GradStore, opt.step(&grads)
  • CUDA required for training -- tested on RTX 3050 Ti 4GB, max batch size 230
  • CPU inference supported

Hyperopt

ArgminOptimizer (Particle Swarm Optimization) with per-model adapters: DQN, PPO, ContinuousPPO, TFT, Mamba2. Uses ParameterSpace trait for continuous parameter mapping.

ModelType Enum

15 variants: CompactDQN, DistilledMicroNet, DQN, RainbowDQN, MAMBA, TFT, TGGN, LNN, TLOB, PPO, Transformer, Mamba, LiquidNet, TGNN, Ensemble.

Key Modules

dqn, ppo, tft, mamba, liquid, tlob, flash_attention, ensemble, evaluation, inference, trainers, hyperopt, checkpoint, preprocessing, data_loaders, features, model_factory, training_pipeline, regime_detection, stress_testing, validation, bridge, common, metrics.

Testing

SQLX_OFFLINE=true cargo test -p ml --lib  # ~2009 tests