mcpField
P
paper2code

paper2code

github.com/prathamlearnstocode开发1.5k741 次安装30 周前更新
代码仓库

关于 paper2code

paper2code 是一套将 arXiv 论文转化为代码项目的分阶段技能,面向复现论文方法的研究者与开发者。它包含论文解析、贡献识别、歧义审查、代码生成和配套 Notebook,并提供 minimal、full、educational 模式及多种框架选项。

主要功能

  1. 01获取并解析 arXiv 论文
  2. 02识别核心贡献并审查实现歧义
  3. 03按论文内容生成代码项目
  4. 04生成带可运行检查的讲解 Notebook
  5. 05支持 minimal、full、educational 模式

适用场景

  1. 01从 arXiv 论文搭建方法实现
  2. 02梳理论文未明确规定的实现细节
  3. 03为论文代码生成配套演练 Notebook

安装

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

$npx skills add https://github.com/prathamlearnstocode/paper2code --skill paper2code

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

包含的文件

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

guardrails/
badly_written_papers.md
hallucination_prevention.md
scope_enforcement.md
knowledge/
loss_functions.md
paper_to_code_mistakes.md
training_recipes.md
transformer_components.md
pipeline/
01_paper_acquisition.md
02_contribution_identification.md
03_ambiguity_audit.md
04_code_generation.md
05_walkthrough_notebook.md
scaffolds/
config_template.yaml
data_template.py
evaluate_template.py
loss_template.py
model_template.py
readme_template.md
reproduction_notes_template.md
train_template.py
scripts/
extract_structure.py
fetch_paper.py
worked/attention_is_all_you_need/
README.md
REPRODUCTION_NOTES.md
requirements.txt
review.md
worked/attention_is_all_you_need/configs/
base.yaml
worked/attention_is_all_you_need/notebooks/
walkthrough.ipynb
worked/attention_is_all_you_need/src/
data.py
evaluate.py

详细介绍

paper2code — 编排

你正在执行 paper2code 技能。本文件规定了高级流程。每个阶段都会调用 pipeline/ 中的详细推理协议。不要跳过阶段。不要合并阶段。请按顺序执行。

解析参数

从用户输入中提取:

  • ARXIV_ID:arxiv 论文 ID(例如 2106.09685)。去掉任何 URL 前缀。
  • MODE:minimal(默认)、full、educational 三者之一。
  • FRAMEWORK:pytorch(默认)、jax、numpy 三者之一。

如果用户提供了完整 URL,例如 https://arxiv.org/abs/2106.09685,则提取 ID 2106.09685。 如果用户提供了带版本号的 ID,例如 2106.09685v2,则保留版本号。

设置工作目录

创建临时工作目录:.paper2code_work/{ARXIV_ID}/ 中间产物存放在此目录中。最终输出存放在当前目录下的 {paper_slug}/ 中。

安装依赖项

通过 Bash 运行:

pip install pymupdf4llm pdfplumber requests pyyaml

执行流水线

阶段 1 — 论文获取与解析

阅读并遵循:pipeline/01_paper_acquisition.md

运行辅助脚本来获取和解析论文:

python skills/paper2code/scripts/fetch_paper.py {ARXIV_ID} .paper2code_work/{ARXIV_ID}/

然后运行结构提取:

python skills/paper2code/scripts/extract_structure.py .paper2code_work/{ARXIV_ID}/paper_text.md .paper2code_work/{ARXIV_ID}/

继续之前,确认输出文件存在。如果提取失败,请遵循 pipeline/01_paper_acquisition.md 中的回退协议。

该脚本还会搜索官方代码仓库(在论文正文和 arxiv 页面中),并将找到的链接保存到 paper_metadata.json 的 official_code 键下。依赖这些链接前,请先验证它们——参见 pipeline/01_paper_acquisition.md 中的步骤 8。

阶段 2 — 贡献识别

阅读并遵循:pipeline/02_contribution_identification.md

阅读解析后的论文各章节。识别唯一的核心贡献。判定论文类型。撰写贡献说明。将其保存到 .paper2code_work/{ARXIV_ID}/contribution.md。

阶段 3 — 歧义审查

阅读并遵循:pipeline/03_ambiguity_audit.md

阅读本阶段前,还要阅读:guardrails/hallucination_prevention.md

逐一检查所有与实现相关的细节。将每项归类为 SPECIFIED、PARTIALLY_SPECIFIED 或 UNSPECIFIED。将审查结果保存到 .paper2code_work/{ARXIV_ID}/ambiguity_audit.md。

阶段 4 — 代码生成

阅读并遵循:pipeline/04_code_generation.md

编写代码前,请阅读:

  • guardrails/scope_enforcement.md — 确定哪些内容属于实现范围,哪些不属于
  • guardrails/badly_written_papers.md — 适用于表述含糊或前后不一致的论文
  • knowledge/ 中与论文领域相关的知识文件
  • scaffolds/ 中用于确定预期文件结构的脚手架模板

根据论文标题确定 paper_slug(小写、使用下划线、不含特殊字符)。 在当前工作目录下的 {paper_slug}/ 中生成所有文件。

阶段 5 — 演练笔记本

阅读并遵循:pipeline/05_walkthrough_notebook.md

生成演练笔记本,将论文各章节与代码联系起来,并包含可运行的合理性检查。保存到 {paper_slug}/notebooks/walkthrough.ipynb。

清理

成功完成后,删除 .paper2code_work/ 目录。

最终输出

打印摘要:

✓ paper2code complete for: {paper_title}
  Output directory: {paper_slug}/
  Files generated: {list of files}
  Unspecified choices: {count} (see REPRODUCTION_NOTES.md)
  Mode: {MODE} | Framework: {FRAMEWORK}

模式专属行为

  • minimal(默认):仅实现核心贡献。只有当贡献涉及训练时才编写训练循环。除 Dataset 骨架外,不包含数据流水线。
  • full:实现核心贡献,并包含完整训练循环、数据流水线和评估流水线。代码更多,但引用要求不变。
  • educational:与 minimal 相同,但添加额外的行内注释来解释 ML 概念,扩展演练笔记本并加入理论章节,同时提供逐节讲解论文的 PAPER_GUIDE.md。

防护规则 — 始终生效

这些规则适用于所有阶段。如果你还没有阅读,请先阅读:

  • guardrails/hallucination_prevention.md — 此技能中最重要的文件
  • guardrails/scope_enforcement.md — 要实现和跳过的内容
  • guardrails/badly_written_papers.md — 论文表述不清时的处理方法

知识库 — 按需查阅

在实现以下任何组件之前,请阅读相应的知识文件:

  • Transformer 层、注意力、位置编码 → knowledge/transformer_components.md
  • 优化器、学习率调度、批次大小语义 → knowledge/training_recipes.md
  • 交叉熵、对比损失、扩散损失、ELBO → knowledge/loss_functions.md
  • 特定框架的陷阱、符号不一致 → knowledge/paper_to_code_mistakes.md

评论

支持 Markdown