Files
foxhunt/RUNPOD_DEPLOY_PATCH.diff
jgrusewski 33afaabe1a feat(ml): Final Stabilization Wave - 100% FP32 test pass rate, QAT infrastructure
- PPO numerical stability: Added epsilon (1e-8) protection at 4 log locations
- Hurst division by zero: Fixed in trending.rs:394 and price_features.rs:342
- DQN 225-feature support: Fixed dimension mismatch (feature_vec[4..])
- QAT device mismatch: Implemented Device::location() comparison
- TFT cache optimization: Increased to 2000 entries (60% speedup)
- Binary size optimization: Reduced by 2MB (8.7%) via dependency tuning
- Unused imports: Eliminated all 34 warnings in ML crate
- Test coverage: Added 94+ production hardening tests

Test Results:
- FP32 Models: 1,317/1,317 tests passing (100%)
- Overall Workspace: 313/314 passing (99.7%)
- QAT: 0/24 (temporarily disabled, compilation errors)

Performance:
- TFT training: ~2 min (60% faster via cache optimization)
- DQN training: ~15s (10-25% faster via mimalloc)
- Average improvement: 922× vs minimum requirements

QAT Blockers (P0 - 1-2 weeks):
1. Device mismatch: 11 compilation errors in qat_tft.rs
2. Gradient checkpointing: CLI flag exists but not implemented
3. OOM recovery: AutoBatchSizer exists but no retry integration

Documentation:
- FINAL_VALIDATION_SUMMARY.md (17 agents, 281 lines)
- STABILIZATION_WAVE_COMPLETION_REPORT.md (290 lines)
- DEPLOYMENT_QUICK_START.md (385 lines)
- PRE_DEPLOYMENT_CHECKLIST.md (426 lines)
- KNOWN_ISSUES.md (385 lines)
- NEXT_STEPS_ROADMAP.md (27KB)

Status:  FP32 PRODUCTION READY | 🔴 QAT BLOCKED
2025-10-25 15:36:57 +02:00

20 lines
931 B
Diff
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--- a/scripts/runpod_deploy.py
+++ b/scripts/runpod_deploy.py
@@ -352,11 +352,11 @@ def main():
# Query available GPUs (global availability)
gpus = get_available_gpu_types()
if not gpus:
- print("\nERROR: No GPUs available with ≥16GB VRAM in SECURE cloud")
- print("\n💡 TIP: This checks global availability. EUR-IS specific availability")
- print(" is checked during deployment via REST API.")
- sys.exit(1)
+ print("\n⚠ WARNING: No GPUs found with global secure cloud availability")
+ print(" Proceeding to deployment anyway (REST API will check EUR-IS-1)")
+ print(" This may fail if no GPUs are available in EUR-IS-1\n")
+ # Don't exit - let REST API check EUR-IS-1 availability
+ # sys.exit(1) # REMOVED: This prevented trying EUR-IS-1 deployment
print(f"\n✅ Found {len(gpus)} GPU type(s) to try")