Files
project_6/SUB509_DIAGNOSIS.md

58 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sub509 诊断报告 — 2026-08-07
## 评测结果对比
| 测试 | Sub168 (对手) | Sub509 (我们) | 状态 | 根因 |
|------|--------------|--------------|------|------|
| d01_basic_nostream | 8.49s, content[11], 139tok | 95.85s, content[0], 1085tok | ✓ PASS | decode 慢 + thinking 过长 |
| d02_stream_usage | 2.75s | 1.84s | ✓ PASS | OK |
| **d03_tool_call** | **2.12s, tools=1** | **49.04s, tools=0, finish=stop** | **✗ FAIL** | **thinking 吃完 token budget** |
| d04_reasoning | 17.78s | 128.74s | ✓ PASS | decode 慢 |
## d03_tool_call FAIL 根因链
```
评测器发 tool_choice=auto + tools=[get_weather],不带 thinking 参数
→ enable_thinking 默认 True
→ 模型进入 <think>...</think> 模式
→ BI-V100 decode 极慢 (~11 tok/s)49 秒全在 thinking
→ max_tokens 耗尽finish=stop
→ 从未输出 <tool_call> XML
→ tool_parser 检测不到 <function=
→ tools_called=False, finish_reason="stop"
→ ✗ FAIL
```
## 已提交修复 (commit e0344b1)
1. **protocol.py**: `normalize_messages` 里当 tools 活跃 + tool_choice=auto + thinking 未显式设置时,自动 `enable_thinking=False`
2. **qwen3coder_tool_parser.py**: `adjust_request()` 做相同检查defense-in-depth
3. **baseline.muh**: 同步实际部署配置 (max_num_seqs=1, 去掉 chunked_prefill)
## 性能差距分析
对手 decode 速度约 16 tok/s (139tok / 8.49s)
我们 decode 速度约 11 tok/s (1085tok / 95.85s)
差距来源:
- BI-V100 vs 对手硬件(未知,可能是 A100/H100
- enforce_eager=True 禁用了 CUDA graphs
- 单卡 SMEM 48KB vs 高端卡 192KB+
- xformers head_dim>128 fallback 走 PyTorch SDPA非 FlashAttention
## 下一步优化方向
### 紧急 (影响评分)
- [ ] 提交后看完整 d05~d16+ 测试结果
- [ ] 如有其他 FAIL同样根因分析
### 中期 (提升 TPS)
- [ ] 检查 _PYTORCH_DECODE_THRESHOLD=999999 是否可以降低以启用 PyTorch fallback 对特定 seq_len 范围
- [ ] sampler 的 .tolist()/.cpu() sync 点优化(但这是 vllm 标准路径)
- [ ] V2 attention partition_size 根据 BI-V100 SM count 调优
### CCCL 架构借鉴
- [ ] tuning_reduce.cuh 的 scale_mem_bound 公式应用到 BI-V100max_smem=49152
- [ ] tuning_scan.cuh 的 ScanLookbackPolicy 参数对标 muh schema YAML
- [ ] policy_selector DSLcompute_capability 维度改为 BI-V100 硬件描述