Skip to main content
Post-training is rarely one step: SFT for the base, then DPO or GRPO alignment, then export and evaluation. --init-from is how a stage starts from the previous one’s artifact. Every run’s checkpoint is registered automatically, the next stage references it by run id, and the lineage stays queryable end to end — so six months later “what was this trained from” has an answer that does not depend on anyone’s memory.

Start from the previous stage: —init-from

The server resolves the reference, verifies the artifact exists and its ownership, and injects the actual path into the job. The Lineage view in the console job details shows the entire chain.

Run automatically after training succeeds: —then

After training succeeds, the platform automatically submits the post-processing jobs (seconds to minutes — no extra RayCluster cold start to pay for).

Export to HuggingFace format: sf export

--checkpoint-format supports nemo-dcp / nemo-megatron / verl-fsdp / verl-megatron / huggingface. When pushing to the Hub, the server injects the current user’s HF token (see HuggingFace Integration); the repo name is validated against injection.

Framework-native evaluation: sf eval

Runs the framework-native evaluation entry point declared by the recipe:
sf eval is framework-native evaluation (reusing the training framework’s inference path); for standard benchmarks comparable across models (GSM8K / MMLU / C-Eval…) use sf bench, whose scores are ingested into the unified dashboard. See Benchmarks.

Cleanup: sf clean

Deletes the experiment’s checkpoints and logs on the cluster — irrecoverable. Job records and metrics are retained on the platform.

A complete pipeline example