2026-09-27:评分启动故障后的训练恢复约定
在正式模型终评之前修订。原 EVALUATION_PROTOCOL_20260927.md 的任务/种子/80步终点/比较/评测分母不变,原readiness和所有原始记录不改。
触发与旧run状态
原O42第40次调用已消费18条有reward0但无native report的轨迹;消费键在归档中均唯一。此前第5次也消费过1条同类记录,其保存外层测试日志显示目标4测试通过。采样版本37/38共36条缺报告零奖励,主要是评分器依赖下载失败。不能以累计约0.7%替代按批次检查,也不能把外层日志回放冒充原报告。
22:41以精确driver身份发出TERM,保留ckpt30/40和HF10/20/30/40;40次训练调用完成,第41次未记录完成。原O42仅保留为故障/诊断记录,不能作为本轮严格匹配主比较的O终点。不从这些检查点恢复主比较;修复后的O42从同一原始基座重新开始,仍固定80次调用。
统一的新训练口径
- 所有后继O/B/M/E共用同一149题、2384别名、dev39及原超参数/14卡布局。改变只限于评分启动可靠性和不可验证奖励的准入。
- 原生解析/评分仍为固定SWE-bench4.0.3源码闭包;保留官方标签和原生ERROR/XFAIL/缺测试语义。离线评分器先保存测试输出,报告/观测/完成记录齐全后才写奖励。
- 声称来自verifier的数值奖励必须有匹配的native report、观测、完成记录和来源。缺失/不一致作为未判分,沿用有限重试与现有屏蔽逻辑,不能凭stdout存在补0。
- 语义变化明确列出:移除旧“RewardFileNotFoundError且有stdout就判0”的推断。没有完整判分的项目安装/构建失败也不自动判为模型0,可能减少训练中的负反馈、改变重试/屏蔽率;各臂须报告这些比例和实际生成/verifier成本。正式评测中的无效模型产物/具名模型失败规则仍按原协议单独执行。
- 既有明确的模型上下文/格式规则保留。agent超时但有完整有效判分仍照判;超时且判分无效保持原不重采样、屏蔽行为。有效native0不能因其他I/O问题被重采样成更好的结局。
- 新run、新profile、新隔离runtime及新release分别留证据。旧O、原CPU队列、运行中batch13及原终评消费者不热改。不自动重启被外部停止的任务。
放行前必备
- 离线原生闭包的保存日志等价、实容器gold/empty、失败无伪奖励检查与假设审查;训练149全部profile/别名成员、官方config/patch/测试命令、镜像/资源保持。
- 新奖励准入单测覆盖真实有效0/1、真实缺报告0、损坏/不匹配产物、重试状态隔离及agent超时分支。
- 两机源/数据与实际模块导入预检,旧driver/沙箱退出与14卡资源检查,新的证据绑定release;不得复用旧ready=true。
- 启动后首3次调用检查真实判分准入/屏蔽/梯度/实际参数改变,保留持续监督与SwanLab。训练/主比较效果仍未测。
控制工具另有已观察到的运行时问题:训练venv没有os.pidfd_open;容器系统Python3.10具备pidfd API。后继的标准库inspect/signal控制操作使用系统Python,执行训练/Harbor仍用原venv。原监控/队列脚本不原地改写。