Training and Promote

Training and Promote A sequence diagram generated by Archify. POST /train/preflight blocking + warning checks POST /train/start claim GPUs write job.json (project dir) job_id claim job.json status.json every ~5 s GET /train/status/{id} read status.json manifest + ONNX reconcile: release POST /train/promote/{id} eval gate + ONNX write {slug}__name + load READY promoted (or 422) Preflight + start Train Promote Client · curl / labeling UI · Sequence participant Client curl / labeling UI api · {project}/train/* · Sequence participant api {project}/train/* GPU arbiter · in the API process · Sequence participant GPU arbiter in the API process /jobs volume · shared files · Sequence participant /jobs volume shared files curation-trainer · Ultralytics · Sequence participant curation-trainer Ultralytics triton-server · model repository · Sequence participant triton-server model repository Legend request return security async trace default message

Files, not RPC

  • • job.json in; status.json, run.log and manifest.json out, in /jobs/projects/<slug>/
  • • One trainer serves every project; any trainer speaking this protocol can replace it

GPU arbiter

  • • Claims GPUs on start: pauses a paired worker or stops configured containers
  • • A reconcile loop releases them once no run is active

Promote gate

  • • mAP50 >= 0.65, per-class precision >= 0.50, support >= 5
  • • force=true bypasses; a subset run's class remap is applied to labels.txt