[Papier] | [Article de blog] | [Dossier du lecteur]
L’un des grands défis de l’intelligence artificielle consiste à développer des agents capables de mener des recherches scientifiques et de découvrir de nouvelles connaissances. Même si les modèles frontières ont déjà été utilisés pour aider les scientifiques, par exemple pour réfléchir à des idées ou écrire du code, ils nécessitent encore une supervision manuelle approfondie ou sont fortement limités à des tâches spécifiques.
Nous sommes ravis de présenter The AI Scientist , le premier système complet de découverte scientifique entièrement automatique, permettant aux modèles de base tels que les grands modèles linguistiques (LLM) d'effectuer des recherches de manière indépendante.
Nous fournissons ici toutes les exécutions et les données de notre article, où nous exécutons chaque modèle de base sur chaque modèle pour environ 50 idées. Nous vous recommandons fortement de lire certains des articles de Claude pour avoir une idée des forces et des faiblesses du système. Voici quelques exemples d'articles générés par The AI Scientist :
Diffusion DualScale : équilibrage adaptatif des fonctionnalités pour les modèles génératifs de faible dimension
Adaptation du bruit de grille multi-échelle : amélioration des modèles de diffusion pour les données de faible dimension
Diffusion améliorée par GAN : améliorer la qualité et la diversité des échantillons
DualDiff : amélioration de la capture de mode dans les modèles de diffusion de faible dimension via le débruitage double expert
StyleFusion : génération adaptative multi-styles dans les modèles de langage au niveau des caractères
Taux d'apprentissage adaptatif pour les transformateurs via Q-Learning
Déverrouiller Grokking : une étude comparative des stratégies d'initialisation de poids dans les modèles de transformateur
Grokking accéléré : taux d'apprentissage par couche pour la généralisation des transformateurs
Grokking Through Compression : dévoiler une généralisation soudaine via une longueur de description minimale
Accélérer la compréhension mathématique : stimuler Grokking grâce à l'augmentation stratégique des données
Note:
Prudence! Cette base de code exécutera le code écrit par LLM. Il existe divers risques et défis associés à cette autonomie, notamment l'utilisation de packages potentiellement dangereux, l'accès au Web et la génération potentielle de processus. Utilisez à votre propre discrétion. Veuillez vous assurer de conteneuriser et de restreindre l'accès au Web de manière appropriée.
Introduction
Exigences
Installation
Modèles pris en charge et clés API
Configuration des modèles
Modèle NanoGPT
Modèle de diffusion 2D
Modèle de Grokking
Exécutez des expériences de génération de papier scientifique en IA
Obtenir une révision papier générée par LLM
Créer votre propre modèle
Modèles contribués par la communauté
Ressources de modèles
Citant le scientifique de l'IA
Foire aux questions
Conteneurisation
Nous proposons trois modèles, qui ont été utilisés dans notre article, couvrant les domaines suivants : NanoGPT , 2D Diffusion et Grokking . Ces modèles permettent à The AI Scientist de générer des idées et de mener des expériences dans ces domaines. Nous acceptons les contributions de nouveaux modèles de la communauté, mais veuillez noter qu'ils ne sont pas maintenus par nous. Tous les autres modèles au-delà des trois fournis sont des contributions de la communauté.
Ce code est conçu pour fonctionner sous Linux avec des GPU NVIDIA utilisant CUDA et PyTorch. La prise en charge d'autres architectures GPU peut être possible en suivant les directives de PyTorch. Les modèles actuels prendraient probablement un temps inimaginable sur les machines fonctionnant uniquement avec un processeur. L'exécution sur d'autres systèmes d'exploitation peut nécessiter des ajustements importants.
conda create -n ai_scientist python=3.11 conda activate ai_scientist# Installer pdflatexsudo apt-get install texlive-full# Installer PyPI conditionspip install -r conditions.txt
Remarque : L'installation texlive-full
peut prendre beaucoup de temps. Vous devrez peut-être maintenir Entrée pendant l'installation.
Nous prenons en charge une grande variété de modèles, y compris les modèles à poids ouvert et les modèles API uniquement. En général, nous recommandons d'utiliser uniquement des modèles frontières supérieurs aux capacités du GPT-4 d'origine. Pour voir la liste complète des modèles pris en charge, cliquez ici.
Par défaut, cela utilise la variable d'environnement OPENAI_API_KEY
.
Par défaut, cela utilise la variable d'environnement ANTHROPIC_API_KEY
.
Pour les modèles Claude fournis par Amazon Bedrock, veuillez installer ces packages supplémentaires :
pip installer anthropique[substrat]
Ensuite, spécifiez un ensemble d'informations d'identification AWS valides et la région AWS cible :
Définissez les variables d'environnement : AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION_NAME
.
Pour les modèles Claude fournis par Vertex AI Model Garden, veuillez installer ces packages supplémentaires :
pip installer google-cloud-aiplatform pip install anthropique[sommet]
Ensuite, configurez une authentification valide pour un projet Google Cloud, par exemple en fournissant la région et l'ID du projet :
export CLOUD_ML_REGION="REGION" # pour l'appel Model Garden callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # pour l'appel Model Garden callexport VERTEXAI_LOCATION="REGION" # pour l'appel Aider/LiteLLM export VERTEXAI_PROJECT="PROJECT_ID" # pour l'appel Aider/LiteLLM
Par défaut, cela utilise la variable d'environnement DEEPSEEK_API_KEY
.
Par défaut, cela utilise la variable d'environnement OPENROUTER_API_KEY
.
Notre code peut également éventuellement utiliser une clé API Semantic Scholar ( S2_API_KEY
) pour un débit plus élevé si vous en avez une, même si cela devrait en principe fonctionner sans elle. Si vous rencontrez des problèmes avec Semantic Scholar, vous pouvez ignorer les phases de recherche documentaire et de citation de la génération d'articles.
Assurez-vous de fournir la clé du modèle utilisé pour vos exécutions, par exemple :
export OPENAI_API_KEY="VOTRE CLÉ ICI"export S2_API_KEY="VOTRE CLÉ ICI"
Cette section fournit des instructions pour configurer chacun des trois modèles utilisés dans notre article. Avant d'exécuter les expériences The AI Scientist, assurez-vous d'avoir terminé les étapes de configuration des modèles qui vous intéressent.
Description : ce modèle étudie les tâches de prédiction autorégressive du prochain jeton basées sur un transformateur.
Étapes de configuration :
Préparez les données :
données python/enwik8/prepare.py données python/shakespeare_char/prepare.py données python/text8/prepare.py
Créer des exécutions de référence (en fonction de la machine) :
# Configurer l'exécution de base de NanoGPT# REMARQUE : VOUS DEVEZ D'ABORD EXÉCUTER LES SCRIPTS DE PRÉPARATION CI-DESSUS ! cd templates/nanoGPT python experience.py --out_dir run_0 python plot.py
Description : ce modèle étudie l'amélioration des performances des modèles génératifs de diffusion sur des ensembles de données de faible dimension.
Étapes de configuration :
Installer les dépendances :
# Configurer le clone 2D Diffusiongit https://github.com/gregversteeg/NPEET.gitcd NPEET pip installer .pip installer scikit-learn
Créez des exécutions de référence :
# Configurer les modèles runcd de base de diffusion 2D/2d_diffusion python experience.py --out_dir run_0 python plot.py
Description : ce modèle étudie les questions relatives à la généralisation et à la vitesse d'apprentissage dans les réseaux de neurones profonds.
Étapes de configuration :
Installer les dépendances :
# Configurer Grokkingpip, installer einops
Créez des exécutions de référence :
# Configurer les modèles runcd/grokking de base de Grokking python experience.py --out_dir run_0 python plot.py
Remarque : Veuillez vous assurer que les étapes de configuration ci-dessus sont terminées avant d'exécuter ces expériences.
conda activate ai_scientist# Exécutez le papier génération.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
Si vous disposez de plusieurs GPU, utilisez l'option --parallel
pour paralléliser les idées sur plusieurs GPU.
import openaifrom ai_scientist.perform_review import load_paper, perform_reviewclient = openai.OpenAI()model = "gpt-4o-2024-05-13"# Charger du papier à partir d'un fichier PDF (texte brut)paper_txt = load_paper("report.pdf")# Obtenir le dictionnaire de révisionreview = perform_review(paper_txt,model,client,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,temperature=0.1, )# Inspecter les résultats de l'examenreview["Overall"] # Note globale (1-10)review["Décision"] # 'Accepter' ou 'Rejeter'review["Faiblesses"] # Liste des faiblesses (chaînes)
Pour exécuter une analyse par lots :
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
S’il y a un domaine d’étude que vous aimeriez que The AI Scientist explore, il est simple de créer vos propres modèles. En général, suivez la structure des modèles existants, qui consistent en :
experiment.py
— Il s'agit du script principal où se trouve le contenu principal. Il prend un argument --out_dir
, qui spécifie où il doit créer le dossier et enregistrer les informations pertinentes de l'exécution.
plot.py
— Ce script extrait les informations des dossiers run
et crée des tracés. Le code doit être clair et facile à modifier.
prompt.json
— Mettez ici des informations sur votre modèle.
seed_ideas.json
— Placez des exemples d'idées ici. Vous pouvez également essayer de générer des idées sans aucun exemple, puis en choisir une ou deux meilleures à mettre ici.
latex/template.tex
— Nous vous recommandons d'utiliser notre dossier LaTeX, mais assurez-vous de remplacer les citations préchargées par celles que vous attendez plus pertinentes.
La clé pour faire fonctionner les nouveaux modèles est de faire correspondre les noms de fichiers de base et les JSON de sortie au format existant ; tout le reste est libre de changer. Vous devez également vous assurer que le fichier template.tex
est mis à jour pour utiliser le style de citation/les tracés de base corrects pour votre modèle.
Nous apprécions les contributions de la communauté sous la forme de nouveaux modèles. Bien que ceux-ci ne soient pas gérés par nous, nous sommes ravis de mettre en valeur vos modèles auprès des autres. Ci-dessous, nous répertorions les modèles fournis par la communauté ainsi que les liens vers leurs demandes d'extraction (PR) :
Modélisation des maladies infectieuses ( seir
) - PR #137
Classification d'images avec MobileNetV3 ( mobilenetV3
) - PR #141
Esquisse RNN ( sketch_rnn
) - PR #143
Cette section est réservée aux contributions de la communauté. Veuillez soumettre une pull request pour ajouter votre modèle à la liste ! Veuillez décrire le modèle dans la description du PR et montrer également des exemples des articles générés.
Nous proposons trois modèles, qui utilisent fortement le code d'autres référentiels, crédités ci-dessous :
Le modèle NanoGPT utilise le code de NanoGPT et ce PR.
Le modèle de diffusion 2D utilise le code de tiny-diffusion, ema-pytorch et Datasaur.
Grokking Template utilise le code de Sea-Snell/grokking et danielmamay/grokking.
Nous tenons à remercier les développeurs des modèles et packages open source pour leurs contributions et pour avoir rendu leur travail disponible.
Si vous utilisez The AI Scientist dans votre recherche, veuillez le citer comme suit :
@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} }
Nous vous recommandons de lire d'abord notre article pour toute question que vous avez sur The AI Scientist.
Pourquoi est-ce qu'il me manque des fichiers lors de l'exécution de The AI Scientist ?
Assurez-vous d'avoir terminé toutes les étapes de configuration et de préparation avant le script d'expérience principal.
Pourquoi un PDF ou un avis n'a-t-il pas été généré ?
Le scientifique en IA termine une idée avec un taux de réussite qui dépend du modèle, du modèle de base et de la complexité de l'idée. Nous vous conseillons de vous référer à notre article principal. Les taux de réussite les plus élevés sont observés avec Claude Sonnet 3.5. Il est préférable d'effectuer les évaluations avec GPT-4o ; tous les autres modèles ont des problèmes de biais de positivité ou de non-conformité aux résultats requis.
Quel est le coût de chaque idée générée ?
Généralement moins de 15 $ par article avec Claude Sonnet 3.5. Nous recommandons DeepSeek Coder V2 pour une approche beaucoup plus rentable. Le classement Aider est un bon endroit pour rechercher de nouveaux modèles.
Comment modifier le format de conférence de base associé aux articles ?
Modifiez les fichiers template.tex
de base contenus dans chaque modèle.
Comment puis-je exécuter The AI Scientist pour différents domaines ?
Veuillez vous référer aux instructions pour les différents modèles. Dans cette itération actuelle, cela se limite aux idées qui peuvent être exprimées sous forme de code. Cependant, lever cette restriction représenterait un travail futur passionnant ! :)
Comment puis-je ajouter la prise en charge d'un nouveau modèle de fondation ?
Vous pouvez modifier ai_scientist/llm.py
pour ajouter la prise en charge d'un nouveau modèle de fondation. Nous vous déconseillons d'utiliser un modèle nettement inférieur au niveau GPT-4 pour The AI Scientist .
Pourquoi dois-je exécuter moi-même les analyses de référence ?
Ceux-ci apparaissent sous la forme run_0
et doivent être exécutés par machine sur laquelle vous exécutez The AI Scientist pour des comparaisons précises du temps d'exécution en raison des différences matérielles.
Que faire si j'ai des problèmes pour accéder à l'API Semantic Scholar ?
Nous utilisons l'API Semantic Scholar pour vérifier la nouveauté des idées et collecter des citations pour la rédaction de l'article. Vous pourrez peut-être ignorer ces phases si vous ne disposez pas de clé API ou si l'accès à l'API est lent.
Nous incluons une image Docker fournie par la communauté qui peut vous aider dans vos efforts de conteneurisation dans experimental/Dockerfile
.
Vous pouvez utiliser cette image comme ceci :
# Endpoint Scriptdocker run -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --modèle gpt-4o-2024-05-13 --expérience 2d_diffusion --num-idées 2
# Interactivedocker run -it -e OPENAI_API_KEY=$OPENAI_API_KEY --point d'entrée /bin/bash <AI_SCIENTIST_IMAGE>