diff --git a/infra/k8s/argo/compile-and-train-template.yaml b/infra/k8s/argo/compile-and-train-template.yaml index b49b116de..7c5ab3142 100644 --- a/infra/k8s/argo/compile-and-train-template.yaml +++ b/infra/k8s/argo/compile-and-train-template.yaml @@ -406,7 +406,9 @@ spec: echo "=== Running hyperopt: $MODEL (${BINARY}) ===" echo " Trials: {{workflow.parameters.hyperopt-trials}}, Epochs: {{workflow.parameters.hyperopt-epochs}}" - # Phase 1 (fast): fix architecture, search learning dynamics + # Single-pass 14D hyperopt: family-based search covers all dims at once. + # Fast phase searches all 14 dimensions (3 breakouts + 11 family intensities). + # Phased search was needed for the old 30D space; 14D is within PSO's efficient range. ${BINARY} \ --model "$MODEL" \ --phase fast \ @@ -421,59 +423,9 @@ spec: --mbp10-data-dir {{workflow.parameters.mbp10-data-dir}} \ --trades-data-dir {{workflow.parameters.trades-data-dir}} \ --base-dir /workspace/output/hyperopt \ - --output /workspace/output/${MODEL}_phase1_results.json - - echo "=== Phase 1 complete ===" - cat /workspace/output/${MODEL}_phase1_results.json 2>/dev/null || echo "No Phase 1 results" - - # Phase 2 (full): fix dynamics from Phase 1, search architecture - PHASE2_TRIALS=$(({{workflow.parameters.hyperopt-trials}} / 2)) - [ "$PHASE2_TRIALS" -lt 5 ] && PHASE2_TRIALS=5 - PHASE2_EPOCHS=$(({{workflow.parameters.hyperopt-epochs}} * 2)) - - ${BINARY} \ - --model "$MODEL" \ - --phase full \ - --hyperopt-params /workspace/output/${MODEL}_phase1_results.json \ - --trials $PHASE2_TRIALS \ - --epochs $PHASE2_EPOCHS \ - --symbol {{workflow.parameters.symbol}} \ - --tx-cost-bps {{workflow.parameters.tx-cost-bps}} \ - --tick-size {{workflow.parameters.tick-size}} \ - --spread-ticks {{workflow.parameters.spread-ticks}} \ - --initial-capital {{workflow.parameters.initial-capital}} \ - --data-dir {{workflow.parameters.data-dir}} \ - --mbp10-data-dir {{workflow.parameters.mbp10-data-dir}} \ - --trades-data-dir {{workflow.parameters.trades-data-dir}} \ - --base-dir /workspace/output/hyperopt \ - --output /workspace/output/${MODEL}_phase2_results.json - - echo "=== Phase 2 complete ===" - cat /workspace/output/${MODEL}_phase2_results.json 2>/dev/null || echo "No Phase 2 results" - - # Phase 3 (reward): fix dynamics + architecture, search only reward weights (7D) - PHASE3_TRIALS=$(({{workflow.parameters.hyperopt-trials}} / 2)) - [ "$PHASE3_TRIALS" -lt 5 ] && PHASE3_TRIALS=5 - PHASE3_EPOCHS=$(({{workflow.parameters.hyperopt-epochs}} * 2)) - - ${BINARY} \ - --model "$MODEL" \ - --phase reward \ - --hyperopt-params /workspace/output/${MODEL}_phase2_results.json \ - --trials $PHASE3_TRIALS \ - --epochs $PHASE3_EPOCHS \ - --symbol {{workflow.parameters.symbol}} \ - --tx-cost-bps {{workflow.parameters.tx-cost-bps}} \ - --tick-size {{workflow.parameters.tick-size}} \ - --spread-ticks {{workflow.parameters.spread-ticks}} \ - --initial-capital {{workflow.parameters.initial-capital}} \ - --data-dir {{workflow.parameters.data-dir}} \ - --mbp10-data-dir {{workflow.parameters.mbp10-data-dir}} \ - --trades-data-dir {{workflow.parameters.trades-data-dir}} \ - --base-dir /workspace/output/hyperopt \ --output /workspace/output/${MODEL}_hyperopt_results.json - echo "=== Three-phase hyperopt complete ===" + echo "=== Hyperopt complete (14D single-pass) ===" cat /workspace/output/${MODEL}_hyperopt_results.json 2>/dev/null || echo "No results file" resources: requests: