StarForge is the control plane for everything around a post-training job. It governs who may run
what, on which approved runtime and data, on which GPUs, under which quota — and carries the result
back: metrics, logs, evaluations, artifacts, a model version, a deployment, and the production
traffic that becomes the next version’s training data.
It is deliberately neutral about two things. Which framework trains the model — NeMo-RL, verl,
TRL, OpenRLHF, or your own — and which backend runs it: Docker, a bare-metal agent, KubeRay or
Slurm. One JobSpec expresses the intent; the platform carries it to any of them.
What it does not do is own what runs inside the job. That belongs to the training framework and to
your code.
Quickstart
Install, log in, submit, and watch the first data point land on the chart.
Core concepts
Experiment, run, recipe, profile, executor — the nouns everything else uses.
What it does
StarForge is a control plane for the whole post-training lifecycle. It parses, validates, stores, schedules and distributes work — and deliberately does not own what runs inside a job. Training frameworks own that.Pick your path
I want to train a model
Quickstart, then submitting, sweeps and
pipelines.
I want to extend the platform
Nine extension points: recipes, benchmarks, environments, rubrics, plugins.
I have to run this thing
Four executors, 233 settings, auth, storage, upgrades.
A run, end to end
1
Scaffold
sf init creates a project. sf new copies a method template into experiments/<name>/ and
pins the exact recipe and framework version in recipe.lock.json.2
Validate
sf validate checks types, ranges and batch-size divisibility against the method declaration —
on your machine, in seconds, before anything is queued.3
Submit
sf submit packages the working tree, refuses to include anything that looks like a secret, and
hands the job to the server. Admission checks quota, the recipe handshake, and the image
allowlist, then queues it.4
Observe
The job reports lifecycle marks, metrics, samples, logs and artifacts back through ingest. The
console charts them live.
5
Decide
Score it with
sf bench, compare it against previous runs, chat with it in the Playground,
export it to HuggingFace format, or register it as a model version and deploy it.What runs where
The control plane never executes third-party code, and a trainer never receives the raw contents of
a protected dataset. Both are structural, not policy: see extension points.