Introdução geral
O Paper2Code é um projeto de código aberto que visa resolver o problema da falta de implementações de código para artigos de aprendizado de máquina. Ele transforma automaticamente artigos científicos em repositórios de códigos executáveis por meio do sistema multiagente de modelagem de linguagem grande (LLM) PaperCoder. O sistema adota um processo de três fases de planejamento, análise e geração de código, que é tratado separadamente por agentes especializados para gerar implementações de código de alta qualidade que sejam fiéis ao artigo. O projeto usa o famoso artigo "Attention Is All You Need" como exemplo e demonstra o processo desde o artigo até a implementação. Transformador O Paper2Code é compatível com a entrada de documentos em formato PDF e LaTeX. O Paper2Code oferece suporte à entrada de papel nos formatos PDF e LaTeX para pesquisadores, desenvolvedores e estudantes de aprendizado de máquina. O Paper2Code tem bom desempenho nos benchmarks do PaperBench e o código está disponível publicamente no GitHub, o que facilita a instalação e o uso.
Lista de funções
- Converta automaticamente documentos de aprendizado de máquina em repositórios de códigos executáveis.
- Oferece suporte à entrada de papel nos formatos PDF e LaTeX para gerar dados JSON estruturados.
- Fornece um fluxo de processamento de três fases para planejamento, análise e geração de código.
- Gerar um repositório de código completo, incluindo arquitetura do sistema, dependências e arquivos de configuração.
- Oferece suporte à avaliação da qualidade do código referenciado e não referenciado em uma escala de 1 a 5.
- Fornece exemplos de scripts para executar rapidamente o código do Transformer para o documento "Attention Is All You Need".
- Código aberto e gratuito, permitindo que os usuários modifiquem e contribuam com o código.
Usando a Ajuda
Processo de instalação
Para usar o Paper2Code, você precisa instalar as dependências necessárias e configurar seu ambiente. Veja a seguir as etapas detalhadas da instalação:
- armazém de clones
Execute o seguinte comando em um terminal para clonar o repositório do Paper2Code localmente:git clone https://github.com/going-doer/Paper2Code.git cd Paper2Code
- Instalação de dependências
Instale as dependências do Python, incluindoopenai
responder cantandotiktoken
etc. biblioteca:pip install openai tiktoken
Se você precisar usar o vLLM consulte o repositório oficial do vLLM (https://github.com/vllm-project/vllm) para instalação.
- Configuração da chave da API da OpenAI
Depois de obter a chave da API da OpenAI, configure as variáveis de ambiente:export OPENAI_API_KEY="your-api-key"
Os usuários do Windows o executam:
set OPENAI_API_KEY=your-api-key
- Instalação da ferramenta de conversão de PDF
O Paper2Code suporta a conversão de documentos PDF para o formato JSON. Clone o repositório s2orc-doc2json:git clone https://github.com/allenai/s2orc-doc2json.git
Execute o script de conversão de 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
Uso
O Paper2Code oferece várias formas de execução e suporta documentos nos formatos PDF e LaTeX. Veja a seguir os detalhes da operação:
Execute o script de amostra
O Paper2Code inclui um script de amostra para gerar o código do Transformer para o documento "Attention Is All You Need". Ir para scripts
Catálogo:
cd scripts
bash run.sh
A saída será salva no arquivo outputs/Transformer
Catálogo, inclusive:
planning_artifacts
Arquitetura do sistema e arquivos de dependência.analyzing_artifacts
Análise detalhada da realização da tese: análise detalhada da realização da tese.coding_artifacts
O arquivo de código gerado.Transformer_repo
O repositório de código final.
Manuseio de redações personalizadas
Para converter seu documento em código, prepare um arquivo no formato PDF ou LaTeX e modifique as variáveis de ambiente. Por exemplo, use o formato PDF:
export OPENAI_API_KEY="your-api-key"
cd scripts
bash run.sh
Para o formato LaTeX, execute:
bash run_latex.sh
Se outros modelos de linguagem grandes forem usados, execute:
bash run_llm.sh # PDF 格式
bash run_latex_llm.sh # LaTeX 格式
Avaliação da qualidade do código
O Paper2Code é compatível com a avaliação da qualidade do código referenciado e não referenciado. Execute scripts de avaliação:
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
Os caminhos padrão do depósito precisam ser especificados para a avaliação de referência:
--eval_type ref_based \
--gold_repo_dir ../examples/Transformer_gold_repo
Os resultados da avaliação, incluindo uma pontuação de correção de 1 a 5, são mantidos no results
Catálogo.
Operação da função em destaque
- Colaboração com vários agentesAgentes de planejamento para projetar a arquitetura do código, agentes de análise para extrair detalhes da tese, agentes de geração para escrever código modular. Os usuários não precisam intervir manualmente, o sistema conclui automaticamente todo o processo.
- Código de alta qualidadeO código gerado é fiel ao documento, inclui gerenciamento de dependências e arquivos de configuração e é adequado para ambientes de produção.
- Entrada flexívelSuporte aos formatos PDF e LaTeX, compatível com vários formatos de papel, conveniente para diferentes necessidades do usuário.
- Ferramentas de avaliaçãoForneça scripts de avaliação automatizados para quantificar a correção do código e ajudar os usuários a verificar a qualidade da implementação.
advertência
- Verifique se a chave da API da OpenAI é válida executando o3-mini O custo estimado do modelo é de US$ 0,50 a US$ 0,70.
- Ao converter PDF, verifique se a saída JSON está completa para evitar erros de formatação.
- Os papéis personalizados exigem o ajuste de caminhos e parâmetros no script, consulte a seção
README.md
.
cenário do aplicativo
- pesquisa acadêmica
Os pesquisadores podem transformar rapidamente novos artigos em código para validar algoritmos e economizar tempo na codificação manual. Por exemplo, os acadêmicos de aprendizado de máquina podem executar o código gerado pelo Paper2Code diretamente para testar o desempenho dos modelos em seus artigos. - Aprendizagem educacional
Por meio do Paper2Code, os alunos podem converter documentos clássicos (por exemplo, Transformer) em código para obter uma compreensão mais profunda dos detalhes da implementação do modelo e ajudar a aprender os princípios da aprendizagem profunda. - Desenvolvimento de protótipos
Os desenvolvedores podem criar rapidamente protótipos de aprendizado de máquina com base no repositório de código gerado, encurtando o ciclo de desenvolvimento e tornando-o adequado para projetos comerciais iterativos rápidos.
QA
- Quais formatos de papel são compatíveis com o Paper2Code?
Oferece suporte a documentos de aprendizado de máquina nos formatos PDF e LaTeX; o PDF precisa ser convertido em JSON, enquanto o LaTeX pode ser processado diretamente. - Qual é a qualidade do código gerado?
O código é processado por meio de um processo de três fases de planejamento, análise e geração, e é fiel ao conteúdo do documento. A ferramenta de avaliação fornece uma pontuação de correção de 1 a 5 para garantir um resultado de alta qualidade. - Preciso pagar para executar o Paper2Code?
Há uma taxa para usar a API da OpenAI, que custa cerca de US$ 0,50 a US$ 0,70 para executar o modelo o3-mini. Outros recursos são gratuitos. - Como você lida com seus próprios documentos?
Prepare o arquivo PDF ou LaTeX, configure as variáveis de ambiente, execute orun.sh
talvezrun_latex.sh
basta ajustar o caminho e os parâmetros.