Files
CTI-Inference-Opt/代码/code/EXPERIMENTS.md
T
2026-06-15 15:44:19 +08:00

55 lines
2.7 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.
# 实验记录
> 本地 bench(A800,过滤到 5451 测试用户/1524480 记录)+ 评测提交结果。
> 本文件可入 git,但**不进提交包**。
## 关键认知
1. **AUC 锁死 ≈ 0.759**:精度(fp16=fp32)、sign-id(超界仅0.00%)、上下文(每用户均280长)三条线索全空。模型分桶固定 ≈ 9 分。
2. **总分天花板 ≈ 79.9**:延迟分上限 70(latency→0 不可能)+ 模型分 ~9.9。80+ 需 AUC>0.76(本模型不可达)。
3. **评测计时对"同步点"敏感**:消除 model(batch) 内的 GPU 同步点(尤其 MoE 的 .nonzero())在评测端收益被放大(评测 batch 数 ≈ 本地 6×)。
4. **本地 latency 不直接预测评测**:消同步/降访存的改动翻译得好;带 per-batch 开销的(varlen)翻译差甚至反向。
## 最终配置(infer.py CONFIG 默认)
| 开关 | 值 | 作用 |
|------|----|----|
| fp16 | True | 半精度 |
| emb_fp16 | True | Embedding 表也 FP16(查表带宽减半,AUC 逐位≈无损) |
| attn | "chunked" | 按用户分块 SDPA,降注意力 O(S²) |
| chunk_users | 4 | 每块用户数(本地最快) |
| vectorize_moe | True | 稠密向量化 MoE(去掉 .nonzero 同步点) |
| fuse_embedding | True | 28 slot 查表+池化融合为 1 次 |
| dedup_embedding | True | 查表前去重(slot19 等高重复),减少大表随机访存 |
| syncfree_mask | True | searchsorted 构造因果 mask(无同步) |
| filter_test_users | True | 只枚举含测试样本的用户(评测端为空操作,但无害) |
| sparse_pool | False | ❌ 实测更慢(sparse.mm/coalesce 开销),已弃 |
## 评测提交记录
| 手段(累计) | 评测延迟 | 评测分数 | AUC | 备注 |
|------|------|------|-----|------|
| 官方基线 | 229s | 25.85 | 0.759 | |
| 接手时最优 | 86.5s | 58.86 | 0.7526 | FP16+Flash+expert合并 |
| 只跑测试用户(过滤) | 89.96s | 58.05 | 0.7525 | 评测端空操作 |
| varlen 注意力 | 148.4s | 44.40 | 0.7525 | ❌ 本地快评测慢,已弃 |
| + 稠密 MoE(消同步) | 69.55s | 62.81 | 0.7525 | ✅ 关键一刀 -20s |
| + embedding 融合 | 68.60s | 63.03 | 0.7525 | +1 |
| + sync-free mask | 67.49s | 63.29 | 0.7525 | +1 |
| + emb_fp16 | 65.86s | 63.67 | 0.7524 | +1.6 |
| + chunked 注意力(8) | 59.44s | 65.17 | 0.7524 | ✅ -6.4s |
| + dedup 查表 | 47.88s | 67.87 | 0.7524 | ✅ -11.6s |
| + chunk_users=4 | _待填_ | _待填_ | | 收尾微调 |
## 验证过更慢/无效、已弃的手段
- varlen 嵌套张量注意力(评测 148s)
- FlexAttention(本地慢 6×)
- torch.compile(本地慢 5×)
- 小 batch(更慢)
- sparse_pool 稀疏池化(本地 8.48 > 6.22)
- INT8 / MoE 稀疏化(评估后判定收益小/风险高,未实施)
## 未解
榜上 80+ 与上述天花板(~79.9)矛盾,本地证据无法解释。需核对官方评分公式原图/榜首构成/验证集 AUC。