Paper2Code: 研究論文から自動で高品質コードを生成!
研究論文を読んで、自分でコードを書くのは大変ではありませんか? Paper2Codeは、そんな悩みを解決する画期的なツールです。 Paper2Codeを使えば、論文をコードリポジトリに自動変換し、研究の再現性を高め、開発効率を向上させることが可能です。 特に、**機械学習論文からのコード生成**に強みを発揮します。
Paper2Code: 研究論文から自動で高品質コードを生成!
研究論文を読んで、自分でコードを書くのは大変ではありませんか? Paper2Codeは、そんな悩みを解決する画期的なツールです。 Paper2Codeを使えば、論文をコードリポジトリに自動変換し、研究の再現性を高め、開発効率を向上させることが可能です。 特に、機械学習論文からのコード生成に強みを発揮します。
Paper2Codeとは?
Paper2Codeは、複数のLLMエージェントを活用したシステムです。 論文を 計画(planning) 、 分析(analysis) 、 コード生成(code generation) の3段階を経て、高品質なコードを生成します。
Paper2Codeのメリット
- 再現性の向上: 論文の内容を忠実に再現したコードを生成
- 開発効率の向上: コード作成にかかる時間と労力を大幅に削減
- 高品質な実装: 既存の強力なベースラインを上回る性能
- 機械学習分野: 特に機械学習論文からのコード生成に優れた成果
導入方法
クイックスタート
以下の手順で、Paper2Codeをすぐに試すことができます。(Attention Is All You Needの例題を使用)
- OpenAI APIを使用する場合:
pip install openai export OPENAI_API_KEY="<OPENAI_API_KEY>" cd scripts bash run.sh
- OpenAI APIの利用には費用がかかります(o3-miniの場合、約$0.50-$0.70)。
- オープンソースモデル (vLLM) を使用する場合:
pip install vllm cd scripts bash run_llm.sh
- デフォルトモデルは
deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct
です。 - vLLMのインストールに関する問題は、公式リポジトリを参照してください。
- デフォルトモデルは
詳細なセットアップ手順
- 環境構築: OpenAI API または vLLM をインストール。
pip install openai
pip install vllm
- 必要なものだけをインストールすることで、環境をよりクリーンに保てます。
- PDFをJSONに変換:
s2orc-doc2json
リポジトリ を使用して、PDFを構造化されたJSON形式に変換。git clone https://github.com/allenai/s2orc-doc2json.git cd ./s2orc-doc2json/grobid-0.7.3 ./gradlew run mkdir -p ./s2orc-doc2json/output_dir/paper_coder python ./s2orc-doc2json/doc2json/grobid2json/process_pdf.py \ -i ${PDF_PATH} \ -t ./s2orc-doc2json/temp_dir/ \ -o ./s2orc-doc2json/output_dir/paper_coder
- PaperCoderの実行: 環境変数を設定し、
run.sh
またはrun_llm.sh
を実行。- 自作の論文で実行する場合は、環境変数を適切に変更してください。
出力フォルダ構造
生成されたリポジトリは以下の構造で出力されます。
outputs
├── Transformer
│ ├── analyzing_artifacts
│ ├── coding_artifacts
│ └── planning_artifacts
└── Transformer_repo # 最終出力リポジトリ
モデルベース評価
Paper2Codeで生成されたリポジトリの品質は、モデルベースのアプローチで評価されます。 参照ベースと参照フリーの設定の両方をサポートし、実装の重要な要素を評価し、重要度を割り当て、1〜5の正しさスコアを生成します。 詳細については、論文のセクション4.3.1( Paper2Code Benchmark )を参照ください。 特にリポジトリ品質評価が重要です。
評価方法
- 環境構築:
tiktoken
をインストールし、OpenAI APIKeyを設定。pip install tiktoken export OPENAI_API_KEY="<OPENAI_API_KEY>"
- 参照フリー評価: 生成されたリポジトリを評価。
cd codes/ python eval.py \ --paper_name Transformer \ --pdf_json_path ../examples/Transformer_cleaned.json \ --data_dir ../data \ --output_dir ../outputs/Transformer \ --target_repo_dir ../outputs/Transformer_repo \ --eval_result_dir ../results \ --eval_type ref_free \ --generated_n 8 \ --papercoder
- 参照ベース評価: 生成されたリポジトリと公式リポジトリを比較評価。
cd codes/ python eval.py \ --paper_name Transformer \ --pdf_json_path ../examples/Transformer_cleaned.json \ --data_dir ../data \ --output_dir ../outputs/Transformer \ --target_repo_dir ../outputs/Transformer_repo \ --gold_repo_dir ../examples/Transformer_gold_repo \ --eval_result_dir ../results \ --eval_type ref_based \ --generated_n 8 \ --papercoder
まとめ
Paper2Codeは、研究論文からコードを自動生成する強力なツールです。 機械学習研究者や開発者の皆様、ぜひPaper2Codeを活用して、研究の加速と効率化を実現してください! 論文をコードに自動変換する未来が、今ここに。