Allgemeine Einführung
Paper2Code ist ein Open-Source-Projekt, das den Mangel an Code-Implementierungen für Arbeiten zum maschinellen Lernen beheben soll. Es wandelt wissenschaftliche Arbeiten durch das Multi-Agenten-LLM-System (Large Language Modelling) PaperCoder automatisch in lauffähige Code-Repositories um. Das System basiert auf einem dreistufigen Prozess aus Planung, Analyse und Codegenerierung, der von spezialisierten Agenten getrennt abgewickelt wird, um qualitativ hochwertige, papiergetreue Codeimplementierungen zu erzeugen. Das Projekt nimmt das berühmte "Attention Is All You Need"-Papier als Beispiel und demonstriert den Prozess vom Papier zur Transformator Paper2Code unterstützt Papiereingaben im PDF- und LaTeX-Format. Es unterstützt Papiereingaben im PDF- und LaTeX-Format für Forscher, Entwickler und Studenten im Bereich maschinelles Lernen. Paper2Code schneidet in PaperBench-Benchmarks gut ab und der Code ist auf GitHub öffentlich verfügbar, sodass er einfach zu installieren und zu verwenden ist.
Funktionsliste
- Automatische Umwandlung von Papieren zum maschinellen Lernen in ausführbaren Code.
- Unterstützt die Eingabe von Papier in den Formaten PDF und LaTeX, um strukturierte JSON-Daten zu erzeugen.
- Bietet einen dreiphasigen Verarbeitungsablauf für Planung, Analyse und Codegenerierung.
- Generieren Sie ein vollständiges Code-Repository mit Systemarchitektur, Abhängigkeiten und Konfigurationsdateien.
- Unterstützt die Bewertung der Qualität von referenziertem und nicht referenziertem Code auf einer Skala von 1-5.
- Enthält Beispielskripte zur schnellen Ausführung des Transformer-Codes für das Papier "Attention Is All You Need".
- Sie ist quelloffen und kostenlos, so dass die Benutzer den Code verändern und zu ihm beitragen können.
Hilfe verwenden
Einbauverfahren
Um Paper2Code zu verwenden, müssen Sie die erforderlichen Abhängigkeiten installieren und Ihre Umgebung konfigurieren. Nachfolgend finden Sie die detaillierten Installationsschritte:
- Klon-Lager
Führen Sie den folgenden Befehl in einem Terminal aus, um das Paper2Code-Repository lokal zu klonen:git clone https://github.com/going-doer/Paper2Code.git cd Paper2Code
- Installation von Abhängigkeiten
Installieren Sie die Python-Abhängigkeiten, einschließlichopenai
im Gesang antwortentiktoken
usw. Bibliothek:pip install openai tiktoken
Wenn Sie die vLLM Modell zu installieren, finden Sie im offiziellen vLLM-Repository (https://github.com/vllm-project/vllm).
- Einstellen des OpenAI-API-Schlüssels
Nachdem Sie den OpenAI-API-Schlüssel erhalten haben, konfigurieren Sie die Umgebungsvariablen:export OPENAI_API_KEY="your-api-key"
Windows-Benutzer führen es aus:
set OPENAI_API_KEY=your-api-key
- Installation des PDF-Konvertierungsprogramms
Paper2Code unterstützt die Konvertierung von PDF-Dokumenten in das JSON-Format. Klonen Sie das Repository s2orc-doc2json:git clone https://github.com/allenai/s2orc-doc2json.git
Führen Sie das PDF-Konvertierungsskript aus:
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
Verwendung
Paper2Code bietet mehrere Möglichkeiten zur Ausführung und unterstützt Papiere im PDF- und LaTeX-Format. Hier sind die Details der Operation:
Führen Sie das Beispielskript aus
Paper2Code enthält ein Beispielskript zur Erzeugung von Transformer-Code für das Papier "Attention Is All You Need". Gehen Sie zu scripts
Katalog:
cd scripts
bash run.sh
Die Ausgabe wird in der Datei outputs/Transformer
Katalog, inklusive:
planning_artifacts
Systemarchitektur und Abhängigkeitsdateien.analyzing_artifacts
Detailanalyse der Thesenrealisierung.coding_artifacts
Die generierte Codedatei.Transformer_repo
: Das endgültige Code-Repository.
Umgang mit maßgeschneiderten Aufsätzen
Um Ihre Arbeit in Code umzuwandeln, bereiten Sie eine Datei im PDF- oder LaTeX-Format vor und ändern Sie die Umgebungsvariablen. Verwenden Sie zum Beispiel das PDF-Format:
export OPENAI_API_KEY="your-api-key"
cd scripts
bash run.sh
Für das LaTeX-Format, führen Sie aus:
bash run_latex.sh
Wenn andere große Sprachmodelle verwendet werden, starten Sie:
bash run_llm.sh # PDF 格式
bash run_latex_llm.sh # LaTeX 格式
Bewertung der Codequalität
Paper2Code unterstützt sowohl referenzierte als auch nicht referenzierte Codequalitätsbewertungen. Ausführen von Bewertungsskripten:
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
Für die Referenzbewertung müssen Standardlagerpfade festgelegt werden:
--eval_type ref_based \
--gold_repo_dir ../examples/Transformer_gold_repo
Die Bewertungsergebnisse, einschließlich einer 1-5 Korrektheitsbewertung, werden in der results
Katalog.
Featured Function Bedienung
- Zusammenarbeit zwischen mehreren AgentenPlanung von Agenten für den Entwurf der Code-Architektur, Analyse von Agenten für die Extraktion von Thesis-Details, Generierung von Agenten für das Schreiben von modularem Code. Die Benutzer müssen nicht manuell eingreifen, das System führt den gesamten Prozess automatisch durch.
- Hochwertiger CodeDer generierte Code entspricht dem Papier, enthält Abhängigkeitsmanagement und Konfigurationsdateien und ist für Produktionsumgebungen geeignet.
- Flexible EingabeUnterstützung der Formate PDF und LaTeX, kompatibel mit einer Vielzahl von Papierformaten, geeignet für verschiedene Benutzeranforderungen.
- BewertungsinstrumenteAutomatisierte Evaluierungsskripte zur Quantifizierung der Korrektheit des Codes und zur Unterstützung der Benutzer bei der Überprüfung der Implementierungsqualität bereitstellen.
caveat
- Stellen Sie sicher, dass der OpenAI-API-Schlüssel gültig ist, indem Sie o3-mini Die Kosten des Modells werden auf 0,50-0,70 US-Dollar geschätzt.
- Überprüfen Sie bei der PDF-Konvertierung die JSON-Ausgabe auf Vollständigkeit, um Formatierungsfehler zu vermeiden.
- Benutzerdefinierte Papiere erfordern die Anpassung von Pfaden und Parametern im Skript, siehe die
README.md
.
Anwendungsszenario
- akademische Forschung
Forscher können neue Arbeiten schnell in Code umwandeln, um Algorithmen zu validieren und Zeit für die manuelle Codierung zu sparen. Wissenschaftler, die sich mit maschinellem Lernen beschäftigen, können beispielsweise den von Paper2Code generierten Code direkt ausführen, um die Leistung der Modelle in ihren Arbeiten zu testen. - Pädagogisches Lernen
Mit Paper2Code können Studierende klassische Papers (z. B. Transformer) in Code umwandeln, um ein tieferes Verständnis für die Details der Modellimplementierung zu gewinnen und die Prinzipien des Deep Learning zu erlernen. - Entwicklung von Prototypen
Entwickler können auf der Grundlage des generierten Code-Repositorys schnell Prototypen für maschinelles Lernen erstellen, wodurch sich der Entwicklungszyklus verkürzt und die Software für schnelle iterative kommerzielle Projekte geeignet ist.
QA
- Welche Papierformate werden von Paper2Code unterstützt?
Unterstützt Arbeiten zum maschinellen Lernen in den Formaten PDF und LaTeX; PDF muss in JSON konvertiert werden, LaTeX kann direkt verarbeitet werden. - Wie hoch ist die Qualität des generierten Codes?
Der Code durchläuft einen dreistufigen Prozess der Planung, Analyse und Generierung und entspricht dem Inhalt des Papiers. Das Bewertungstool vergibt eine Korrektheitspunktezahl von 1-5, um eine qualitativ hochwertige Ausgabe zu gewährleisten. - Muss ich für die Nutzung von Paper2Code bezahlen?
Die Nutzung der OpenAI-API ist gebührenpflichtig und kostet etwa 0,50-0,70 $ für den Betrieb des o3-mini-Modells. Andere Funktionen sind kostenlos. - Wie gehen Sie mit Ihren eigenen Papieren um?
Bereiten Sie die PDF- oder LaTeX-Datei vor, konfigurieren Sie die Umgebungsvariablen, führen Sie dierun.sh
vielleichtrun_latex.sh
Skript, passen Sie einfach den Pfad und die Parameter an.