Files
foxhunt/infra/k8s/argo/train-ppo-template.yaml
jgrusewski ae5ae056d6 fix: add gpu-test network policy label to all GPU workflow templates
5 templates were missing app.kubernetes.io/component=gpu-test label,
causing MinIO log archival to fail (port 9000 blocked by network policy).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 02:08:50 +01:00

114 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Train PPO: fetch binaries → hyperopt → train → evaluate → upload.
#
# Usage:
# argo submit --from=wftmpl/train-ppo -p binary-tag=dev-abc1234
# argo submit --from=wftmpl/train-ppo -p binary-tag=latest -p train-epochs=100
#
# Thin wrapper around training-pipeline (templateRef) with PPO-tuned defaults.
# PPO uses 45 factored actions (5 exposure × 3 order × 3 urgency).
---
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: train-ppo
namespace: foxhunt
labels:
app.kubernetes.io/name: train-ppo
app.kubernetes.io/part-of: foxhunt
app.kubernetes.io/component: gpu-test
spec:
entrypoint: pipeline
serviceAccountName: argo-workflow
podMetadata:
labels:
app.kubernetes.io/part-of: foxhunt
app.kubernetes.io/component: gpu-test
app.kubernetes.io/component: training
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
ttlStrategy:
secondsAfterCompletion: 3600
activeDeadlineSeconds: 28800 # 8 hours
arguments:
parameters:
- name: model
value: ppo
- name: binary-tag
value: latest
- name: gpu-pool
value: ci-training-h100
- name: hyperopt-trials
value: "20"
- name: hyperopt-epochs
value: "8"
- name: train-epochs
value: "50"
- name: symbol
value: ES.FUT
- name: data-dir
value: /data/futures-baseline
- name: mbp10-data-dir
value: /data/futures-baseline-mbp10
- name: trades-data-dir
value: /data/futures-baseline-trades
- name: tx-cost-bps
value: "0.1"
- name: tick-size
value: "0.25"
- name: spread-ticks
value: "1.0"
- name: initial-capital
value: "35000"
- name: ensemble-top-k
value: "5"
- name: cuda-compute-cap
value: "90"
volumes:
- name: training-data
persistentVolumeClaim:
claimName: training-data-pvc
readOnly: true
volumeClaimTemplates:
- metadata:
name: workspace
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: scw-bssd
resources:
requests:
storage: 5Gi
templates:
- name: pipeline
dag:
tasks:
- name: fetch-binary
templateRef:
name: training-pipeline
template: fetch-binary
- name: hyperopt
templateRef:
name: training-pipeline
template: hyperopt
dependencies: [fetch-binary]
- name: train-best
templateRef:
name: training-pipeline
template: train-best
dependencies: [hyperopt]
- name: evaluate
templateRef:
name: training-pipeline
template: evaluate
dependencies: [train-best]
- name: upload-results
templateRef:
name: training-pipeline
template: upload-results
dependencies: [evaluate]