用途:在当前会话中执行一个有界的研究实验分支,遵循“实验马尾辫”品味——小但完整:一个分支,做对,可绘图。不横向扩展到其他分支,也不为省时间而降低严谨性。
主要能力与流程:
- 确认分支必要性:检查项目记忆、活动计划和已有结果,判断是否已被剪枝或指标已测;用2-3句话重述该批次对最终表格/图表的贡献、填充的单元格及验收指标。
- 只追问未解决的配置决策:事实(路径、设备可用性、缓存位置、先前配置)自行检查;仅向用户询问改变科学含义的选择,如未固定的超参数、种子数、划分、回调与重载覆盖、正式与探索状态。保持指标契约与同类运行一致。
- 预检环境与资源:激活环境、工作目录、依赖版本、输入路径、输出与检查点目录可写;先了解平台(CUDA/Ascend/MUSA/PPU等),用平台自身工具读取设备状态(nvidia-smi、npu-smi、mthreads-smi等),显式传递可见设备变量,避免默认设备冲突;检查残留任务与兄弟分支;给出诚实的时长/内存估计。资源不足时不启动也不静默缩减,说明短缺并选择等待、换设备或协商配置变更。
- 在当前会话实现并按项目约定运行:实现发生在同一会话,研究者发出许可后执行;模块放置合理,实验代码放在实验目录;松散耦合,不修改共享内部;最小研究代码,无防御性编程;注意已知失败模式(OOM、NaN、检查点序列化、指标退化、驱逐);区分环境与代码问题,保留失败证据,不将失败运行报告为结果行;负结果也是结果。
- 长运行用 later 委托执行:长运行不得占用回合或循环轮询;显式委托,后台启动后调用 later 工具,估算时长加约10%余量,将提示写为对未来自己的完整指令;调度后结束回合,later 调用是回合最后动作;唤醒时验证运行确实完成并成功,若仍在运行则根据观察进度重新估算剩余时间并再次调度。
- 指标落地:每次运行进入共享结果表,含 id、配置、划分、表面、指标、状态、证据路径;完成前检查可绘图性;批次报告强制,包括部分、阻塞或中止工作,写入 <batch-or-stage>.report.md,含完成情况总表、实际配置与命令、未运行项及原因、指标契约偏差、失败及处理、活动应重新考虑的事项;不得伪造结果行或静默跳过计划运行。
适用场景:明确请求的单分支实验、需要可复现指标并纳入最终图表的实验批次。
限制:不适用于多分支活动(应提议 exp-campaign);不进行新会话交接;不修改共享内部;不伪造结果;资料未提供具体安装命令、收费或平台支持细节。