Files
foxhunt/ml
jgrusewski 57bae2cb68 fix(ml): OOM hardening + battle-test KAN/xLSTM/Diffusion models
Replace 8 unbounded Vec accumulation patterns with bounded VecDeque
across ensemble, PPO, DQN, Mamba2, and data pipeline code to prevent
OOM on RTX 3050 Ti (4GB VRAM) during live trading and extended training.

Key OOM fixes:
- Ensemble price/volatility history: Vec → VecDeque with O(1) eviction
- Data pipeline: MAX_FEATURES=500K cap (~512MB) prevents unbounded loading
- DQN replay buffer: full-array shuffle → HashSet random sampling (8MB → 256B)
- PPO loss histories: bounded VecDeque (cap 1K), eliminated batch.clone()
- Mamba2 scan: pre-allocated Vecs, explicit drop() after Tensor::cat
- Mamba2 training history: capped at 100, Tensor::randn replaces Vec→Tensor
- Mamba2 SSM reset: 2 unwrap() violations replaced with proper error handling

Battle-testing (19 new integration tests):
- KAN: 5 tests (forward, 50-epoch training 89.9% loss reduction, checkpoint)
- xLSTM: 7 tests (2D+3D forward, 30-epoch training 82% reduction, checkpoint)
- Diffusion: 7 tests (2D+3D forward, 20-epoch pipeline, checkpoint, validation)

Bonus: fix pre-existing cache test failure (match .dbn.zst files, graceful skip)

All 2390 lib tests pass, 0 new clippy errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:55:39 +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