Prhub

#25737 Reduce excessively long logs caused by transformer version updates.

原始 PR 作者 liuxianglong17 合并时间 2026-05-20 11:39 文件变更 5 提交数 3 评论 2 代码增减 +10 / -0

执行摘要

限制 NPU 测试中 transformers 的日志级别

当 pipeline 执行测试用例时,打印了过多的日志,影响了执行时间和失败用例的定位。根本原因是 transformers 版本更新导致调用相关方法时打印兼容性警告。PR body 原文:"When the pipeline executes test cases, too many logs are printed, affecting the execution time and locating the failure cause of failed test cases."

该 PR 属于常规维护性质,值得快速合入以改善测试体验。如果有更多 NPU 测试文件出现类似日志问题,建议统一纳入。

讨论亮点

无 review 评论,PR 获得两个 approve(adarshxs 和 sglang-npu-bot),没有发现争议或讨论。

实现拆解

实现方式非常简单,在所有 5 个 NPU 测试文件中添加 TRANSFORMERS_VERBOSITY 环境变量设置,值为 "error",使得只有 error 级别的 transformers 日志才会输出。

  1. 在测试类级别设置环境变量:在 test_npu_qwq_32b_w8a8.pytest_npu_hierarchical_cache_mla.py 中,通过 os.environ["TRANSFORMERS_VERBOSITY"] = "error" 在类定义或测试方法内设置环境变量。
  2. 在启动服务器的 env 参数中设置:在 test_npu_memory_consumption.py 中,通过 popen_launch_serverenv 字典参数传递环境变量,仅对子进程生效。
  3. 在 extra_envs 字典中添加:在 test_npu_deepep.pytest_npu_deepep_auto_deepseek_v3_2_w8a8.py 中,将 TRANSFORMERS_VERBOSITY 加入 extra_envs 字典后通过 os.environ.update() 统一设置。
文件 模块 状态 重要度
test/registered/ascend/llm_models/test_npu_qwq_32b_w8a8.py NPU 测试 modified 4.03
test/registered/ascend/basic_function/HiCache/test_npu_hierarchical_cache_mla.py NPU 测试 modified 3.52
test/registered/ascend/test_npu_memory_consumption.py NPU 测试 modified 3.52
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep.py NPU 测试 modified 3.28
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_auto_deepseek_v3_2_w8a8.py NPU 测试 modified 3.28

关键源码片段

test/registered/ascend/llm_models/test_npu_qwq_32b_w8a8.py test-coverage

主要修改:在测试类中添加 `os.environ["TRANSFORMERS_VERBOSITY"] = "error"` 以抑制 transformers 兼容性警告日志。

import os
import unittestfrom sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.test_ascend_utils import QWQ_32B_W8A8_WEIGHTS_PATH
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCaseregister_npu_ci(est_time=400, suite="nightly-2-npu-a3", nightly=True)class TestQWQ32BW8A8(GSM8KAscendMixin, CustomTestCase):
    # ... 其他代码 ...
    os.environ["TRANSFORMERS_VERBOSITY"] = "error" # 仅输出 error 级别日志if __name__ == "__main__":
    unittest.main()
test/registered/ascend/basic_function/HiCache/test_npu_hierarchical_cache_mla.py test-coverage

在测试方法 `test_no_chunked_prefill_without_radix_cache` 中设置环境变量,抑制日志。

import os
import unittest
# ... 其他导入 ...class TestNpuHierarchicalCacheMla(CustomTestCase):
    def test_no_chunked_prefill_without_radix_cache(self):
        # ... 设置 common_args ...
        os.environ["TRANSFORMERS_VERBOSITY"] = "error" # 抑制 transformers 警告
        for common_arg in common_args:
            # ... 执行测试 ...
test/registered/ascend/test_npu_memory_consumption.py test-coverage

通过 `popen_launch_server` 的 `env` 参数设置环境变量,确保仅子进程生效。

# 在 test_memory_consumption 方法中
process = popen_launch_server(
    model,
    base_url,
    timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
    other_args=[
        # ... 参数 ...
    ],
    env={
        "TRANSFORMERS_VERBOSITY": "error", # 仅对子进程生效
    },
)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。该变更仅在测试环境中设置环境变量,不影响生产代码。如果 future transformers 版本改变了 verbosity 的 key 名称,此设置将失效但不会导致错误。另需注意 os.environ 的设置是进程全局的,可能会影响同一进程内其他模块的 transformers 日志行为(但在测试场景中无影响)。

影响范围限定在 NPU 测试流水线中的 5 个测试文件,不涉及任何产品代码或用户可见行为。变更后这些测试的运行日志量将显著减少,有助于更快定位真正的失败原因,且不会改变测试的语义或结果。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论