Nemo Gym Debugging 用于 Nemo Gym 运行或奖励剖析作业出现失败、异常时进行调试。它强调按分类而非猜测定位问题,先判断故障属于哪一层:infra(Slurm、Ray、容器、文件系统、网络、端口)、model serving(vLLM 启动、就绪与吞吐)、config(配置包错误、缺少 agent、额外参数错误)、data/schema(JSONL 字段与验证器或资源服务器期望不符)、verifier/runtime(资源服务器异常或验证响应格式错误)、cache/resume(物化输入过期或 rollout 输出不完整)、throughput/resources(并发过高、评审瓶颈、工具或沙箱延迟)。
建议调试顺序:检查 Slurm/Ray 作业状态与日志;检查 vLLM 就绪与 /models 可用性;检查 Gym 服务器就绪(预期服务器是否全部启动);若环境使用工具则检查工具路由,仅在配置了沙箱时检查沙箱就绪;检查物化输入与源数据时间戳;检查 rollout 输出与剖析/指标输出数量;查看首个真实验证器异常而非关闭噪声;将失败行模式与资源服务器请求模型对比。
高价值可疑点:数据变更且启用 resume_from_cache 时,物化输入过期是首要怀疑对象;rollout 有少量行而剖析为空时,检查验证器错误与部分输出缓存;服务器全部就绪但验证器返回 422/500 时,先查请求体模式再查基础设施;工具环境挂起或部分工作时,先查工具归属与加载,只有在沙箱属于该环境时才查沙箱就绪;工具调用行在生成前因 vLLM 语法/模式错误失败时,先读 references/vllm-tool-call-schema-checks.md 并做静态工具模式检查;日志只显示嵌套 inner server 500 而无真实提供方/验证器正文时,先用 ++global_aiohttp_client_request_debug=True 启用请求边界可见性,并先读 references/request-boundary-visibility.md。
参考文档:references/error-profiles.md 用于在改代码或数据前分类故障层;references/diagnostic-snippets.md 提供只读检查日志、输出计数、物化输入、rollout JSONL 结构、服务器就绪与奖励摘要的命令;references/vllm-tool-call-schema-checks.md 处理工具调用数据集在生成前被 vLLM/Outlines 语法编译拒绝的问题;references/request-boundary-visibility.md 处理 /run 500 隐藏行标识或嵌套 Gym 500 隐藏内部模型/验证器/提供方错误的情况。
报告时应说明:观察到的症状、失败层、来自日志或文件的证据、可能原因、下一步具体行动。若任务是为 Nemo Gym 添加新环境,应改用 nemo-gym-env-integration;若涉及更改剖析行为,应改用 nemo-gym-reward-profiling。