docs: 更新 README、删除过时文档(推理优化方案/superpowers 计划)

- README.md: 重写为简洁版(有效优化表、文件结构、评测环境)
- 删除推理优化方案.md(内容已合并到 CLAUDE.md)
- 删除 docs/superpowers/(过期实现计划)
- 保留 EXPERIMENTS.md(实验记录模板)
This commit is contained in:
2026-06-15 14:39:18 +08:00
parent cfacfda64e
commit c5a1aedef1
4 changed files with 38 additions and 1567 deletions
+38 -20
View File
@@ -6,54 +6,72 @@
## 赛题
> [比赛主页](https://aistudio.baidu.com/competition/detail/1461) · [大赛官网](http://cti.baidu.com) · [提交结果](https://aistudio.baidu.com/competition/detail/1461/0/submit-result)
> [比赛主页](https://aistudio.baidu.com/competition/detail/1461) · [大赛官网](http://cti.baidu.com) · [提交结果](https://aistudio.baidu.com/competition/detail/1461/0/submit-result) · [比赛规则](https://aistudio.baidu.com/competition/detail/1461/0/rules)
给定基于 Transformer 的生成式推荐广告排序模型(GRAB),在**不改变模型结构、不在测试集上训练**的前提下,极致优化推理性能。
量化、稀疏、剪枝明确允许。
给定基于 Transformer 的生成式推荐广告排序模型(GRAB),在**不改变模型结构、不在测试集上训练**的前提下,极致优化推理性能。量化/稀疏/剪枝明确允许。
## 模型架构
```
RepEncoder (28 slots × 512d Embedding)
RepEncoder (28 slots × 512d Embedding) → segment_reduce → LayerNorm → Linear
→ 8 层 Transformer (512d, 8 heads, Pre-LN)
→ Multi-Head Attention
→ SMoE FFN (8 experts, Top-2 gating)
→ Multi-Head Attention (SDPA / Flash Attention)
→ SMoE FFN (8 experts, Top-2 gating, k=2)
→ Linear → Sigmoid → CTR
```
~6.5M~11.3M 参数,基于 [GRAB](https://arxiv.org/abs/2602.01865) / [HSTU](https://arxiv.org/abs/2402.17152) 论文。
## 评分规则
## 有效优化
> 详见 [比赛规则](https://aistudio.baidu.com/competition/detail/1461/0/rules)
| # | 优化 | 原理 | 耗时 |
|---|------|------|------|
| 1 | FP16 量化 | 模型半精度 + Embedding FP32 | 152s |
| 2 | Flash Attention | SDPA 数学等价替换 | 94.5s |
| 3 | 消除 GPU 同步 | 移除 MoE mask.any() + searchsorted mask | 88.1s |
| 4 | Expert 相似度合并 | 余弦相似度 >0.90 的 expert 合并 | 86.5s |
| 5 | 稠密向量化 MoE | einsum 并行算 8 个 expert | PR#1 |
| 6 | RepEncoder 融合查表 | 28 slot 拼单次 segment_reduce | PR#1 |
## 评分规则
| 维度 | 要求 | 不达标 |
|------|------|--------|
| 推理效率 | ≤ 5min,环境构建 ≤ 20min | **总分 0** |
| 模型效果 | AUC ≥ 0.65PCOC ∈ [0.85, 1.15] | **总分 0** |
## 优化路线
## 评测环境
| 步骤 | 方案 | 预期加速 |
|------|------|----------|
| ✅ 第一版 | 接口对齐 + FP16 量化 | 229s → ~120s |
| 🔲 第二版 | Flash Attention + torch.compile | ~120s → ~65s |
| 🔲 第三版 | MoE 剪枝 + INT8 量化 | ~65s → ~30s |
- **硬件**: NVIDIA A800 (80GB, SM80)
- **软件**: Python 3.10 + PyTorch 2.6.0 + CUDA 12.4
- **评测数据集 ≠ baseline 数据集**
## 提交
```bash
cd 代码/code
zip submit.zip infer.py requirements.txt build_env.sh
zip submit.zip infer.py build_env.sh
```
约束:不包含 `dataset/``ckpt.pt`,每天最多 10 次提交
约束:不包含 `dataset/``ckpt.pt`包后缀 `.zip`每天最多 10 次。
## 环境
## 文件结构
- **本地**: `.venv` (Python 3.13, uv), 仅装 `numpy` + `tqdm` + `aistudio-sdk`
- **服务端**: PyTorch 2.6.0 + CUDA 12.4,完整依赖见 `代码/code/requirements.txt`
```
代码/code/
├── infer.py # 推理主脚本(提交核心)
├── build_env.sh # 环境构建脚本
├── requirements.txt # 服务端依赖(torch 2.6.0 + CUDA 12.4
├── EXPERIMENTS.md # 实验记录表
└── bench.py # 本地测量脚本(不进提交包)
论文/
├── GRAB.md / HSTU.md # 论文 OCR markdown
└── imgs/ # 论文图片
代码/任务提交接口说明.md # 官方接口规范
CLAUDE.md # 项目开发指引
```
## 许可证