StarForge 是围绕后训练作业的那一整圈事情的控制平面。它管的是:谁可以跑什么、
用哪个获批的运行时和数据、在哪些 GPU 上、在什么配额之下——
以及把结果带回来:指标、日志、评测、产物、一个模型版本、一次部署,
还有那些最终会变成下一版训练数据的生产流量。
它对两件事刻意保持中立。哪个框架训练模型——NeMo-RL、verl、TRL、OpenRLHF,或者你自己的;
以及哪个后端运行它:Docker、裸机 agent、KubeRay 还是 Slurm。
一份 JobSpec 表达意图,平台把它送到其中任何一个上。
它不做的事,是拥有作业内部跑的东西。那属于训练框架,以及你的代码。
快速开始
安装、登录、提交,看着第一个数据点落在曲线上。
核心概念
实验、run、recipe、profile、执行器——后面一切都在用这几个名词。
它做什么
StarForge 是覆盖整个后训练生命周期的控制平面。它负责解析、校验、存储、调度和分发, 并且有意不去拥有作业内部跑的东西——那归训练框架。选一条路
我要扩展平台
九个扩展点:recipe、benchmark、环境、rubric、插件。
我要运维这套东西
四种执行器、233 项配置、认证、存储、升级。
一次完整的 run
1
搭骨架
sf init 创建项目。sf new 把方法模板拷进 experiments/<name>/,
并在 recipe.lock.json 里固定确切的 recipe 和框架版本。2
校验
sf validate 按方法声明检查类型、取值范围和 batch size 整除关系——在你的机器上,几秒钟,
在任何东西入队之前。3
提交
sf submit 打包工作树,拒绝把任何看起来像密钥的东西放进去,然后把作业交给服务端。
准入检查配额、recipe 握手和镜像允许列表,通过后入队。4
观察
作业通过 ingest 回传生命周期打点、指标、样本、日志和产物。控制台实时画出来。
5
决策
用
sf bench 打分、与之前的 run 对比、在 Playground 里聊一聊、导出成 HuggingFace 格式,
或者注册成一个模型版本并部署。什么东西在哪里跑
控制平面从不执行第三方代码,训练者也从不拿到受保护数据集的原始内容。
两者都是结构上的保证,不是制度上的约定:见扩展点。