Appearance
模型精读工作流与模板
Abstract
这篇规定:
以后
modelread里每个模型都按同一个工作流学习、按同一个模板写文档。
1. 固定工作流
每个模型统一按 5 步学:
第 1 步:论文骨架
只回答:
- 这篇论文要解决什么问题
- 核心模块有哪些
- 输入输出是什么
- 训练目标是什么
这一阶段先不急着看所有代码细节。
第 2 步:模型主链代码
只看:
forward(...)- 主分支函数
- 关键模块调用顺序
目标:
- 先建立“输入 -> 模块 -> 输出”的代码骨架
这一步的文档格式固定为:
- 顺序图
- 分层树图
- 完整代码
- 中文注释版代码
- toy 例子
- shape / tensor 变化图
第 3 步:论文模块到代码对象映射
建立表格:
- 论文里的模块名
- 代码里的类 / 函数 / 文件
- 对应 tensor shape
目标:
- 让“理论对象”和“代码对象”稳定对齐
第 4 步:接到 TFB 框架
只回答:
- 这个模型在 benchmark 里从哪开始分叉
- adapter 给了它什么输入
- 它输出后又怎么回到统一外壳
第 5 步:最小实验验证
只做最小验证:
- 一批小数据 / 一次最小 benchmark
- 检查输入输出和主链是否符合预期
2. 三层数据规模
A. 微型假数据层
用途:
- 学
forward(...) - 学 shape
- 学模块顺序
特点:
- 最快
- 最适合精读模型内部
B. 一批真实框架数据层
用途:
- 学模型怎样接入真实 TFB
- 学
_process(...)到model.forward(...)
特点:
- 保留真实四输入
- 不必完整训练很久
C. 完整 benchmark 层
用途:
- 看模型在完整外层里的位置
- 做最小对照
特点:
- 比较慢
- 只在前两层清楚后再做
3. 每个模型文档的固定结构
以后每个模型都尽量写成下面这 8 段:
1. 模型定位
- 这篇模型在
modelread的位置 - 为什么现在学它
- 它属于哪类结构
2. 论文第一性
- 它解决什么问题
- 为什么提出这个结构
3. 论文骨架图
- 输入
- 核心模块
- 输出
4. 代码主链
- 入口文件
forward(...)- 主分支顺序
- 完整代码
- 注释代码
- toy example
5. 论文 - 代码映射表
- 论文模块
- 代码对象
- 文件位置
- 关键 shape
6. 和 TFB 的接口位置
- adapter 前后接口
- 在 benchmark 全链里的位置
- 参数从哪来
- 参数控制哪个 tensor / shape
7. 调试 checkpoints
- 应该打哪些断点
- 每个断点看什么变量
- 应该回答什么问题
8. 最小实验建议
- 用哪种数据规模
- 建议先跑什么
4. 不同模型的具体侧重点
DLinear
重点:
- 最简单的 forecasting baseline
- 分解与线性映射
- 为什么复杂度低但效果强
Informer
重点:
DataEmbeddingEncoderDecoderProbAttention
PatchTST
重点:
- patch 机制
- channel independence
- patch embedding
iTransformer
重点:
- time 和 variate 维度关系
- 为什么“倒置”
Autoformer
重点:
- 分解
- 自相关
- encoder / decoder 如何不同于标准 Transformer
5. 现在的执行顺序
当前你应该这样走:
- DLinear 收束
- Informer 主链
- PatchTST
- iTransformer
- Autoformer
然后再进:
- FEDformer
- Nonstationary
- TimeMixer
6. 现阶段不要做的事
不要:
- 一次开很多模型
- 一上来就追大实验
- 一开始就改复杂模块
- 一边读论文一边跳模型
7. 你现在立刻该写什么文档
现在最适合补的是:
Informer.forward主链文档Informer参数总表Informer最小数学例子Informer的DataEmbedding/Encoder/Decoder分文档
8. 最后压成 5 句话
- 每个模型都按同一工作流学,不再随意跳步骤。
- 先论文骨架,再代码主链,再做论文-代码映射,再接 TFB,再做最小实验。
- 代码文档必须把代码和 toy 例子绑定着讲,不能只列 shape。
- 数据规模按“小假数据 -> 一批真实数据 -> 完整 benchmark”三层推进。
- 现阶段最关键的模型顺序是
DLinear -> Informer -> PatchTST -> iTransformer -> Autoformer。 - 你接下来最直接的动作,是开始写 Informer 主链文档。