[Papier] | [Blogbeitrag] | [Laufwerksordner]
Eine der großen Herausforderungen der künstlichen Intelligenz besteht darin, Agenten zu entwickeln, die wissenschaftliche Forschung betreiben und neues Wissen entdecken können. Obwohl Frontier-Modelle bereits zur Unterstützung menschlicher Wissenschaftler eingesetzt wurden – zum Beispiel beim Brainstorming von Ideen oder beim Schreiben von Code –, erfordern sie immer noch eine umfassende manuelle Überwachung oder sind stark auf bestimmte Aufgaben beschränkt.
Wir freuen uns, The AI Scientist vorzustellen, das erste umfassende System für vollautomatische wissenschaftliche Entdeckungen, das es Foundation Models wie Large Language Models (LLMs) ermöglicht, unabhängig Forschung durchzuführen.
Wir stellen hier alle Durchläufe und Daten aus unserem Artikel zur Verfügung, in dem wir jedes Basismodell auf jeder Vorlage für etwa 50 Ideen ausführen. Wir empfehlen dringend , einige der Claude-Artikel durchzulesen, um einen Eindruck von den Stärken und Schwächen des Systems zu bekommen. Hier sind einige Beispielpapiere von The AI Scientist :
DualScale Diffusion: Adaptiver Merkmalsausgleich für niedrigdimensionale generative Modelle
Multiskalige Gitterrauschanpassung: Verbesserung von Diffusionsmodellen für niedrigdimensionale Daten
GAN-verstärkte Diffusion: Steigerung der Probenqualität und -vielfalt
DualDiff: Verbesserung der Moduserfassung in niedrigdimensionalen Diffusionsmodellen durch Dual-Experten-Rauschunterdrückung
StyleFusion: Adaptive Multi-Style-Generierung in Sprachmodellen auf Zeichenebene
Adaptive Lernraten für Transformer über Q-Learning
Grokking freischalten: Eine vergleichende Studie zu Gewichtsinitialisierungsstrategien in Transformatormodellen
Grokking Accelerated: Schichtweise Lernraten für die Transformer-Generalisierung
Grokking durch Komprimierung: Plötzliche Verallgemeinerung durch minimale Beschreibungslänge enthüllen
Mathematische Erkenntnisse beschleunigen: Grokking durch strategische Datenerweiterung steigern
Notiz:
Vorsicht! Diese Codebasis führt LLM-geschriebenen Code aus. Mit dieser Autonomie sind verschiedene Risiken und Herausforderungen verbunden, darunter die Verwendung potenziell gefährlicher Pakete, der Webzugriff und die potenzielle Entstehung von Prozessen. Verwendung nach eigenem Ermessen. Bitte stellen Sie sicher, dass Sie den Webzugriff entsprechend Containerisieren und einschränken.
Einführung
Anforderungen
Installation
Unterstützte Modelle und API-Schlüssel
Einrichten der Vorlagen
NanoGPT-Vorlage
2D-Diffusionsvorlage
Grokking-Vorlage
Führen Sie Experimente zur Papiergenerierung von KI-Wissenschaftlern durch
Erhalten einer LLM-generierten Papierbesprechung
Erstellen Sie Ihre eigene Vorlage
Von der Community bereitgestellte Vorlagen
Vorlagenressourcen
Unter Berufung auf den KI-Wissenschaftler
Häufig gestellte Fragen
Containerisierung
Wir stellen drei Vorlagen zur Verfügung, die in unserem Artikel verwendet wurden und die folgenden Bereiche abdecken: NanoGPT , 2D-Diffusion und Grokking . Diese Vorlagen ermöglichen es The AI Scientist, Ideen zu generieren und Experimente in diesen Bereichen durchzuführen. Wir akzeptieren Beiträge zu neuen Vorlagen aus der Community, beachten Sie jedoch bitte, dass diese nicht von uns gepflegt werden. Alle anderen über die drei bereitgestellten Vorlagen hinaus sind Community-Beiträge.
Dieser Code ist für die Ausführung unter Linux mit NVIDIA-GPUs unter Verwendung von CUDA und PyTorch konzipiert. Die Unterstützung anderer GPU-Architekturen ist möglicherweise möglich, indem die PyTorch-Richtlinien befolgt werden. Die aktuellen Vorlagen würden auf reinen CPU-Rechnern wahrscheinlich unvorstellbar viel Zeit in Anspruch nehmen. Für die Ausführung auf anderen Betriebssystemen sind möglicherweise erhebliche Anpassungen erforderlich.
conda create -n ai_scientist python=3.11 conda activate ai_scientist# Installiere pdflatexsudo apt-get install texlive-full# Installiere PyPI requirepip install -r require.txt
Hinweis: Die Installation texlive-full
kann lange dauern. Möglicherweise müssen Sie während der Installation die Eingabetaste gedrückt halten.
Wir unterstützen eine Vielzahl von Modellen, einschließlich Open-Weight- und API-only-Modellen. Im Allgemeinen empfehlen wir, nur Grenzmodelle zu verwenden, die über die Leistungsfähigkeit des ursprünglichen GPT-4 hinausgehen. Eine vollständige Liste der unterstützten Modelle finden Sie hier.
Standardmäßig wird hierfür die Umgebungsvariable OPENAI_API_KEY
verwendet.
Standardmäßig wird hierfür die Umgebungsvariable ANTHROPIC_API_KEY
verwendet.
Für Claude-Modelle von Amazon Bedrock installieren Sie bitte diese zusätzlichen Pakete:
pip install anthropic[Grundgestein]
Geben Sie als Nächstes einen Satz gültiger AWS-Anmeldeinformationen und die AWS-Zielregion an:
Legen Sie die Umgebungsvariablen fest: AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION_NAME
.
Für Claude-Modelle, die von Vertex AI Model Garden bereitgestellt werden, installieren Sie bitte diese zusätzlichen Pakete:
pip installiert google-cloud-aiplatform pip install anthropic[vertex]
Als Nächstes richten Sie eine gültige Authentifizierung für ein Google Cloud-Projekt ein, indem Sie beispielsweise die Region und die Projekt-ID angeben:
export CLOUD_ML_REGION="REGION" # für Model Garden callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # für Model Garden callexport VERTEXAI_LOCATION="REGION" # für Aider/LiteLLM callexport VERTEXAI_PROJECT="PROJECT_ID" # für Aider/LiteLLM-Aufruf
Standardmäßig wird hierfür die Umgebungsvariable DEEPSEEK_API_KEY
verwendet.
Standardmäßig wird hierfür die Umgebungsvariable OPENROUTER_API_KEY
verwendet.
Unser Code kann optional auch einen Semantic Scholar API Key ( S2_API_KEY
) für einen höheren Durchsatz verwenden, falls Sie einen haben, obwohl er im Prinzip auch ohne diesen funktionieren sollte. Wenn Sie Probleme mit Semantic Scholar haben, können Sie die Literatursuche und Zitierphase der Papiererstellung überspringen.
Stellen Sie sicher, dass Sie den Schlüssel für das Modell angeben, das Sie für Ihre Läufe verwenden, z. B.:
export OPENAI_API_KEY="HIER IHR SCHLÜSSEL"export S2_API_KEY="HIER IHR SCHLÜSSEL"
In diesem Abschnitt finden Sie Anweisungen zum Einrichten jeder der drei in unserem Dokument verwendeten Vorlagen. Bevor Sie die Experimente von The AI Scientist durchführen, stellen Sie bitte sicher, dass Sie die Einrichtungsschritte für die Vorlagen abgeschlossen haben, an denen Sie interessiert sind.
Beschreibung: Diese Vorlage untersucht transformatorbasierte autoregressive Vorhersageaufgaben für das nächste Token.
Einrichtungsschritte:
Bereiten Sie die Daten vor:
python data/enwik8/prepare.py Python-Daten/shakespeare_char/prepare.py python data/text8/prepare.py
Basislinienläufe erstellen (maschinenabhängig):
# Richten Sie den NanoGPT-Basislauf ein. # HINWEIS: SIE MÜSSEN ZUERST DIE OBEN GENANNTEN PREPARE-SCRIPTS AUSFÜHREN!cd templates/nanoGPT python experiment.py --out_dir run_0 Python plot.py
Beschreibung: Diese Vorlage untersucht die Verbesserung der Leistung generativer Diffusionsmodelle bei niedrigdimensionalen Datensätzen.
Einrichtungsschritte:
Abhängigkeiten installieren:
# Richten Sie den 2D-Diffusiongit-Klon ein: https://github.com/gregversteeg/NPEET.gitcd NPEET pip install .pip install scikit-learn
Erstellen Sie Basisläufe:
# Richten Sie die 2D-Diffusions-Basislinie runcd templates/2d_diffusion ein python experiment.py --out_dir run_0 Python plot.py
Beschreibung: Diese Vorlage untersucht Fragen zur Generalisierung und Lerngeschwindigkeit in tiefen neuronalen Netzen.
Einrichtungsschritte:
Abhängigkeiten installieren:
# Grokkingpip einrichten und einops installieren
Erstellen Sie Basisläufe:
# Grokking-Baseline-Runcd-Vorlagen/Grokking einrichten python experiment.py --out_dir run_0 Python plot.py
Hinweis: Bitte stellen Sie sicher, dass die oben genannten Einrichtungsschritte abgeschlossen sind, bevor Sie diese Experimente durchführen.
conda activate ai_scientist# Führen Sie das Papier aus generation.python launch_scientist.py --model "gpt-4o-2024-05-13" --experiment nanoGPT_lite --num-ideas 2 python launch_scientist.py --model "claude-3-5-sonnet-20241022" --experiment nanoGPT_lite --num-ideas 2
Wenn Sie über mehr als eine GPU verfügen, verwenden Sie die Option --parallel
, um Ideen über mehrere GPUs hinweg zu parallelisieren.
import openaifrom ai_scientist.perform_review import load_paper, perform_reviewclient = openai.OpenAI()model = "gpt-4o-2024-05-13"# Papier aus PDF-Datei laden (Rohtext)paper_txt = load_paper("report.pdf")# Holen das Rezensionswörterbuchreview = perform_review(paper_txt,model,client,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,temperature=0.1, )# Überprüfungsergebnisse überprüfenreview["Overall"] # Gesamtpunktzahl (1-10)review["Decision"] # 'Akzeptieren' oder 'Ablehnen'review["Weaknesses"] # Liste der Schwächen (Strings)
So führen Sie eine Batch-Analyse durch:
cd review_iclr_bench python iclr_analysis.py --num_reviews 500 --batch_size 100 --num_fs_examples 1 --num_reflections 5 --temperature 0.1 --num_reviews_ensemble 5
Wenn es einen Studienbereich gibt, den The AI Scientist erforschen soll, ist es ganz einfach, eigene Vorlagen zu erstellen. Befolgen Sie im Allgemeinen die Struktur der vorhandenen Vorlagen, die aus Folgendem bestehen:
experiment.py
– Dies ist das Hauptskript, in dem sich der Kerninhalt befindet. Es benötigt ein Argument --out_dir
, das angibt, wo der Ordner erstellt und die relevanten Informationen aus dem Lauf gespeichert werden sollen.
plot.py
– Dieses Skript übernimmt die Informationen aus den run
und erstellt Diagramme. Der Code sollte klar und leicht zu bearbeiten sein.
prompt.json
– Geben Sie hier Informationen zu Ihrer Vorlage ein.
seed_ideas.json
– Platzieren Sie hier Beispielideen. Sie können auch versuchen, Ideen ohne Beispiele zu generieren und dann die besten ein oder zwei auszuwählen und hier zu veröffentlichen.
latex/template.tex
– Wir empfehlen die Verwendung unseres LaTeX-Ordners, ersetzen Sie jedoch unbedingt die vorinstallierten Zitate durch solche, die Ihrer Meinung nach relevanter sind.
Der Schlüssel zum Funktionieren neuer Vorlagen besteht darin, die Basisdateinamen und Ausgabe-JSONs an das vorhandene Format anzupassen. Alles andere kann frei geändert werden. Sie sollten außerdem sicherstellen, dass die Datei template.tex
aktualisiert wird, um den richtigen Zitierstil/die richtigen Basisdiagramme für Ihre Vorlage zu verwenden.
Wir freuen uns über Community-Beiträge in Form neuer Vorlagen. Obwohl diese nicht von uns gepflegt werden, freuen wir uns, Ihre Vorlagen anderen vorzustellen. Nachfolgend listen wir von der Community bereitgestellte Vorlagen zusammen mit Links zu ihren Pull Requests (PRs) auf:
Modellierung von Infektionskrankheiten ( seir
) – PR #137
Bildklassifizierung mit MobileNetV3 ( mobilenetV3
) – PR #141
Sketch RNN ( sketch_rnn
) – PR #143
Dieser Abschnitt ist für Community-Beiträge reserviert. Bitte senden Sie eine Pull-Anfrage, um Ihre Vorlage zur Liste hinzuzufügen! Bitte beschreiben Sie die Vorlage in der PR-Beschreibung und zeigen Sie auch Beispiele der generierten Beiträge.
Wir stellen drei Vorlagen zur Verfügung, die stark Code aus anderen Repositorys verwenden, die unten aufgeführt sind:
Die NanoGPT-Vorlage verwendet Code von NanoGPT und dieser PR.
Die 2D-Diffusionsvorlage verwendet Code von tiny-diffusion, ema-pytorch und Datasaur.
Die Grokking-Vorlage verwendet Code von Sea-Snell/grokking und danielmamay/grokking.
Wir möchten den Entwicklern der Open-Source-Modelle und -Pakete für ihre Beiträge und die Bereitstellung ihrer Arbeit danken.
Wenn Sie The AI Scientist in Ihrer Forschung verwenden, zitieren Sie es bitte wie folgt:
@article{lu2024aiscientist, title={The {AI} {S}cientist: Towards Fully Automated Open-Ended Scientific Discovery}, author={Lu, Chris and Lu, Cong and Lange, Robert Tjarko and Foerster, Jakob and Clune, Jeff and Ha, David}, journal={arXiv preprint arXiv:2408.06292}, year={2024} }
Wenn Sie Fragen zu The AI Scientist haben, empfehlen wir Ihnen, zuerst unseren Artikel zu lesen.
Warum fehlen mir Dateien, wenn ich The AI Scientist ausführe?
Stellen Sie sicher, dass Sie alle Einrichtungs- und Vorbereitungsschritte vor dem Hauptexperimentskript abgeschlossen haben.
Warum wurde kein PDF oder keine Rezension generiert?
Der KI-Wissenschaftler stellt eine Idee mit einer Erfolgsquote fertig, die von der Vorlage, dem Basismodell und der Komplexität der Idee abhängt. Wir empfehlen Ihnen, sich auf unser Hauptpapier zu beziehen. Die höchsten Erfolgsraten werden mit Claude Sonnet 3.5 beobachtet. Bewertungen erfolgen am besten mit GPT-4o; Alle anderen Modelle haben Probleme mit der Positivitätsverzerrung oder der Nichteinhaltung der erforderlichen Ergebnisse.
Wie hoch sind die Kosten für jede generierte Idee?
In der Regel weniger als 15 US-Dollar pro Artikel mit Claude Sonnet 3.5. Wir empfehlen DeepSeek Coder V2 für einen wesentlich kostengünstigeren Ansatz. Ein guter Ort, um nach neuen Modellen zu suchen, ist die Aider-Bestenliste.
Wie ändere ich das mit den Zuschreibungen verknüpfte Basiskonferenzformat?
Ändern Sie die in jeder Vorlage enthaltenen Basisdateien template.tex
.
Wie führe ich The AI Scientist für verschiedene Fachgebiete durch?
Bitte beachten Sie die Anleitungen zu den verschiedenen Vorlagen. In dieser aktuellen Iteration ist dies auf Ideen beschränkt, die im Code ausgedrückt werden können. Die Aufhebung dieser Einschränkung wäre jedoch eine spannende Zukunftsarbeit! :) :)
Wie füge ich Unterstützung für ein neues Stiftungsmodell hinzu?
Sie können ai_scientist/llm.py
ändern, um Unterstützung für ein neues Fundamentmodell hinzuzufügen. Wir raten davon ab, für The AI Scientist ein Modell zu verwenden, das deutlich schwächer als das GPT-4-Niveau ist.
Warum muss ich die Baseline-Läufe selbst durchführen?
Diese werden als run_0
angezeigt und sollten für genaue Laufzeitvergleiche aufgrund von Hardwareunterschieden pro Computer ausgeführt werden, auf dem Sie The AI Scientist ausführen.
Was passiert, wenn ich Probleme beim Zugriff auf die Semantic Scholar API habe?
Wir verwenden die Semantic Scholar API, um Ideen auf Neuheit zu prüfen und Zitate für die Ausarbeitung der Arbeit zu sammeln. Sie können diese Phasen möglicherweise überspringen, wenn Sie keinen API-Schlüssel haben oder der Zugriff auf die API langsam ist.
Wir fügen ein von der Community bereitgestelltes Docker-Image hinzu, das Sie bei Ihren Containerisierungsbemühungen in experimental/Dockerfile
unterstützen kann.
Sie können dieses Bild wie folgt verwenden:
# Endpoint Scriptdocker run -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --model gpt-4o-2024-05-13 --experiment 2d_diffusion --num-ideas 2
# Interactivedocker run -it -e OPENAI_API_KEY=$OPENAI_API_KEY --entrypoint /bin/bash <AI_SCIENTIST_IMAGE>