一、基本介绍(https://github.com/going-doer/Paper2Code)
1.1 项目背景
Paper2Code是基于大语言模型的创新性代码生成框架,旨在解决学术界与工业界长期存在的"论文复现难题"。项目通过多智能体协作机制,将科研论文自动转化为可执行代码仓库,在arXiv论文测试集上实现87.3%的代码生成完整度,相比传统单模型方案提升32%。
1.2 核心功能
- 三阶段流水线:规划(Planning)、分析(Analyzing)、编码(Coding)的递进式处理
- 多模式输入:支持PDF原始论文和LaTeX源码两种输入方式
- 智能评估系统:提供基于参考(与官方实现对比)和无参考两种评估模式
- 混合模型架构:兼容OpenAI API与开源模型(默认使用DeepSeek-Coder-V2)
1.3 技术架构
Planning Agent
├── 论文结构解析
├── 模块依赖分析
└── 生成开发计划书
Analyzing Agent
├── 数学公式转译
├── 算法伪代码解析
└── API接口设计
Coding Agent
├── 代码框架生成
├── 单元测试编写
└── 文档自动生成
二、快速上手
2.1 环境配置
# 基础环境(Python 3.10+)
pip install -r requirements.txt
# OpenAI模式
export OPENAI_API_KEY="sk-xxx"
# 开源模型模式(需配置vLLM)
docker run --runtime nvidia --gpus all \
-v ~/model_cache:/model_cache \
-p 8000:8000 \
-it vllm/vllm-openai:latest \
--model deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct
2.2 运行示例
以Transformer论文为例生成代码仓库:
# 使用OpenAI接口(约消耗$0.6)
python scripts/run.py --paper examples/Transformer.pdf
# 使用开源模型
python scripts/run_llm.py --port 8000
生成结果目录结构示例:
Transformer_repo
├── model
│ ├── attention.py # 多头注意力实现
│ └── transformer.py # 完整模型架构
├── data
│ └── tokenizer.py # BPE分词器实现
├── tests
│ └── test_attention.py # 自生成的单元测试
└── requirements.txt # 自动推断的依赖项
三、简单示例
3.1 教育领域
# 自动生成课程实验框架
paper2code --input "CS231n Lecture Notes" --output_dir ./assignment
# 输出结果包含:
# - 图像分类模型模板代码
# - CIFAR-10数据加载器
# - 训练流程脚手架
3.2 工业研发
# 复现最新论文模型
paper2code --input "arxiv:2405.1234" --mode fast
# 生成结果包含:
# - 分布式训练适配代码
# - Triton推理优化实现