Skip to main content
-g/--set-grid 声明网格轴(可重复,多轴取笛卡尔积——上例 3×2=6 个变体);-s/--set 是所有变体共用的固定覆盖。每个变体走一次标准提交:校验、配额、排队全部照常生效,不存在绕过配额的批量通道。

先看再提:—dry-run

只打印变体列表(每个变体的完整覆盖集合),不提交。网格大时先 dry-run 确认再放行。

分组与追踪

  • 所有变体带同一个 sweep_id,默认分组名 sweep-<实验名>-<时间戳>-p 自定义);
  • 控制台作业页给 sweep 成员打徽标,项目页按项目聚合曲线对比;
  • 一键停止整组:

实践建议

第一轮跨量级扫学习率(1e-6 / 1e-5 / 1e-4),锁定量级后第二轮在量级内细扫。盲目全网格是烧卡最快的方式。
sweep 变体建议先把 max_num_steps 降到能看出趋势的最小值(如 200 步),选出前 2 名再全量训练。
6 变体 × 4 卡 = 24 卡并发需求。超出配额的变体会排队而不是失败——但也意味着组内变体不是同时开跑的,对比时注意数据版本一致。

早停:砍掉明显没戏的变体

网格里通常有一半配置在前几百步就能看出不行。RL 一跑几十 GPU 小时,让它们跑完是在烧钱。
开了之后,平台在若干个 step 梯级 上比一次,把该梯级上垫底的变体停掉,剩下的继续跑到下一个梯级: 被停的变体会在作业详情页写明第几步、跟几个变体比、排第几——「被早停」三个字说明不了任何事。
四条刻意的保守取舍:只在梯级上裁决,不逐步比较——每步都比会因为曲线的正常抖动砍掉一个恰好在低谷的变体。只跟到过同一梯级的变体比——拿跑到 100 步的和跑到 900 步的比,比的是谁跑得久。同梯级少于 4 个变体不裁决——两个里砍一个等于抛硬币,而损失是真金白银。每级至少留一个——--keep 再大也不会把一个梯级上的变体全砍光。部署级急停:FORGE_SWEEP_EARLY_STOP_ENABLED=false 关掉全平台的早停,不用改任何 sweep。