Paper2code Skill:将 ArXiv 论文直接转化为可运行代码的智能复现工具
Paper2code:让 AI 把 ArXiv 论文直接变成可运行代码的 Skill
一个困扰 ML 研究者和工程师多年的问题:读完论文想复现,却发现关键超参数埋在附录或直接省略,文字描述和公式相互矛盾,所谓的”标准配置”根本没有具体值。Paper2code 正是为解决这个痛点而生——它是一个 Agent Skill,接收任意 ArXiv 论文 URL,输出带引用溯源的可运行代码实现,每个决策都锚定到论文原文,而非模型凭空生成。
这个 Skill 的核心差异在于引用锚定(Citation Anchoring):生成的每一行非平凡代码都会标注对应的论文章节和公式编号(如 §3.2、Eq. 4),而不是让模型自由发挥。在写代码之前,Skill 会先对每个实现选择进行审计,分类为”已明确指定””部分指定”或”未指定”,未指定的参数会在代码中标记 [UNSPECIFIED] 并列出常见替代方案,而不是悄悄塞一个默认值。同时,附录、脚注和图表说明都被视为一等公民,不会被忽略。
功能与原则
Paper2code 遵循三条明确的设计原则:
只复现论文核心贡献:不会重新实现标准组件(如”标准 Transformer 编码器”会直接 import 而非从零重写),也不会加入基线对比代码。
不发明细节:如果论文没有指定某个超参数,代码使用常见默认值并明确标记 [UNSPECIFIED],而不是让模型自由填充。
诚实的不确定性:任何模型需要推测的地方,都会在代码注释中注明推测依据,让用户可以逐一验证。
认可度
- GitHub Star:1,496(截至 2026-08-13)
- Fork:174
- 更新时间:2026-08-13(当日最新 commit)
- 社媒热度:CSDN 2026 年 6 月刊文推荐,入选”35 个 GitHub 热门 Claude Code 技能”盘点,被开发者社区视为论文复现的效率利器
链接
GitHub:https://github.com/PrathamLearnsToCode/paper2code
原作者
PrathamLearnsToCode(GitHub username),项目定位为”让任何人能够将学术论文转化为可验证的代码实现”,作者持续维护中(最近一次 commit 即为今日)。
介绍
Paper2code 解决的是机器学习论文复现中的信息不对称问题。传统方式下,研究者需要花数周时间对照论文找出每个参数的具体值,不同实现之间充满分歧,且没有任何记录说明分歧来源。
该 Skill 的输入是任意 ArXiv 论文 URL,输出是一个完整项目结构:
{paper_slug}/
├── README.md # 论文摘要、贡献说明、快速启动
├── REPRODUCTION_NOTES.md # 歧义审计、所有未指定选择、已知偏差
├── requirements.txt # 固定版本依赖
├── src/
│ ├── model.py # 模型架构,每层标注对应论文章节
│ ├── loss.py # 损失函数,含公式引用
│ ├── train.py # 训练循环(如在范围内)
│ ├── data.py # 数据集类骨架,附预处理说明
│ ├── evaluate.py # 评估指标计算
│ └── utils.py # 共享工具函数
├── configs/
│ └── base.yaml # 所有超参数,每个标注来源或标记 [UNSPECIFIED]
└── notebooks/
└── walkthrough.ipynb # 可在 CPU 上运行的教学 notebook
每一行关键代码都附有论文引用注释,用户能够快速定位到原文对应段落进行验证。
特点
- 引用锚定:每行代码标注对应论文章节/公式编号,实现可溯源
- 歧义审计:运行前对所有实现选择分类,输出详细的 REPRODUCTION_NOTES.md
- 诚实不确定性:未指定参数统一标记
[UNSPECIFIED],不静默填充 - 附录优先:附录、脚注、图表说明均被视为一等数据源
- 教学 Notebook:自动生成可在 CPU 上运行的 walkthrough notebook,边跑边对照论文
使用方法
安装(支持 Claude Code、Codex 等主流 Agent):
px skills add PrathamLearnsToCode/paper2code/skills/paper2code
安装过程中会提示选择:全局安装(推荐)或项目级安装、软链接(推荐)或复制。
基本调用:
# 标准调用,传入 ArXiv URL 或论文 ID
/paper2code https://arxiv.org/abs/1706.03762
# 指定框架(如 JAX 而非 PyTorch)
/paper2code https://arxiv.org/abs/2006.11239 --framework jax
# 指定输出模式
/paper2code 2106.09685 --mode full
/paper2code 1706.03762 --mode educational
最小示例(Attention is All You Need):
/paper2code https://arxiv.org/abs/1706.03762
输出项目 attention_is_all_you_need/,包含 model.py、loss.py、train.py 等完整文件,每个文件内代码注释引用原文对应段落。
使用场景与人群
适用场景:将 ArXiv 论文转化为可运行代码、快速验证论文方法、搭建基准实现、教学演示
目标用户:ML 研究者与工程师、博士研究生、需要复现前沿模型的高校实验室、想要动手学习新架构的开发者
输入与输出案例
输入:
/paper2code https://arxiv.org/abs/1706.03762
(Attention is All You Need,Transformer 原始论文)
输出:
项目 attention_is_all_you_need/,关键文件 model.py 片段:
# §3.2 — "We apply layer normalization before each sub-layer" (Pre-LN variant)
class TransformerBlock(nn.Module):
def forward(self, x):
# §3.2, Eq. 2 — attention_weights = softmax(QK^T / sqrt(d_k))
attn_out = self.attention(self.norm1(x)) # (batch, seq_len, d_model)
x = x + attn_out # §3.2 — residual connection
# [UNSPECIFIED] Paper does not state epsilon for LayerNorm — using 1e-6 (common default)
# Alternatives: 1e-5 (PyTorch default), 1e-8 (some implementations)
x = self.norm2(x)
x = x + self.ffn(x)
return x
同时生成 REPRODUCTION_NOTES.md 列出所有 [UNSPECIFIED] 位置及替代选项,configs/base.yaml 汇总所有超参数并注明来源。
输入 2:
/paper2code https://arxiv.org/abs/2006.11239 --framework jax
(GPT-2 论文,指定 JAX 框架)
输出:同样的引用锚定结构,但模型代码使用 JAX 函数式写法,而非 PyTorch。
评论区
登录后可评论。