mcpField
R
reproduce

reproduce

github.com/fcakyon开发43785 次安装2 周前更新
代码仓库

关于 reproduce

reproduce 是从头复现机器学习论文的技能,按步骤指导论文提取、实现、数据准备,并将结果与论文报告值进行量化比较。分阶段参考资料和验收标准使复现过程可追溯。

主要功能

  1. 01从 arXiv HTML 提取论文内容
  2. 02盘点现有代码与缺失部分
  3. 03分析缺失的超参数
  4. 04记录依据并实现代码
  5. 05获取数据集并运行冒烟测试
  6. 06将复现结果与论文指标比较

适用场景

  1. 01复现缺少完整代码的论文
  2. 02从论文描述中查找实现缺口
  3. 03长时间训练前测试训练流程
  4. 04记录与论文报告结果的差异

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fcakyon/phd-skills --skill reproduce

安装后在 Claude Code 中输入/reproduce确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
01-paper-fetch.md
02-code-clone.md
03-gap-analysis.md
04-implement.md
05-dataset.md
06-smoke.md
07-replicate.md

详细介绍

复现:从零开始复现论文

复现一篇机器学习论文,往往意味着要补全作者未提供的内容,例如训练脚本、超参数表、数据增强细节和精确的数据集划分。这项技能分为七个阶段,带你从“我有一个 arxiv 链接”走到“我已完成一次复现运行,并能量化与论文数值的差异”。

每个阶段都有单独的参考文件,位于 references/ 下,让本概览更便于快速浏览。

何时运行

用户刚刚说了以下任意内容:

  • “复现 / 实现 / 重现 / 重新运行论文 X”
  • 粘贴了一个 arxiv URL,并表示想复现(“能重做一下吗”“我们来试试这个方法”)
  • 指向一个 OpenReview / 会议论文集链接,并表达了同样的意图
  • 说“这篇论文没有代码,我们能自己构建吗”

工作流

阶段内容参考文档
1获取论文(arxiv HTML → 结构化提取)references/01-paper-fetch.md
2发现现有代码并整理清单references/02-code-clone.md
3差距分析(从正文中提取所有缺失的超参数)references/03-gap-analysis.md
4实现(uv venv、补全缺失内容、每项差距单独提交)references/04-implement.md
5获取数据集(优先使用 HF datasets;私有数据集则使用替代数据集)references/05-dataset.md
6冒烟运行(前向传播 → 1 步 → 20 次迭代)references/06-smoke.md
7复现运行 + 在论文报告的轮次进行比较references/07-replicate.md

按顺序逐一完成。每个阶段都有自己的成功标准;当前阶段通过之前,不要进入下一阶段。

工作目录布局

对于每篇待复现的论文,都要设置一个专用工作区:

repro/<paper-arxiv-id>/
├── paper.md              # structured extract from stage 1
├── inventory.md          # what exists / missing from stage 2
├── gaps_filled.md        # hyperparam table with provenance from stage 3
├── code/                 # implementation from stage 4 (or cloned + extended)
├── data/                 # dataset symlinks or actual data from stage 5
├── dataset_substitution.md  # if a public dataset stood in for a private one
├── smoke_logs/           # outputs from stage 6
└── results.md            # replication outcomes from stage 7

这样可以让复现工作彼此独立,并且便于日后重新查看。

交叉引用

  • 阶段 3 结束后,将差距分析交给 paper-verification 技能进行往返核查(“我是否真的捕获了论文提到的所有超参数”)。
  • 阶段 4 的实现应拆分为小型、便于审核的提交:每次提交都要引用用于确定所填数值的论文章节。
  • 阶段 6 的冒烟运行失败时,应转交 /phd-skills:debug 技能处理,而不是临时修补。
  • 阶段 7 的启动必须先通过 /phd-skills:launch 检查清单,然后才能进行任何持续数小时的运行。
  • 阶段 7 的比较应在论文报告的轮次通过 /phd-skills:compare 技能进行(绝不能拿当前结果与最终结果比较)。

输出

每次复现的最终产物都是 results.md,其中应包含绝对差值(不只是百分比),并为每项指标标注以下三个标签之一:

  • [matched within 0.X pp]:差异在论文报告的方差范围内
  • [gap, hypothesis: ...]:存在可量化的性能差距,并说明可能原因
  • [fundamental disagreement, see X]:结果与论文主张存在不一致,需要进一步调查,而不只是增加算力

如果工作区位于公开仓库中,请在项目的主要复现跟踪文档中添加工作区 README 的链接。

评论

支持 Markdown