feat: infer.py 接入 CONFIG 实验开关 + 新增 bench.py 测量闭环

- infer.py: 模块级 CONFIG(fp16/keep_fp32_modules/expert_merge/
  merge_threshold/signid_mode/sync_timing),默认值=当前最优行为;
  load_model 按 CONFIG 控制半精度/FP32敏感层/expert合并;
  RepEncoder 支持 clamp/modulo 两种 sign-id 处理;
  新增 _force_fp32_io 钩子让敏感层在FP16模型里以FP32 IO 计算。
- bench.py: 设置 CONFIG → 跑推理 → cuda.synchronize 真实计时 →
  _cal_score 打印 AUC/PCOC/延迟/总分,支持配置/batch扫描。不进提交包。
- EXPERIMENTS.md: 实验记录表。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
OwnerSunshine530
2026-06-14 16:48:38 +08:00
parent 0bd6ec440d
commit 9d5a5a52f2
3 changed files with 185 additions and 6 deletions
+19
View File
@@ -0,0 +1,19 @@
# 实验记录
> 在 AI Studio notebook 里跑 `bench.py` 后,把每次配置的实测值填进表里。
> 「本地分」用本地 test.csv + label_data.txt 算(仅作方向参考);「提交分」是验证集真实分数。
> 本文件可入 git,但**不进提交包**(打包只含 infer.py / requirements.txt / build_env.sh)。
| 任务 | 配置 | AUC | PCOC | 延迟(同步) | 本地分 | 提交分 |
|------|------|-----|------|-----------|--------|--------|
| 基线 | 默认(当前最优: fp16+merge0.90+clamp) | _待测_ | _待测_ | _待测_ | _待测_ | 58.86 |
## 待跑(按计划顺序)
- [ ] Task 2: `python bench.py` 默认配置 → 填上面「基线」行的本地实测
- [ ] **Task 3(最关键)**: `bench.run_once({"fp16": False, "expert_merge": False, "signid_mode": "clamp"})` → FP32 天花板 AUC,判定 80+ 是否有 AUC 空间
- [ ] Task 4: clamp vs modulo(先查 max_sign_id 是否超 5M
- [ ] Task 5: 混合精度 keep_fp32_modules 扫描
- [ ] Task 6: expert_merge 开/关的 AUC 代价
- [ ] Task 7: 特征截断 + 上下文完整性核查
- [ ] Task 8: 锁定阶段 A 配置并提交一次