はじめに
Paper2Codeは、機械学習論文のコード実装が不足しているという問題を解決することを目的としたオープンソースプロジェクトである。マルチエージェントの大規模言語モデリング(LLM)システムPaperCoderによって、科学論文を実行可能なコード・リポジトリに自動的に変換する。このシステムは、計画、分析、コード生成の3段階のプロセスを採用し、専門エージェントが別々に処理することで、論文に忠実な高品質のコード実装を生成する。このプロジェクトでは、有名な "Attention Is All You Need "論文を例にとり、論文からコード生成までのプロセスを示している。 変圧器 Paper2CodeはPDFとLaTeX形式の論文入力をサポートしています。Paper2Codeは、機械学習研究者、開発者、学生向けにPDFとLaTeX形式の論文入力をサポートしています。Paper2CodeはPaperBenchベンチマークで良好な結果を出しており、コードはGitHubで公開されているため、簡単にインストールして使用することができます。
機能一覧
- 機械学習の論文を自動的に実行可能なコード・リポジトリに変換します。
- 構造化されたJSONデータを生成するために、PDFとLaTeX形式の紙入力をサポートします。
- プランニング、分析、コード生成の3段階の処理フローを提供。
- システム・アーキテクチャ、依存関係、設定ファイルを含む完全なコード・リポジトリを生成する。
- 参照されるコードと参照されないコードの品質を1~5の尺度で評価できます。
- Attention Is All You Need」論文のTransformerコードを素早く実行するためのサンプルスクリプトを提供。
- オープンソースで無料であるため、ユーザーはコードを変更したり、貢献したりすることができる。
ヘルプの使用
設置プロセス
Paper2Codeを使用するには、必要な依存関係をインストールし、環境を設定する必要があります。以下は、詳しいインストール手順です:
- クローン倉庫
ターミナルで以下のコマンドを実行し、Paper2Codeリポジトリをローカルにクローンする:git clone https://github.com/going-doer/Paper2Code.git cd Paper2Code
- 依存関係のインストール
以下を含むPythonの依存関係をインストールする。openai
歌で応えるtiktoken
などのライブラリーがある:pip install openai tiktoken
を使用する必要がある場合は ブイエルエルエム モデルのインストールについては、vLLMの公式リポジトリ(https://github.com/vllm-project/vllm)を参照してください。
- OpenAI APIキーの設定
OpenAI API キーを取得したら、環境変数を設定します:export OPENAI_API_KEY="your-api-key"
ウィンドウズ・ユーザーが実行する:
set OPENAI_API_KEY=your-api-key
- PDF変換ツールのインストール
Paper2CodeはPDF論文をJSON形式に変換することをサポートしています。s2orc-doc2jsonリポジトリをクローンしてください:git clone https://github.com/allenai/s2orc-doc2json.git
PDF変換スクリプトを実行します:
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
使用方法
Paper2Codeは、いくつかの実行方法を提供し、PDFやLaTeX形式の論文をサポートしています。以下に操作の詳細を示します:
サンプル・スクリプトの実行
Paper2Codeには、「Attention Is All You Need」論文のTransformerコードを生成するサンプルスクリプトが含まれています。次のページへ scripts
カタログ
cd scripts
bash run.sh
出力は outputs/Transformer
カタログを含む:
planning_artifacts
システム・アーキテクチャと依存関係ファイル。analyzing_artifacts
論文実現のための詳細分析。coding_artifacts
生成されたコードファイル。Transformer_repo
最終的なコードリポジトリ。
カスタムエッセイの取り扱い
論文をコードに変換するには、PDFまたはLaTeX形式のファイルを用意し、環境変数を変更します。例えば、PDF形式を使用する:
export OPENAI_API_KEY="your-api-key"
cd scripts
bash run.sh
LaTeX フォーマットの場合は実行してください:
bash run_latex.sh
他の大規模な言語モデルが使用されている場合は、実行する:
bash run_llm.sh # PDF 格式
bash run_latex_llm.sh # LaTeX 格式
コード品質の評価
Paper2Codeは、参照と非参照の両方のコード品質評価をサポートしています。評価スクリプトの実行
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
標準的な倉庫パスは、参照評価のために指定する必要がある:
--eval_type ref_based \
--gold_repo_dir ../examples/Transformer_gold_repo
評価結果は、1~5の正誤スコアを含めて、以下の場所に保管される。 results
カタログ
注目の機能操作
- マルチエージェントコラボレーションコードアーキテクチャを設計する計画エージェント、論文の詳細を抽出する分析エージェント、モジュール化されたコードを記述する生成エージェント。ユーザが手動で介入する必要はなく、システムが自動的に全プロセスを完了する。
- 高品質のコード生成されたコードは論文に忠実で、依存関係管理やコンフィギュレーション・ファイルを含み、本番環境に適している。
- 柔軟な入力PDFとLaTeX形式をサポートし、様々な用紙形式と互換性があり、様々なユーザーのニーズに便利です。
- 評価ツールコードの正しさを定量化し、ユーザが実装品質を検証できるよう、自動化された評価スクリプトを提供します。
ほら
- を実行して、OpenAI API キーが有効であることを確認します。 o3-ミニ モデルの推定コストは0.50~0.70ドル。
- PDFを変換するときは、フォーマットエラーを避けるために、JSON出力が完全かどうかをチェックしてください。
- カスタム・ペーパーでは、スクリプトのパスやパラメータを調整する必要があります。
README.md
.
アプリケーションシナリオ
- 学術研究
研究者は、新しい論文を素早くコードに変換してアルゴリズムを検証し、手作業によるコーディングの時間を節約することができます。例えば、機械学習の研究者は、Paper2Codeによって生成されたコードを直接実行して、論文のモデルのパフォーマンスをテストすることができます。 - 教育的学習
Paper2Codeを通じて、学生は古典的な論文(Transformerなど)をコードに変換し、モデル実装の詳細をより深く理解し、ディープラーニングの原理を学ぶ手助けをすることができる。 - プロトタイプの開発
開発者は、生成されたコード・リポジトリに基づいて機械学習プロトタイプを迅速に構築できるため、開発サイクルが短縮され、高速な反復型の商用プロジェクトに適している。
品質保証
- Paper2Codeはどのような用紙フォーマットに対応していますか?
PDFとLaTeX形式の機械学習論文をサポート。PDFはJSONに変換する必要があるが、LaTeXは直接処理できる。 - 生成されたコードの品質は?
コードは、論文の内容に忠実であるよう、計画、分析、生成の3段階のプロセスを経て処理される。評価ツールは、高品質の出力を保証するために、1~5の正しさのスコアを提供します。 - Paper2Codeを実行するためにお金を払う必要がありますか?
OpenAI APIを使うには有料で、o3-miniモデルを動かすのに約0.50~0.70ドルかかる。その他の機能は無料です。 - 自分の書類はどのように扱っていますか?
PDFまたはLaTeXファイルを準備し、環境変数を設定し、次のコマンドを実行します。run.sh
もしかしたらrun_latex.sh
スクリプトのパスとパラメーターを調整するだけだ。