跳到主要内容

Checkpoint 与恢复

按用途保存​

SDK 操作用途
training_client.save_state(name=...).result()保存可继续训练的状态
training_client.load_state_with_optimizer(path).result()恢复训练 Checkpoint 及优化器状态
training_client.save_weights_for_sampler(name=...).result()导出采样权重,要求服务端支持相应配置

等待 future 完成,再使用返回的路径。Sampler 权重不能替代续训所需的优化器状态。

获取保存路径​

SFT 示例在输出目录写入 latest-checkpoint.json,包含 path、step、model 和 dataset。这是定位文件,不是权重本体。保留该文件与运行记录,使用准确返回路径,不要根据作业 ID 拼接 URI。

启用 --verify-download 后,示例在 finish 后下载持久文件至 verified-checkpoint/,校验大小和 SHA-256,并写入 durable-verification.json。仅有定位文件、列表记录或脚本退出成功,都不能证明本地完整下载已校验。

显式恢复​

使用包含优化器状态的 Checkpoint,保持模型、数据集一致,并从运行记录取得已完成步数:

uv run --locked python examples/train_sft_qwen_tulu3.py \
--resume-from CHECKPOINT_PATH --start-step 1 --max-steps 2 \
--batch-size 1 --save-every 1 --skip-sample \
--output-dir outputs/sft-resumed-run

替换 CHECKPOINT_PATH 并按快速开始配置认证。--max-steps 是总目标步数,必须大于 --start-step。示例恢复优化器,并在数据流中跳过 start_step × batch_size 条 datum。恢复时保持数据顺序和 batch size;Checkpoint 不会自动冻结外部数据流。

恢复可能重算最近保存点之后的操作,不保证每次梯度更新 exactly-once。Checkpoint 按 owner 授权,当前后端不一定支持所有历史或跨 Session Checkpoint。加载被拒绝时请管理员核对归属和后端支持,不要改写路径绕过检查。

使用采样权重​

管理员在 Policy 中启用 rollout 后,示例的 --sample 才可导出 sampler 权重,用返回的 model_path 创建采样客户端,等待 sample(...).result() 并保存 sample.json。添加参数不会把 actor-only Policy 变成可采样策略。

查询已登记 Checkpoint​

使用发布版 CLI:

el train checkpoint list --session-id SESSION_ID --limit 25

CLI 只列出已登记元数据,不下载权重。空列表可能表示尚未发布或登记。下载通过授权签名 URL 完成,无需交付 R2 凭据,也不向存储 URL 发送平台 KEY。