feat(hyperopt): Complete DQN hyperopt analysis and PSO optimizer fix

- Fixed PSO budget calculation bug in ml/src/hyperopt/optimizer.rs
  - Root cause: Division by n_particles in sequential execution
  - Now correctly calculates max_iters = remaining_trials (no division)
  - Result: 50 trials complete instead of 23 (100% vs 46%)

- Added comprehensive DQN hyperopt results analysis
  - 39/50 trials analyzed across 2 RunPod deployments
  - Best hyperparameters identified: LR 4.89e-5 (ultra-low)
  - Created DQN_HYPEROPT_RESULTS_SUMMARY.md with expert validation

- GitLab CI/CD pipeline operational (48 lines fixed)
  - Fixed YAML syntax errors (unquoted colons)
  - All 7 jobs validated and working

- Warning cleanup complete (136 → 0 warnings)
  - Removed 143 lines dead code
  - Fixed visibility, unused imports, Debug traits

- Archived Wave D reports to docs/archive/
  - 8 early stopping reports moved
  - Root directory cleaned up

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2025-11-02 21:49:07 +01:00
parent 2cf07a9086
commit 3853988af7
186 changed files with 42695 additions and 101 deletions

View File

@@ -60,10 +60,13 @@ if not is_venv:
script_dir = Path(__file__).parent
project_root = script_dir.parent
# Add project root to sys.path to ensure local runpod module is used
# This must be done BEFORE importing from runpod to avoid pip package conflict
sys.path.insert(0, str(project_root))
try:
# Import from runpod module (clean architecture - no sys.path hacks)
from runpod import PodMonitor, S3Client
from runpod.config import get_config
# Import from local runpod module (not pip-installed package)
from runpod import PodMonitor, S3Client, RunPodConfig
from runpod.errors import S3ObjectNotFoundError
from rich.console import Console
from rich.table import Table
@@ -518,7 +521,6 @@ Requirements:
try:
# Load config from explicit path
from runpod.config import RunPodConfig
config = RunPodConfig.load_from_file(project_root / '.env.runpod')
s3_client = S3Client(config)