Files
foxhunt/infra/k8s/argo/train-dqn-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.1 KiB
YAML

# Train DQN: fetch binaries → hyperopt → train → evaluate → upload.
#
# Usage:
# argo submit --from=wftmpl/train-dqn -p binary-tag=dev-abc1234
# argo submit --from=wftmpl/train-dqn -p binary-tag=latest -p hyperopt-trials=50
#
# Thin wrapper around training-pipeline (templateRef) with DQN-tuned defaults.
# DQN has a 28D hyperopt parameter space — more trials recommended.
---
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: train-dqn
namespace: foxhunt
labels:
app.kubernetes.io/name: train-dqn
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: dqn
- name: binary-tag
value: latest
- name: gpu-pool
value: ci-training-h100
- name: hyperopt-trials
value: "30" # 28D param space needs more exploration
- name: hyperopt-epochs
value: "8"
- name: train-epochs
value: "80" # DQN benefits from longer training
- 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]