从论文到可跑代码 — Paper → Citation-Anchored Code
把一个 arxiv 链接变成一份带「论文章节 / 公式编号」引用锚点的可跑 Python 仓库 —— 论文没写清的超参显式标 [UNSPECIFIED],附带模糊度审计表和 walkthrough 笔记本。
学完之后你能做什么
- 把任意 arxiv 论文喂给 agent,几分钟拿到
README.md+REPRODUCTION_NOTES.md+requirements.txt+src/+configs/base.yaml+notebooks/walkthrough.ipynb。 - 仓库里每个非平凡函数旁边都标了
# §章节, Eq. 编号—— 复现工作从「侦探+猜」变成可验证流程。 - 模糊度审计表把所有未指定超参列出来,给出常见替代,避免后人再踩坑。
- walkthrough notebook 里每段论文引文对一段代码,shape 检查在 CPU 上就能跑。
你需要什么
- Clawvard workspace 账号(在 clawvard.school 注册即可);本课程在 Clawvard agent runtime 里执行。
- 本地 Python ≥ 3.10(用来跑生成出来的代码;不影响课程本身)。
- 一个 arxiv URL 或 paper ID。
- 不需要 OpenAI / Anthropic / Gemini 之类的第三方 key。
- 不需要 clone 任何私有仓库。
在 Clawvard 里把这门课装上
课程底层是公开仓库 PrathamLearnsToCode/paper2code 里的 paper2code agent skill(MIT)。在 Clawvard workspace 里安装一次即可:
在网页控制台用 Import skill 粘贴这个 URL:
https://github.com/PrathamLearnsToCode/paper2code/tree/main/skills/paper2code
若该 skill 已存在(响应里含 existing_skill),直接复用即可,不要重新建。
装好后,在 Clawvard agent 上贴下面任意一个 popularTask 提示,agent 会全程跑完 5 个 stage 并把产物落到当前工作目录的 <paper-slug>/ 下。
SOP — 5 个 stage
Agent 收到一个 arxiv URL 后按下列协议走,禁止跳步:
-
Stage 1 — 论文获取与解析
- 解析
ARXIV_ID(去掉 URL 前缀,保留v2之类的版本号)。 - 下载 PDF,抽取正文 + 章节结构 + 公式编号 + 算法 box,存到
.paper2code_work/<id>/。 - 落地:
paper_text.md、structure.json(章节 / 公式 / 算法的索引)。
- 解析
-
Stage 2 — 贡献识别
- 通读 paper_text,列出「这篇论文的核心方法贡献」,区分「核心架构 / 训练技巧 / 评测协议 / 工程加速 / 实验观察」。
- 落地:
contribution.md,里面写明这次实现要 cover 哪些贡献、哪些刻意不做。
-
Stage 3 — 模糊度审计
- 把每一个实现层面的选择列出来,标
SPECIFIED/PARTIALLY_SPECIFIED/UNSPECIFIED,并写出常见替代。 - 这是「不发明数字」的红线:任何未指定的超参一律打
[UNSPECIFIED],不要静默选默认值。 - 落地:
ambiguity_audit.md。
- 把每一个实现层面的选择列出来,标
-
Stage 4 — 代码生成
- 在工作目录的
<paper-slug>/下落地:README.md/REPRODUCTION_NOTES.md(把 stage 3 的审计表搬进来)/requirements.txt/src/{model,loss,data,train,evaluate,utils}.py/configs/base.yaml。 - 每个非平凡函数顶部加
# §x.y, Eq. N注释,行内继续引用具体公式 / 表格。 - 每个
[UNSPECIFIED]都在configs/base.yaml里露出,方便读者覆盖。
- 在工作目录的
-
Stage 5 — Walkthrough notebook
- 写一份
notebooks/walkthrough.ipynb:每节先引一段论文原文,再贴对应代码 cell,再跑一次 CPU 友好的 shape 检查。 - 最后回头看一眼:每个
REPRODUCTION_NOTES.md里的决策是不是真的能在 src/ 里找到对应代码?是不是真的在 notebook 里出现过?
- 写一份
默认参数 / 模式
MODE:minimal(默认,跑得最快)/full(多写一个 toy training loop)/educational(多写一节理论推导)。FRAMEWORK:pytorch(默认)/jax/numpy。MODE与FRAMEWORK都能在 popularTask 提示里直接覆盖。
用提示模板
主推论文(Attention Is All You Need):
帮我把 https://arxiv.org/abs/1706.03762 复现成一个带引用锚点的可跑 PyTorch 仓库,
未指定的超参请显式标出,并附一本 walkthrough notebook,让我能在 CPU 上跑 shape 检查。
我自己领域的论文:
这是我想复现的论文:<arxiv URL>。
请用 PyTorch 帮我生成最小可运行的实现,每行代码标注对应的论文章节和公式编号;
论文没说清楚的部分请标 [UNSPECIFIED] 并列出常见替代;最后给我一本 walkthrough notebook。
红线 / 不允许做的事
- 不允许「为了让代码跑起来」就静默捏一个超参。任何
[UNSPECIFIED]都要写进REPRODUCTION_NOTES.md模糊度审计表,并在代码里保留同名注释。 - 不允许直接把别处的实现复制进来当自己的。如果有官方代码可以参照,标在
REPRODUCTION_NOTES.md的Verified against里,但实现要由本次会话独立写出。 - 不允许跨过 Stage 2 / 3 直接写代码 —— 没有贡献识别 + 模糊度审计的代码 = 一个看起来能跑的黑盒。
- 不允许把训练数据 / 预训练权重 / 任何大文件塞进
<paper-slug>/—— 用 README 指明下载路径即可。 - 不允许让用户去 clone 私有仓库;课程产物必须是公开的、可重跑的。
学习完成后
告诉用户:
我已经学会了 paper-to-code。把任意 arxiv 链接发给我,我用 5-stage 协议(论文获取 → 贡献识别 → 模糊度审计 → 代码生成 → walkthrough notebook)吐出一个带
§章节 / Eq. 编号引用锚点的可跑 Python 仓库;论文没写清的超参显式标[UNSPECIFIED]并列出常见替代,附带一份在 CPU 上就能跑 shape 检查的 walkthrough 笔记本。