9c0ec15716
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
00 · 分层重构路线图
原则:按论文概念的依赖顺序逐层重建,每层完成后代码可运行、可验证。学习路径 = 提交历史。 后面各层不提前细化——细节在进入该层时随章节文档长出来(依据见
appendix-claudemd-decisions.md的延迟接入哲学)。
当前进度(存档点)
每次断点(层完成/工作暂停)更新此节。恢复上下文时:读 CLAUDE.md → 本节 → 对应章节文档。
- 日期: 2026-07-18
- 当前层: 层 0(环境与骨架),收尾中
- 已完成: 文档第一章精讲完毕(式 1-8 + §3.1-3.6 逐节过);detach 命门测试预置并通过;依赖清单/远程脚本/密钥模板入库;gitea 双端打通(SSH 222 端口)
- 进行中: 本地 conda env
ars-opd在装依赖;远程setup_remote.sh在跑 - 层 0 关账判据: 两端
pytest tests/ -q全绿 - 下一步: 进层 1(SFT 基线):解剖参考实现
train_sft_sanity.py与 collator → 写docs/02-sft-baseline.md→ 数据管线 + 最小训练脚本(Qwen3-0.6B,远程 4 卡) - 未精讲的文档账: docs/01 的 §3.7(KL 锚三处实现差异)、§3.8(论文外稳定器)、§4(训练步流程走读)
- 远程磁盘备忘: 根分区 100% 的结构性原因是
/root/zym(507G 历史工作区)压在根分区,建议择期整体搬迁/data;临时缓解 = 清/tmp/pip-unpack-*、旧 tar.gz、journal。所有新增写盘已改道/data/zym
分层计划
| 层 | 主题 | 论文对应 | 产出 | 验证方式 |
|---|---|---|---|---|
| 0 | 环境与骨架 | — | 本地/远程 conda 环境、gitea 同步、包骨架 | 两端 pytest 空跑通过 |
| 1 | SFT 基线 | §3.1 式(1) | 数据管线 + 最小 SFT 训练脚本(Qwen3-0.6B) | 远程 4 卡跑通,loss 正常下降 |
| 2 | White-box OPD 基线 | §3.1 式(2) | token 级反向 KL 蒸馏(teacher Qwen3-4B 本地 vLLM) | 远程跑通;理解式(2)梯度爆炸问题(§4.1) |
| 3 | 相似度 + MC 估计器 | §3.2.1-3.2.2 式(3)(4)(5) | similarity.py + estimator.py(纯逻辑) |
本地 CPU 单测,对拍 validate_mc_estimator.py;detach 命门测试已预置(tests/test_estimator_detach.py),完成后需接入真实实现 |
| 4 | Peak-entropy 调度器 | §3.2.3 式(6)(7) | chunking.py(纯逻辑) |
本地 CPU 单测:toy 熵序列上验证 chunk 选择与合并 |
| 5 | 完整 OmniOPD | §3.2.4 式(8) | teacher.py(API 客户端+缓存)+ trainer.py(chunk 损失 + KL 锚定) |
远程端到端跑通(DeepSeek/MiniMax teacher) |
| 6 | 评测与消融 | §5 | 数学评测脚本;三个消融开关 | MATH-500 子集上 student 有可测提升趋势 |
章节文档索引
| 文档 | 内容 | 状态 |
|---|---|---|
00-roadmap.md |
本文 | ✅ |
01-paper-code-map.md |
论文 §3-§4 精读 + 参考实现全景解剖 + 概念↔代码对照表 | ✅ |
02-sft-baseline.md |
层 1:SFT 与数据管线 | ⬜ |
03-whitebox-opd.md |
层 2:token 级 KL 蒸馏及其脆弱性 | ⬜ |
04-mc-estimator.md |
层 3:MC 估计 + 贝叶斯平滑 | ⬜ |
05-entropy-chunking.md |
层 4:熵调度 | ⬜ |
06-omniopd-full.md |
层 5:完整损失与 teacher 客户端 | ⬜ |
07-eval-ablation.md |
层 6:评测与消融 | ⬜ |
关键设定(与论文默认对齐,规模缩小)
| 参数 | 论文默认 | 本项目 | 说明 |
|---|---|---|---|
| chunk 数 M | 10 | 10 | 每条轨迹审计的 chunk 数 |
| rollout 数 N | 10 | 10 | 每个 chunk 的 teacher MC 采样数(§4.2 证明 N=10 是甜点) |
| chunk 长度 C | 50 | 50 | token 数 |
| 先验强度 α | 1.0 | 1.0 | chunk_alpha,Dirichlet 平滑 |
| 相似度 φ | ROUGE-1 | ROUGE-1 | 备选 edit_distance |
| Student | Qwen3-8B 级 | Qwen3-0.6B | 跑通优先 |
| Teacher | Qwen3.5-397B / Claude / Gemini | DeepSeek 或 MiniMax(OpenAI 兼容) | logit-free 主路径 |