End-to-end MLOps platform for training a video action-recognition model
(PyTorch CNN-LSTM) on Kinetics-400, running on SageMaker HyperPod orchestrated by
EKS — with cost controls built in from day one. GPUs default to
scale-to-zero: Karpenter only provisions a Spot GPU node when a job is pending,
then consolidates back to zero. Training checkpoints to S3 so it auto-resumes after
a Spot interruption.
$0idle-GPU cost
~−60%via Spot
12Terraform modules
2repos (infra + CD)
kinetics-mlops/
├─ training PyTorch CNN-LSTM · DDP · AMP bf16 · torch.compile
│ └─ HyperPodPyTorchJob torchrun on EKS 1.34 + SageMaker HyperPod
├─ gpu Karpenter scale-to-zero · Spot-first · auto-resume from S3
├─ storage S3 ◄─lazy-load─ FSx for Lustre · DVC manifests
├─ tracking SageMaker MLflow · Model Registry (approval-gated)
├─ serving SageMaker Endpoint + self-hosted FastAPI
├─ infra/ Terraform · Terragrunt · EKS Pod Identity · Client VPN (SAML)
├─ ci/ GitHub Actions · keyless OIDC · ECR (train + infer)
├─ security/ OPA/Rego · Conftest · Trivy · Checkov — policy gates + scans
├─ observ/ Prometheus · Thanos · Grafana · DCGM · OTel
└─ delivery/ ArgoCD app-of-apps · GPU jobs on manual sync
PyTorch CNN-LSTMDDP · AMP bf16Kinetics-400
SageMaker HyperPodEKS 1.34Karpenter (Spot)
FSx LustreMLflowFastAPI servingDVC
TerraformTerragruntArgoCDOIDCDCGM · Prometheus
ThanosOPA · RegoConftestTrivyCheckov