Local validation, pack and upload, server admit (catalog / quota / preflight), queue, dispatch. Flags below are the knobs on that path.
Resources: —profile
--profile is the only resource entry point; see Resource Model for the semantics.
Hyperparameters: —set
Repeatable; types and ranges are validated locally against the method declaration, and typos fail immediately. Only affects this submission and does not modify experiment files.
Model and data
NeMo-RL
verl / TRL
Platform datasets
Model and data are declared in the config (base + model fragment); no extra arguments are usually needed at submission.
--model (HF id or path) and --train-data / --validation-data are required.When referencing a platform dataset (<owner>/<name>[@version]), the job automatically pulls it to the shared cache at startup and injects <NAME>_DATA_DIR; --train-data takes a path relative to the dataset. Prefer declaring it in the config’s data.train.dataset; CLI arguments serve only as a temporary override. See Datasets.
Project name
The console groups all runs under the name in starforge.yaml. Submission attaches it automatically; do not pass --project.
Per-job image override
Catalog methods and custom both accept --image; custom requires it. Resolution order: --image → console framework default → runtime registry → catalog. Tags work; pin a digest in production. The registry must be on the server allowlist.
Logs follow stdout. Console curves need starforge.report in training code. The catalog custom recipe currently defaults to external observability, so those submissions still need --observability-url. Full cookbook: Custom training. Docker and allowlist: Custom images.
Provenance and waivers
The packager has a sensitive-file blacklist (.env, *.pem, id_rsa*, etc.); a hit refuses to package — secrets must not enter the job package, and the platform has a dedicated secret injection channel.
Post-training automatic actions: —then
Automatically runs export / evaluation after training succeeds; see Pipelines.
After submission
Common reasons the server may reject a submission (all with explicit errors): catalog handshake failure (stale lock), insufficient quota (waiting in the queue is not a failure), image registry not on the allowlist, HF gated model not authorized, batch size validation failure. See Troubleshooting.