paper2code: arXiv 논문 URL 하나로 인용 근거가 달린 실제 PyTorch 구현 코드를 자동 생성하는 Claude Code 스킬

paper2code 소개

머신러닝 연구자와 엔지니어들이 arXiv의 논문을 읽고 직접 구현하는 과정은 상당한 시간과 노력을 요구합니다. 논문에는 핵심 아이디어가 수식과 의사코드(pseudo-code) 형태로 기술되어 있지만, 실제 동작하는 코드로 변환하는 데는 논문을 세밀하게 읽고 불명확한 부분을 판단하는 과정이 필수적입니다. paper2code는 이 과정을 자동화하는 Claude Code 스킬(Skill)입니다. arXiv 논문 URL을 입력하면, 논문의 각 구현 결정이 어떤 섹션과 수식에 기반하는지 명시적으로 인용하는 형태의 코드를 생성합니다.

paper2code를 개발한 Pratham의 핵심 철학은 "모든 코드 라인이 해당 코드가 구현하는 논문의 정확한 섹션과 수식을 참조해야 한다"는 것입니다. 예를 들어 어떤 함수가 논문의 3.2절에 기술된 알고리즘을 구현한다면, 코드 주석에 # §3.2, # Eq. 4 형태로 출처가 명시됩니다. 이를 통해 코드를 읽는 사람이 논문의 어떤 부분이 어떻게 구현되었는지 즉시 파악할 수 있습니다. 또한 논문에서 명확하게 명시하지 않은 구현 결정 사항은 [UNSPECIFIED] 주석과 함께 가능한 대안들이 열거되어, 불확실성을 투명하게 관리합니다.

┌─────────────────────────────┐         ┌──────────────────────────────────────┐
│                             │         │  {paper_slug}/                       │
│  /paper2code                │         │  ├── README.md                       │
│  https://arxiv.org/abs/     │  ───▶   │  ├── REPRODUCTION_NOTES.md          │
│  1706.03762                 │         │  ├── requirements.txt               │
│                             │         │  ├── src/                            │
│                             │         │  │   ├── model.py     # §3.2 cited  │
│                             │         │  │   ├── loss.py      # §3.4 cited  │
│                             │         │  │   ├── train.py     # §4.1 cited  │
│                             │         │  │   ├── data.py                    │
│                             │         │  │   ├── evaluate.py                │
│                             │         │  │   └── utils.py                   │
│                             │         │  ├── configs/                        │
│                             │         │  │   └── base.yaml   # all params   │
│                             │         │  └── notebooks/                      │
│                             │         │      └── walkthrough.ipynb           │
└─────────────────────────────┘         └──────────────────────────────────────┘

이 스킬은 Claude Code 생태계의 Skills 시스템을 기반으로 작동합니다. npx skills add 명령어 하나로 설치가 완료되며, 이후 /paper2code 명령어를 통해 어떤 arXiv 논문이든 구현을 시작할 수 있습니다. Attention Is All You Need(Transformer), DDPM(Diffusion model), ViT(Vision Transformer), MoE(Mixture of Experts) 등 주요 논문들을 포함한 다양한 구현 예시가 제공됩니다.

paper2code의 모호성 감사(Ambiguity Auditing) 시스템

paper2code의 가장 차별화된 기능은 모호성 감사(Ambiguity Auditing) 시스템입니다. 논문을 구현할 때 마주치는 모든 결정 사항을 세 가지 카테고리로 분류하여 추적합니다.

  • SPECIFIED: 논문에서 명확하게 기술된 구현 사항. 논문의 해당 섹션과 수식을 인용하여 코드에 주석으로 표시됩니다.
  • PARTIALLY_SPECIFIED: 논문에서 부분적으로 언급되었지만 세부사항이 불명확한 경우. 가장 합리적인 해석을 선택하되, 근거와 함께 표시됩니다.
  • UNSPECIFIED: 논문에서 전혀 언급하지 않은 구현 결정. [UNSPECIFIED] 주석과 함께 가능한 대안들이 나열됩니다.

이 시스템 덕분에 생성된 코드는 단순한 구현체가 아니라, 논문과 코드 사이의 '다리 역할'을 합니다. REPRODUCTION_NOTES.md 파일에는 전체 모호성 감사 결과가 정리되어, 논문 재현 연구나 강의 자료로도 활용할 수 있습니다.

paper2code의 설치 및 사용법

# Claude Code Skill 설치
npx skills add PrathamLearnsToCode/paper2code/skills/paper2code

설치 후 Claude Code 세션에서 다음과 같이 사용합니다.

# 기본 사용법 - arXiv URL 또는 논문 ID로 구현
/paper2code https://arxiv.org/abs/1706.03762

# 프레임워크 지정 (기본값: PyTorch)
/paper2code https://arxiv.org/abs/2006.11239 --framework jax

# 전체 구현 모드
/paper2code 2106.09685 --mode full

# 교육용 상세 설명 모드
/paper2code https://arxiv.org/abs/2010.11929 --mode educational

--mode educational을 사용하면 각 구현 결정에 대한 자세한 설명이 추가되어, 논문을 학습하거나 강의 자료를 준비할 때 유용합니다.

paper2code의 생성 결과물 구조

/paper2code 명령어를 실행하면 다음과 같은 구조의 파일들이 생성됩니다.

출력 디렉토리/
├── README.md               # 요약, 핵심 기여, 빠른 시작 가이드
├── REPRODUCTION_NOTES.md   # 전체 모호성 감사 결과
├── requirements.txt        # 고정된 버전의 의존성 목록
├── src/
│   ├── model.py            # 핵심 모델 아키텍처
│   ├── loss.py             # 손실 함수
│   ├── train.py            # 학습 루프
│   ├── data.py             # 데이터 로더
│   ├── evaluate.py         # 평가 코드
│   └── utils.py            # 유틸리티 함수
├── configs/
│   └── base.yaml           # 모든 하이퍼파라미터
└── notebooks/
    └── walkthrough.ipynb   # 교육적 워크스루 노트북

configs/base.yaml에는 논문에서 명시된 모든 하이퍼파라미터가 정리되어 있으며, 명시되지 않은 하이퍼파라미터는 [UNSPECIFIED] 표시와 함께 일반적으로 사용되는 기본값이 설정됩니다.

paper2code가 명시적으로 하지 않는 것들

paper2code는 구현의 정직성을 중요시합니다. 다음과 같은 작업들은 의도적으로 수행하지 않습니다. 정확성을 보장하지 않으며, 명시되지 않은 세부사항을 조용히 추측하여 채워 넣지도 않습니다. 데이터셋 다운로드나 분산 학습 인프라 구성, 베이스라인 비교 모델 구현, 표준 컴포넌트의 처음부터 재구현도 하지 않습니다. 이러한 제약을 명시적으로 공개함으로써, 생성된 코드의 한계와 신뢰 수준을 사용자가 정확히 파악할 수 있도록 합니다.

라이선스

paper2code는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용, 수정, 배포할 수 있습니다.

:github: paper2code 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

3개의 좋아요