> ## Documentation Index
> Fetch the complete documentation index at: https://starforge.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 把多次 run 串成流水线

> init-from 接力训练、--then 自动后处理、export 与 eval

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
sf submit my-sft --profile h200:8
sf submit my-dpo --profile h200:8 --init-from run/<SFT_RUN_ID>/checkpoint
```

后训练很少是一步：先 SFT 打底，再 DPO 或 GRPO 对齐，然后导出和评测。
`--init-from` 就是让某一阶段从上一阶段的产物开始。

每次 run 的 checkpoint 都会自动登记，下一阶段按 run id 引用它，血缘端到端可查——
所以半年后「这个是从什么训出来的」有一个不依赖任何人记忆的答案。

## 从上一阶段起训：--init-from

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
# 第一阶段：SFT
sf submit my-sft --profile h200:8
# → 成功后产物登记为 run/<SFT_RUN_ID>/checkpoint

# 第二阶段：DPO 从 SFT 产物起训
sf submit my-dpo --profile h200:8 \
  --init-from run/<SFT_RUN_ID>/checkpoint

# 指定某一步的 checkpoint
sf submit my-grpo --profile h200:8 \
  --init-from "run/<DPO_RUN_ID>/checkpoint@step=120"
```

服务端解析引用、校验产物存在与归属，把实际路径注入作业。控制台作业详情的**血缘**视图能看到整条链。

## 训练成功后自动执行：--then

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
sf submit my-grpo --profile h200:8 --then export --then eval
```

训练成功后平台自动提交后处理作业（秒级到分钟级，不再为它付一次 RayCluster 冷启动）。

## 导出 HuggingFace 格式：sf export

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
sf export my-grpo \
  --checkpoint <artifact registry 中的 checkpoint 路径> \
  --checkpoint-format nemo-dcp \
  --push-repo myorg/my-model        # 可选：推 HF Hub（需关联 HF 账号）
```

`--checkpoint-format` 支持 `nemo-dcp` / `nemo-megatron` / `verl-fsdp` / `verl-megatron` / `huggingface`。推 Hub 时服务端注入**当前用户**的 HF token（见 [HuggingFace 集成](/zh-Hans/integrations/huggingface)），repo 名做过校验防注入。

## 原生评测：sf eval

按 recipe 声明的框架原生评测入口执行：

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
# NeMo-RL：评 HF 模型
sf eval my-grpo --model /shared/hf_export/my-model
# NeMo-RL：显式评测配置
sf eval my-grpo --model Qwen/Qwen3.5-9B --eval-config configs/eval/gsm8k.yaml

# verl SFT：把验证样本回传到训练 run
sf eval my-verl-sft --run-id <TRAIN_RUN_ID> --step 200 --data data/val.parquet
```

<Note>
  `sf eval` 是**框架原生**评测（复用训练框架的推理路径）；跨模型可比的**标准基准**（GSM8K / MMLU / C-Eval…）用 `sf bench`，分数入库统一看板。见 [Benchmarks](/zh-Hans/guides/benchmarks)。
</Note>

## 清理：sf clean

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
sf clean my-old-exp        # 交互确认
sf clean my-old-exp -y     # 跳过确认
```

删除该实验在集群上的 checkpoint 与日志，**不可恢复**。作业记录与指标保留在平台。

## 一条完整流水线示例

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
# 1. SFT 打底
sf new sft-qwen95 --method nemo-rl/sft
sf submit sft-qwen95 --profile h200:8
# 2. GRPO 对齐（接 SFT 产物，训完自动导出）
sf new grpo-qwen95 --method nemo-rl/grpo
sf submit grpo-qwen95 --profile h200:8 \
  --init-from run/<SFT_RUN>/checkpoint --then export
# 3. 标准基准验证
sf bench run bench-qwen95 -m run:<GRPO_RUN> --suites gsm8k,mmlu
# 4. Playground 试聊
sf serve start run:<GRPO_RUN> --gpus 1
```
