Skip to main content
StarForge 的 lab 是本机上一个普通 git 仓库。控制台不会去 clone。sf submit 打一个文件子集的包,上传后由服务端再注入 Job Capsule。

sf init my-lab --yes 之后

starforge.yaml 需要一个 name,字符限制 [A-Za-z0-9._-]。这就是控制台项目名。提交时不要传 --project
需要项目的命令(sf newsubmitlsvalidate)从当前目录往上找这个文件。CI 可以设 SF_REPO_ROOT,不必 cdsf login / logout / status 是全局的,不依赖项目。

一个实验目录

custom/custom 还会有 train.sh(唯一入口)。旁边可以再放 train.pysf plugin install … --exp 之后会多 plugins.lock.json 不要在实验目录里放一个 framework 文件指望平台去读。方法以锁文件为准。

什么会被上传

CLI 打包实验、common/configs/。排除列表和服务器共用(starforge.contract.env 里的 PACKAGE_EXCLUDES): JobSpec 写在包内 .starforge/jobspec.json。注意是 .starforge/,不是 .forge/.forge 会被排除,写进去集群侧读不到。

仓库里不会有的东西

  • 集群 kubeconfig、Slurm JWT、对象存储密钥
  • Job Capsule(runner.pex)。准入后由服务端注入。
  • 硬件并行度。来自 --profile 和注册表。

Git

提交会记录 NRL_GIT_COMMITNRL_GIT_DIRTY。工作区不干净默认拒绝,除非 --allow-dirty。未跟踪文件两种情况下都会当警告列出来。sf init 默认就初始化 git,第一次提交不要拖到交作业那一刻。