执行摘要
- 一句话:移除 RAY_DEDUP_LOGS=0,NPU nightly 测试恢复 Ray 日志去重
- 推荐动作:该 PR 是一次琐碎但清晰的 CI 清理,不值得精读源码。值得关注的设计点是:以回归 Ray 默认行为的方式清理冗余环境变量,比直接修改日志格式更轻量。若后续对 Ray 日志去重语义感兴趣,可查阅 RAY_DEDUP_LOGS 在不同 Ray 版本中的行为;同时可顺带检查仓库其他 nightly 脚本是否还有类似冗余环境变量需要一并清理。
功能与动机
PR body 明确说明:Remove export RAY_DEDUP_LOGS=0 from tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_8b_fsdp2_npu.sh so the GSPO Qwen3-8B FSDP2 NPU nightly test uses Ray's default log dedup behavior (less noisy logs / avoid duplicate log flooding)。作者在提交前已检索仓库,确认没有其他相关 open PR。
实现拆解
- 变更入口:编辑 tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_8b_fsdp2_npu.sh 的环境变量区,删除第 6 行 export RAY_DEDUP_LOGS=0;脚本中 HYDRA_FULL_ERROR、TASK_QUEUE_ENABLE、HCCL_EXEC_TIMEOUT、HCCL_CONNECT_TIMEOUT、HCCL_ASYNC_ERROR_HANDLING、CPU_AFFINITY_CONF、VLLM_USE_V1 等其余导出保持不变。
- 行为变化:脚本不再显式禁用 Ray 的日志去重,Ray 将按默认策略合并重复日志,降低 nightly 测试日志量与噪音;训练参数、数据路径、vLLM rollout 配置均不受影响。
- 配套改动:无测试、配置、schema 或部署配套变更;作者已在 PR body 中说明运行 pre-commit(shellcheck 通过),且该变更仅针对已有 nightly CI 脚本,无需新增端到端测试。
关键文件:
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_8b_fsdp2_npu.sh(模块 NPU 测试;类别 test;类型 configuration): 该脚本是 GSPO Qwen3-8B FSDP2 NPU 夜间测试的入口脚本,本次唯一变更是删除 export RAY_DEDUP_LOGS=0,使 Ray 日志去重恢复默认行为,是全 PR 的核心与全部改动所在。
关键符号:未识别
关键源码片段
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_8b_fsdp2_npu.sh
该脚本是 GSPO Qwen3-8B FSDP2 NPU 夜间测试的入口脚本,本次唯一变更是删除 export RAY_DEDUP_LOGS=0,使 Ray 日志去重恢复默认行为,是全 PR 的核心与全部改动所在。
tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_8b_fsdp2_npu.sh(head 版本)环境变量区,删除 RAY_DEDUP_LOGS=0 后的完整头部:
#!/usr/bin/env bash
# GSPO | Qwen3-8B | GSM8K | vLLM rollout | FSDP2 training | Ascend NPU
set -xeuo pipefail
# 本 PR 删除了 export RAY_DEDUP_LOGS=0:
# Ray 恢复默认日志去重,避免重复日志刷屏。
# 若日后排查分布式问题需要完整原始日志,可重新开启该变量。
export HYDRA_FULL_ERROR=1
export TASK_QUEUE_ENABLE=1
export HCCL_EXEC_TIMEOUT=3600
export HCCL_CONNECT_TIMEOUT=3600
export HCCL_ASYNC_ERROR_HANDLING=0
export CPU_AFFINITY_CONF=1
export VLLM_USE_V1=1
评论区精华
本 PR 没有任何 review 评论,唯一 reviewer wucong25 直接批准(APPROVED)。PR body 的自检说明中强调:Ran pre-commit on the changed file (shellcheck passed),以及 The change only removes one env var export from a CI test script; no training/algorithm behavior affected。
风险与影响
- 风险:风险极低,但有两个值得注意的点:1)日志信息量变化:删除该变量后,Ray 会对重复日志做去重聚合,若未来需要依赖逐条原始日志定位分布式问题,可读信息可能变少,这是本次变更唯一的潜在副作用;2)行为一致性:仓库内其他脚本默认不设置 RAY_DEDUP_LOGS,本 PR 是向默认行为回归,因此 CI 日志风格更统一,不引入新的兼容性问题。变更范围仅限一个 bash 脚本中的环境变量,不涉及训练、推理或 checkpoint 逻辑,无回归风险。
- 影响:影响范围很小:仅影响 tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_8b_fsdp2_npu.sh 这条 GSPO Qwen3-8B FSDP2 NPU nightly 测试线的日志输出;对最终用户无影响,不改变任何 API、训练算法或模型行为。对团队的意义在于减少 nightly CI 日志刷屏,提升日志可读性与维护体验,影响程度低。
- 风险标记:低风险 CI 清理, 日志去重行为变化
关联脉络
- PR #7238 [doc] feat: Update vllm/vllm-ascend and torch version: 同属 NPU/Ascend nightly CI 基础设施调整线,该 PR 升级 vLLM/vLLM-Ascend 并同步 nightly_ascend.yml 工作流与镜像配置。
- PR #7201 [doc] refactor: rename latest ascend docker name: 同样属于 Ascend/NPU CI 基础设施维护,重构 docker-build-ascend 系列工作流命名,与本 PR 的 nightly CI 脚本清理方向一致。
参与讨论