执行摘要
为 GLM5 添加 UnifiedTree Nightly CI 测试
为 GLM5 模型的 HiCache L3 精度测试增加 UnifiedRadixTree 覆盖,同时调整测试参数以提高 CI 运行稳定性。
值得作为测试基础设施扩展的示例:通过环境变量切换不同实现,在 nightly 中保持对候选方案的长期验证。注意阈值调整需结合真实精度数据,避免过度放松标准。
无实质性人工 review 讨论,仅有一个 bot 代码审查摘要。
为 GLM5 模型的 HiCache L3 精度测试增加 UnifiedRadixTree 覆盖,同时调整测试参数以提高 CI 运行稳定性。
值得作为测试基础设施扩展的示例:通过环境变量切换不同实现,在 nightly 中保持对候选方案的长期验证。注意阈值调整需结合真实精度数据,避免过度放松标准。
无实质性人工 review 讨论,仅有一个 bot 代码审查摘要。
test_unified_radix_cache_kl_hicache_nightly.py 重命名为 test_unified_radix_cache_kl_nightly.py,去除 hicache 前缀以反映同时覆盖多种缓存后端。AccuracyTwoPassMixin 中将 mmlu_threshold 从 0.75 降至 0.65,num_mmlu_examples 从 200 减至 100,以降低测试资源消耗并减少随机性导致的失败。TestGLM5HiCacheL3Accuracy 重命名为 TestGLM5HiRadixCacheL3Accuracy,明确其使用 HiRadixTree,启动参数不变。TestGLM5UnifiedRadixCacheL3Accuracy,继承同一 AccuracyTwoPassMixin,启动时额外设置环境变量 SGLANG_ENABLE_UNIFIED_RADIX_TREE=1,其余参数与旧类一致。新增类添加了 tearDownClass 方法(实际与旧类共享逻辑)。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_nightly.py |
测试 | renamed | 7.27 |
test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_nightly.py
rename-or-move
唯一变更文件,包含类重命名、参数调整和新增 UnifiedRadixTree 测试类,是 nightly CI 的核心测试逻辑。
# 调整后的 MMLU 参数
class AccuracyTwoPassMixin:
gsm8k_threshold: float = 0.90
num_gsm8k_questions: int = 200
gsm8k_parallel: int = 40
# 降低了阈值和样本数,减少测试资源消耗
mmlu_threshold: float = 0.65
num_mmlu_examples: int = 100
mmlu_num_threads: int = 32
max_accuracy_diff: float = 0.02
def _two_pass(self, name, run_fn, threshold):
# 略……
class TestGLM5HiRadixCacheL3Accuracy(AccuracyTwoPassMixin, CustomTestCase):
"""GLM-5.1-FP8 + HiCache L3 (file backend), with HiRadixTree (旧树)."""
@classmethod
def setUpClass(cls):
# 与之前完全相同,使用 HiRadixTree(默认)
cls.model = GLM5_MODEL
cls.base_url = DEFAULT_URL_FOR_TEST
cls.hicache_dir = tempfile.mkdtemp(prefix="hicache_l3_")
cls.process = popen_launch_server(
cls.model, cls.base_url, timeout=GLM5_LAUNCH_TIMEOUT,
other_args=[
"--trust-remote-code", "--tp-size", "8", "--page-size", "64",
"--mem-fraction-static", "0.85",
'--model-loader-extra-config', '{"enable_multithread_load": true, "num_threads": 64}',
"--enable-hierarchical-cache", "--hicache-ratio", "2",
"--hicache-write-policy", "write_through",
"--hicache-storage-prefetch-policy", "wait_complete",
"--hicache-io-backend", "direct", "--hicache-mem-layout", "page_first_direct",
"--hicache-storage-backend", "file",
],
env={"SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR": cls.hicache_dir},
)
class TestGLM5UnifiedRadixCacheL3Accuracy(AccuracyTwoPassMixin, CustomTestCase):
"""GLM-5.1-FP8 + HiCache L3 (file backend), with UnifiedRadixTree (新树)."""
@classmethod
def setUpClass(cls):
cls.model = GLM5_MODEL
cls.base_url = DEFAULT_URL_FOR_TEST
cls.hicache_dir = tempfile.mkdtemp(prefix="hicache_l3_")
cls.process = popen_launch_server(
cls.model, cls.base_url, timeout=GLM5_LAUNCH_TIMEOUT,
other_args=[
# 与 HiRadixTree 参数完全相同
"--trust-remote-code", "--tp-size", "8", "--page-size", "64",
"--mem-fraction-static", "0.85",
'--model-loader-extra-config', '{"enable_multithread_load": true, "num_threads": 64}',
"--enable-hierarchical-cache", "--hicache-ratio", "2",
"--hicache-write-policy", "write_through",
"--hicache-storage-prefetch-policy", "wait_complete",
"--hicache-io-backend", "direct", "--hicache-mem-layout", "page_first_direct",
"--hicache-storage-backend", "file",
],
env={
"SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR": cls.hicache_dir,
"SGLANG_ENABLE_UNIFIED_RADIX_TREE": "1", # 启用新树
},
)
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险较低:仅涉及测试文件变更和参数调整。但 MMLU 阈值下调(0.75→0.65)和样本数减少可能降低测试的严格性,若模型实际精度退步时可能漏报。同时,新测试类依赖环境变量 SGLANG_ENABLE_UNIFIED_RADIX_TREE,若该变量在 CI 环境中未正确设置或代码本身有 bug 可能导致测试失败。
影响范围限于 nightly CI 测试(8-gpu-h200)。现在 nightly 测试同时覆盖 HiCache L3 的两种树形结构(HiRadixTree 和 UnifiedRadixTree),每次运行额外增加一组测试(估计时间约 900s)。对用户无直接影响,但增强了内部对缓存一致性的验证。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论