docs: roadmap 存档点更新——docs/04 已精读,下一步开写 E1(压缩前存档)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-19 09:48:40 -04:00
parent 142aeb8ab1
commit e7cf27cecc
+1 -1
View File
@@ -8,7 +8,7 @@
> 每次断点(层完成/工作暂停)更新此节。恢复上下文时:读 CLAUDE.md → 本节 → 对应章节文档。
- **日期**: 2026-07-19
- **当前层**: 层 3(相似度 φ + MC 估计器),**学习阶段**——docs/04 已写待读;E1-E3 待精读后动代码。层 3 全本地 CPU 纯逻辑,不碰 GPU/远程。E1 similarity.py(式3 φ+k_sem)、E2 estimator.py(式4 π̄ detach + 式5 π̂)、E3 test_estimator_detach.py 接真实现。层 2 ✅ 已关账(判据见下)
- **当前层**: 层 3(相似度 φ + MC 估计器),**docs/04 已精读**(用户已理解:logit-free 支点=比文本非比 logits、k_sem 是外部 teacher 信号 π̄ 只是防塌缩地板、detach 命门、chunk-vs-prefix 对应靠"同一前缀现场生成 teacher 续写"非搜索匹配);**下一步开写 E1**。层 3 全本地 CPU 纯逻辑,不碰 GPU/远程。E1 similarity.py(式3 φ+k_sem,两度量统一到词级文本、默认 edit_distance 对齐论文§5.1)、E2 estimator.py(式4 π̄ 几何均值+detach式5 π̂ 贝叶斯凸组合)、E3 test_estimator_detach.py 接真实现。设计取舍已定见 docs/04 §3。层 2 ✅ 已关账
- **层 2 代码构成**: U1 DistillConfigconfigs.py,两温度分名/三处刻意缺席/max_grad_norm 显式化);U2 token_divergence + 梯度爆炸单测(trainer.py,全词表 KL/JSD);U3 SFTCollator prompt_only 模式(data.py);U4 DistillTrainer + build_generated_batchtrainer.py,生成→双前向→divergence);U5 train_whitebox.py/.shfull/sanity/noclip 三模式)。附带:load_sft_dataset 毛刺已磨平(改吃散装参数);hf-mirror 不代理 Xet CAS → HF_HUB_DISABLE_XET=1
- **层 2 关账判据全过**(详见 docs/03 §6.1 实证): 66 单测全绿;B=4/T=2048 **实测不 OOM**(§5 估算成立);两次远程跑(sanity 裁到 1.0 / noclip ≈关裁剪+lr5×)均平稳、不 NaN、生成不塌(num_gen ~1900-4096)、loss 0.35→0.21 下降;checkpoint 存下
- **层 2 关键发现(勘误"预期见毛刺")**: §4.1 梯度爆炸是真机制(U2 单测坐实单 token π_T→0 暴涨),但真实训练**高度阻尼**——同门 teacher + per-token mean 摊平,batch 级 grad_norm 峰值仅 ~14 且只降不升,关裁剪也不炸。启示:`grad_norm` 日志是**裁剪前**值(14→2 那串即爆炸证据,被 HF 默认 max_grad_norm=1.0 静默压平,现已显式化);层 5 有界乘子 π̂ 真正杀手锏是 **logit-free**(白盒的同 tokenizer 约束把你锁在温和区间)