SuperAPI AI 工具集

experiment-queue

通用与其它

查看项目

更新于 10-15 23:45

技能介绍

用途:experiment-queue 用于在 SSH 远程 GPU 服务器上编排大规模机器学习实验,适合 /run-experiment 不够用的场景,例如 ≥10 个作业需跨 GPU 批处理、多随机种子扫描(如 21 个种子 × 12 个单元)、波次切换、教师+学生链式训练,以及易 OOM 需换 GPU 重试的配置。不适用于单个临时实验、Modal/Vast.ai 部署,或需人工检查两次运行之间结果的实验。

主要能力:通过 manifest 显式定义作业状态;提供作业状态机(pending、running、completed、failed_oom、failed_other、stuck);支持 stale screen 检测清理(python 已退出但 screen 残留);OOM 检测后按 delay 重试至 max_attempts;按波次编排,仅当当前波次全部进程退出、无残留 screen 且 GPU 显存低于阈值(默认 500 MiB)时启动下一波;支持 phases 与 depends_on 实现教师→学生等链式流程;支持 grid 笛卡尔积自动展开作业,以及断点恢复。

使用方式:先解析 manifest 或从 grid/自然语言构建;执行 pre-flight(SSH、conda 环境、cwd、前置检查点、GPU 可用性);将 queue_manager.py、build_manifest.py 和 manifest.json 上传到远程运行目录;以 nohup 分离进程启动调度器,使用 --manifest、--state、--log-dir 参数,不要传 --log;用 jq 读取远程 queue_state.json 监控状态;完成后汇总为本地 summary.md,可选触发分析。恢复崩溃队列时复用已有 RUN_TS 并重跑启动命令,不要重跑引导步骤。

限制:内部已有 60 秒轮询的独立调度器,不要再套一层 /loop 或 CronCreate 轮询,以免与其波次切换逻辑竞态。调度器假定目标环境已按 compute-env-contract 构建校验;若一批作业在 import 阶段即失败,应先检查环境契约而非队列。2026-08 调度器修复前写出的 queue_state.json 中失败作业会被误判为 stuck,需删除该状态文件并从引导步骤重跑。explicit 的 --log 参数未被使用。具体安装或版本信息暂未提供。