执行摘要
- 一句话:为日志分析器添加自动提Issue和可疑PR识别功能,优化CI故障处理流程。
- 推荐动作:该PR值得负责CI/CD和运维的工程师精读。重点关注
log_analysis_prompt.md 中新增的决策逻辑和规则,这是自动化故障处理的核心设计。同时,注意临时配置变更仅为测试目的,需跟踪后续PR以确保配置恢复。
功能与动机
根据PR body描述,目的是让AI日志分析器能够自动处理夜间测试失败:对于可明确归因于配置、标志或编排的bug,自动向NVIDIA/srt-slurm仓库提交带有具体证据的Issue;对于可能源于sglang本身的故障,则改为审查过去一天的提交并列出可疑PR,供人工决策,避免自动提Issue。这旨在提升故障诊断和问题追踪的自动化程度与准确性。
实现拆解
- 更新日志分析提示文档:修改
scripts/ci/slurm/log_analysis_prompt.md,新增“Filing Issues”和“Suspect PRs”章节。详细规定了Issue提交流程、仓库归属判断逻辑(srt-slurm用于编排/配置问题,sglang相关故障仅列出可疑PR)、重复检查机制以及Issue内容格式。
- 调整CI配置以测试新功能:修改
scripts/ci/slurm/nightly-configs.yaml,注释掉 dsr1-fp8-gb200-dynamo-sglang 配置块(标记为TODO,将在后续PR重新启用)。目的是让CI仅运行已知会失败的 dsr1-fp4-gb200-dynamo-sglang 配置,以便端到端验证日志分析器的新增功能。
- 设置脚本执行权限:修改
scripts/ci/slurm/analyze_logs_with_modal.py 的文件权限,确保其可执行。这是一个配套的运维调整。
关键文件:
scripts/ci/slurm/log_analysis_prompt.md(模块 CI脚本;类别 docs;类型 documentation): 这是本次PR的核心文件,定义了AI日志分析器的新行为规则,包括何时提Issue、向哪个仓库提、如何识别可疑PR等关键逻辑。
scripts/ci/slurm/nightly-configs.yaml(模块 CI脚本;类别 infra;类型 configuration): 为了测试新的日志分析器功能,临时禁用了已知会失败的fp8配置项,这是实现测试计划的关键步骤。
scripts/ci/slurm/analyze_logs_with_modal.py(模块 CI脚本;类别 infra;类型 infrastructure): 配套调整,确保脚本文件具有可执行权限,是运维层面的必要改动。
关键符号:未识别
关键源码片段
scripts/ci/slurm/nightly-configs.yaml
为了测试新的日志分析器功能,临时禁用了已知会失败的fp8配置项,这是实现测试计划的关键步骤。
# TODO: re-enable after testing log analyzer (see follow-up PR)
# dsr1-fp8-gb200-dynamo-sglang:
# model: deepseek-ai/DeepSeek-R1-0528
# model-prefix: dsr1
# runner: gb200
# precision: fp8
# framework: dynamo-sglang
# multinode: true
# disagg: true
# seq-len-configs:
# - isl: 1024
# osl: 1024
# search-space:
# - conc-list: [1024, 2048, 4096, 6144]
# config_file: recipes/gb200-fp8/1k1k/max-tpt.yaml
# - conc-list: [4096]
# config_file: recipes/gb200-fp8/1k1k/ultra-tpt.yaml
dsr1-fp4-gb200-dynamo-sglang:
model: nvidia/DeepSeek-R1-0528-NVFP4-v2
# ... 其他配置保持不变
评论区精华
本次PR没有review评论,所有变更由作者直接合并。从提交历史看,有三个提交,表明实现过程有小的迭代:先更新核心逻辑,再临时禁用配置以方便测试,最后调整脚本权限。
风险与影响
- 风险:1. 配置风险:临时禁用
dsr1-fp8-gb200-dynamo-sglang 配置可能导致相关测试在CI中暂时缺失,需确保后续PR及时重新启用。
2. 自动化误判风险:新增的自动提Issue和可疑PR识别逻辑依赖于AI分析器的准确判断。如果规则定义不清或AI误判,可能导致向错误仓库提交Issue或遗漏真正的问题PR。
3. 依赖工具风险:实现依赖于 gh (GitHub CLI) 工具的正常工作,如果环境缺少该工具或版本不兼容,自动化流程会失败。
- 影响:1. 对团队的影响:显著提升CI故障处理效率。运维和开发人员无需手动分析日志和提Issue,AI分析器能自动归类并给出初步结论(直接提Issue或列出可疑PR),减少了人工介入的工作量。
2. 对系统的影响:改进了CI/CD流水线的可观测性和问题追踪能力。故障根因能更快速、准确地被记录和分配,有助于加速问题修复周期。
3. 影响范围:主要影响使用Slurm进行夜间测试的CI流程,以及负责处理相关故障的运维和开发人员。不影响核心的sglang运行时或模型推理逻辑。
- 风险标记:自动化误判风险, 临时配置缺失
关联脉络
参与讨论