论文到代码复现工作流
论文到代码复现工作流
一句话定义
这份工作流把“读论文”转成“能用 PyTorch 写出核心机制的最小 demo”,目标不是复现 SOTA,而是证明你理解了论文最关键的一小块。
解决什么问题
直接读经典论文容易出现三种假懂:
- 知道论文名字,但说不清它解决什么问题。
- 能看懂 AI 的解释,但不知道对应到哪段代码。
- notebook 能跑,但不知道输出说明什么。
所以每篇论文都要走同一个闭环:
研究问题 -> 核心机制 -> 最小输入输出 -> PyTorch demo -> 输出解释 -> 局限边界 -> 口头表达
五步工作流
第 1 步:锁定一个核心机制
每篇论文只选一个最小机制,不要试图完整复现。
| 论文 | 建议复现机制 | 不要一开始复现 |
|---|---|---|
| word2vec | skip-gram + negative sampling | 大规模语料训练和语义评测 |
| ResNet | residual block F(x) + x | 完整 ImageNet 训练 |
| Attention | scaled dot-product attention | 完整机器翻译系统 |
| Transformer | self-attention + positional encoding | 完整 encoder-decoder 训练 |
| GPT | causal mask + next-token prediction | 大规模预训练 |
| BERT | masked language modeling | NSP 大规模训练和 GLUE |
| GPT-3 | few-shot prompt 结构 | 训练 175B 模型 |
| Scaling Law | toy loss curve 和 compute budget | 真实大模型实验 |
| Chinchilla | 参数-token-计算量权衡表 | 真实 compute-optimal 扫描 |
| RLHF | SFT/RM/PPO 三阶段流程和偏好排序 | 完整 PPO 训练 |
| LoRA | frozen weight + low-rank update | 微调真实大语言模型 |
| Diffusion | forward noising + noise prediction | 高分辨率图像生成 |
第 2 步:写清输入和输出
在写代码前,先填这个小表:
| 项目 | 内容 |
|---|---|
| 输入是什么 | 例如 token id、图像 tensor、隐藏状态 |
| 输入 shape | 例如 [batch, seq_len, embed_dim] |
| 模型计算什么 | 例如 attention weight、residual sum、noise prediction |
| 输出是什么 | 例如 logits、embedding、denoised point |
| 输出 shape | 例如 [batch, vocab_size] |
| loss 是什么 | 例如 cross entropy、MSE、negative sampling loss |
如果这张表填不出来,先不要写代码。
第 3 步:让 AI 生成最小代码,但必须加约束
推荐提示词:
请帮我写一个 PyTorch 最小 demo,复现【论文名】中的【核心机制】。
我的约束:
1. 只用 toy data,不追求论文实验结果
2. 所有关键 tensor 都要打印 shape
3. 代码不要超过一个教学 notebook 的复杂度
4. 每个模块后写一句“对应论文中的哪一部分”
5. 最后列出没有复现的内容,防止夸大
我已经确定的输入输出:
【粘贴输入输出表】
第 4 步:自己检查代码是否真的对应论文
用下面 6 个问题检查:
- 代码里的核心函数是否对应论文核心机制?
- 输入 shape 和论文中的对象是否能对上?
- loss 是否和这个机制有关?
- 训练输出或前向输出能说明什么?
- 哪些部分只是教学简化?
- 哪些论文结论不能由这个 demo 支撑?
第 5 步:写一段“代码到论文”的解释
每个 notebook 运行后,必须写一段 5 句话解释:
这个 demo 对应论文中的【机制】。
输入是【对象】,shape 是【shape】。
模型做了【计算过程】。
输出/损失说明【结果解释】。
它没有复现【未覆盖内容】,所以不能声称完整复现论文。
最小合格证据
每篇论文至少留下 4 个证据:
- 一页论文笔记。
- 输入输出 shape 表。
- notebook 输出截图或文字记录。
- 3 分钟口头解释稿。
常见错误
错误 1:把 demo 说成完整复现
不合格表达:
我复现了 Transformer。
合格表达:
我复现的是 Transformer 中 scaled dot-product attention 的最小前向计算,还没有复现多头注意力、训练流程和机器翻译实验。
错误 2:只会跑代码,不会解释 shape
修正动作:
在每个关键 cell 后写:
输入 shape:
输出 shape:
这个维度代表:
错误 3:让 AI 一次写完整项目
修正动作:
只让 AI 生成一个机制的最小 demo。先跑通,再扩展。
和本实验室方向的关系
这个工作流训练的是科研入门的基本动作:从论文中抽出可验证机制,再用代码做最小检验。以后做复杂系统、时间序列、网络科学或机器学习项目时,也可以用同样流程:
论文问题 -> 核心假设 -> 最小模型 -> toy data -> 输出解释 -> 局限
可以追问老师/同学的问题
- 我选的这个最小复现点是否代表论文核心贡献?
- 这个 toy demo 会不会过度简化论文问题?
- 我解释的 tensor shape 是否和真实模型一致?
- 哪个实验结果最能证明论文贡献?
- 如果要进一步复现,下一步应该补数据、模型还是评价指标?