Files
foxhunt/ml/examples/README_MAMBA2_PARQUET.md
jgrusewski 4d0efa82df feat(wave1-2): Complete multi-model training architecture + TLI commands
Wave 1 (Architecture & Design - 5 agents):
- Multi-model training orchestration (DQN, PPO, MAMBA-2, TFT-INT8)
- Sequential training strategy (95.9% GPU headroom, 6.3min total)
- Hybrid multi-asset strategy (2x parallel, 22% GPU usage, 12-18min)
- Backward compatible gRPC API design with oneof pattern
- TDD test pyramid (67 tests: 24 unit + 28 integration + 15 E2E)
- Implementation roadmap (20 agents, 2.5 weeks, 13,280 LOC)

Wave 2 (Core TLI Commands - 5 agents):
- tli train start: Multi-model, multi-asset job submission (14 tests )
- tli train watch: Real-time streaming with weighted progress (10 tests )
- tli train status: Color-coded formatted status display (10 tests )
- tli train list: Filtering, sorting, pagination support (12 tests )
- tli train stop: Graceful cancellation with checkpoints (11 tests )

Status:
- 57/57 tests passing (100% TDD compliance)
- ~4,095 LOC (tests + implementation + docs)
- 3.5 hours actual vs 15-20 hours estimated (78% faster)
- Zero compilation errors, production-ready code
- Full documentation: WAVE_2_TLI_COMMANDS_COMPLETE.md

Next: Wave 3 (Multi-Asset Multi-Model Backend Logic - 5 agents)

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 20:50:43 +02:00

81 lines
2.9 KiB
Markdown

# MAMBA-2 Parquet Training Example
This example demonstrates how to train the MAMBA-2 State Space Model using Parquet market data files.
## Quick Start
```bash
# Default: 200 epochs using ES.FUT data
cargo run -p ml --example train_mamba2_parquet --release
# Custom Parquet file and epochs
cargo run -p ml --example train_mamba2_parquet --release -- \
--parquet-file test_data/NQ_FUT_180d.parquet \
--epochs 50
# Custom lookback window (sequence length)
cargo run -p ml --example train_mamba2_parquet --release -- \
--parquet-file test_data/ES_FUT_180d.parquet \
--lookback-window 120 \
--epochs 100
```
## Available Arguments
- `--parquet-file <path>`: Path to Parquet file (default: test_data/ES_FUT_180d.parquet)
- `--epochs <n>`: Number of training epochs (default: 200)
- `--lookback-window <n>`: Sequence length/lookback window (default: 60)
- `--batch-size <n>`: Batch size for training (default: 32)
- `--learning-rate <f>`: Learning rate (default: 0.0001)
- `--hidden-dim <n>`: Hidden dimension (default: 225, Wave D feature count)
- `--state-dim <n>`: SSM state dimension (default: 16)
--output-dir <path>`: Output directory for checkpoints (default: ml/checkpoints/mamba2_parquet)
## Available Parquet Files
- `test_data/ES_FUT_180d.parquet` - E-mini S&P 500 (180 days)
- `test_data/NQ_FUT_180d.parquet` - E-mini NASDAQ (180 days)
- `test_data/6E_FUT_180d.parquet` - Euro FX (180 days)
- `test_data/ZN_FUT_90d.parquet` - 10-Year T-Note (90 days)
## Output
Training outputs are saved to `ml/checkpoints/mamba2_parquet/`:
- `best_model_epoch_*.ckpt` - Best model based on validation loss
- `checkpoint_epoch_*.ckpt` - Periodic checkpoints (every 10 epochs)
- `final_model.ckpt` - Final model after training
- `training_losses.csv` - Training/validation loss curves
- `training_metrics.json` - Summary metrics and configuration
## Features
- **225 Wave D Features**: Includes 201 Wave C features + 24 Wave D regime features
- **GPU Training**: CUDA acceleration (RTX 3050 Ti optimized)
- **Early Stopping**: Automatic stopping after 20 epochs of no improvement
- **Checkpointing**: Saves best models and periodic snapshots
- **Monitoring**: Real-time loss, perplexity, and training speed metrics
## Expected Training Time
- 50 epochs: ~30-45 minutes (pilot run)
- 200 epochs: ~2-3 hours (full training)
- GPU utilization: ~60-70% (memory-bound on RTX 3050 Ti)
## Requirements
- CUDA GPU (required - no CPU fallback)
- Minimum 50 bars in Parquet file (for feature warmup period)
- ~4GB VRAM available
## Data Format
Parquet files should contain OHLCV market data with these columns:
- `timestamp_ns`: Nanosecond timestamp
- `open`, `high`, `low`: Price data (optional, defaults to `price`)
- `price`: Close price (required)
- `quantity`: Volume (optional, defaults to 0)
- `symbol`, `venue`, `event_type`, `sequence`: Metadata columns
See `data/src/providers/databento/dbn_to_parquet_converter.rs` for conversion utilities.