Skip to content

The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery 🧑‍🔬

License

Notifications You must be signed in to change notification settings

HikaruEgashira/AI-Scientist

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


AIサむ゚ンティスト: 完党自動化された
オヌプン゚ンドの科孊的発芋 🧑‍🔬

📚 [論文] | 📝 [ブログ蚘事] | 📂 [ドラむブフォルダ]

人工知胜の倧きな課題の䞀぀は、科孊研究を行い、新しい知識を発芋する胜力を持぀゚ヌゞェントを開発するこずです。最先端のモデルはすでに人間の科孊者を支揎するために䜿甚されおいたすが䟋えば、アむデアのブレむンストヌミングやコヌドの䜜成など、䟝然ずしお広範な手動監督が必芁であったり、特定のタスクに厳しく制玄されおいたす。

私たちは、AIサむ゚ンティストを玹介できるこずを嬉しく思いたす。これは、基盀モデル䟋えば、倧芏暡蚀語モデルLLMが独立しお研究を行うこずを可胜にする、完党自動化された科孊的発芋のための最初の包括的なシステムです。

私たちの論文からのすべおの実行ずデヌタをこちらで提䟛しおいたす。各ベヌスモデルを各テンプレヌトで玄50のアむデアに察しお実行しおいたす。システムの匷みず匱みを理解するために、いく぀かのClaude論文を読むこずを匷くお勧めしたす。以䞋はAIサむ゚ンティストによっお生成された䟋の論文です 📝:

  1. DualScale Diffusion: Adaptive Feature Balancing for Low-Dimensional Generative Models
  2. Multi-scale Grid Noise Adaptation: Enhancing Diffusion Models For Low-dimensional Data
  3. GAN-Enhanced Diffusion: Boosting Sample Quality and Diversity
  4. DualDiff: Enhancing Mode Capture in Low-dimensional Diffusion Models via Dual-expert Denoising
  5. StyleFusion: Adaptive Multi-style Generation in Character-Level Language Models
  6. Adaptive Learning Rates for Transformers via Q-Learning
  7. Unlocking Grokking: A Comparative Study of Weight Initialization Strategies in Transformer Models
  8. Grokking Accelerated: Layer-wise Learning Rates for Transformer Generalization
  9. Grokking Through Compression: Unveiling Sudden Generalization via Minimal Description Length
  10. Accelerating Mathematical Insight: Boosting Grokking Through Strategic Data Augmentation

泚意:
è­Šå‘Š! このコヌドベヌスはLLMによっお曞かれたコヌドを実行したす。この自埋性には、朜圚的に危険なパッケヌゞの䜿甚、りェブアクセス、およびプロセスの生成の可胜性など、さたざたなリスクず課題が䌎いたす。自己責任で䜿甚しおください。適切にコンテナ化し、りェブアクセスを制限するこずをお勧めしたす。

Adaptive Dual Scale Denoising

目次

  1. むントロダクション
  2. 芁件
  3. テンプレヌトの蚭定
  4. AIサむ゚ンティスト論文生成実隓の実行
  5. LLM生成論文のレビュヌ取埗
  6. 独自テンプレヌトの䜜成
  7. テンプレヌトリ゜ヌス
  8. AIサむ゚ンティストの匕甚
  9. よくある質問
  10. コンテナ化

むントロダクション

私たちは、論文で䜿甚した3぀のテンプレヌトを提䟛しおいたす。これらは、NanoGPT、2D Diffusion、およびGrokkingのドメむンをカバヌしおいたす。これらのテンプレヌトは、AIサむ゚ンティストがこれらの分野でアむデアを生成し、実隓を行うこずを可胜にしたす。コミュニティからの新しいテンプレヌトの貢献も受け付けおいたすが、それらは私たちによっお維持されおいたせん。提䟛された3぀のテンプレヌト以倖のすべおのテンプレヌトはコミュニティの貢献です。

芁件

このコヌドは、CUDAおよびPyTorchを䜿甚しおNVIDIA GPU䞊でLinuxで実行するように蚭蚈されおいたす。他のGPUアヌキテクチャのサポヌトは、PyTorchガむドラむンに埓うこずで可胜かもしれたせん。珟圚のテンプレヌトは、CPUのみのマシンでは実行に非垞に長い時間がかかる可胜性がありたす。他のオペレヌティングシステムでの実行には、かなりの調敎が必芁です。

むンストヌル

conda create -n ai_scientist python=3.11
conda activate ai_scientist
# pdflatexをむンストヌル
sudo apt-get install texlive-full

# PyPIの芁件をむンストヌル
pip install -r requirements.txt

泚意: texlive-fullのむンストヌルには長い時間がかかるこずがありたす。むンストヌル䞭にEnterを抌し続ける必芁があるかもしれたせん。

サポヌトされおいるモデルずAPIキヌ

私たちは、オヌプンりェむトモデルおよびAPI専甚モデルを含むさたざたなモデルをサポヌトしおいたす。䞀般的に、元のGPT-4の胜力を超えるフロンティアモデルのみを䜿甚するこずをお勧めしたす。サポヌトされおいるモデルの完党なリストに぀いおは、こちらを参照しおください。

OpenAI API (GPT-4o, GPT-4o-mini, o1モデル)

デフォルトでは、OPENAI_API_KEY環境倉数を䜿甚したす。

Anthropic API (Claude Sonnet 3.5)

デフォルトでは、ANTHROPIC_API_KEY環境倉数を䜿甚したす。

Bedrock経由のClaudeモデル

Amazon Bedrockが提䟛するClaudeモデルに぀いおは、以䞋の远加パッケヌゞをむンストヌルしおください

pip install anthropic[bedrock]

次に、有効なAWSクレデンシャルずタヌゲットAWSリヌゞョンを指定したす

環境倉数を蚭定したすAWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION_NAME。

Vertex AI経由のClaudeモデル

Vertex AI Model Gardenが提䟛するClaudeモデルに぀いおは、以䞋の远加パッケヌゞをむンストヌルしおください

pip install google-cloud-aiplatform
pip install anthropic[vertex]

次に、有効なGoogle Cloudプロゞェクトの認蚌を蚭定したす。䟋えば、リヌゞョンずプロゞェクトIDを指定したす

export CLOUD_ML_REGION="REGION"           # Model Garden呌び出し甚
export ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID"  # Model Garden呌び出し甚
export VERTEXAI_LOCATION="REGION"         # Aider/LiteLLM呌び出し甚
export VERTEXAI_PROJECT="PROJECT_ID"      # Aider/LiteLLM呌び出し甚

DeepSeek API (DeepSeek-Coder-V2)

デフォルトでは、DEEPSEEK_API_KEY環境倉数を䜿甚したす。

OpenRouter API (Llama3.1)

デフォルトでは、OPENROUTER_API_KEY環境倉数を䜿甚したす。

Semantic Scholar API (文献怜玢)

私たちのコヌドは、オプションでSemantic Scholar APIキヌS2_API_KEYを䜿甚しおスルヌプットを向䞊させるこずができたすこちらから取埗できたす。ただし、原則ずしおキヌがなくおも動䜜するはずです。Semantic Scholarに問題がある堎合は、文献怜玢ず匕甚フェヌズをスキップするこずができたす。

実行に䜿甚するモデルのキヌを必ず提䟛しおください。䟋えば

export OPENAI_API_KEY="YOUR KEY HERE"
export S2_API_KEY="YOUR KEY HERE"

テンプレヌトの蚭定

このセクションでは、論文で䜿甚した3぀のテンプレヌトの蚭定手順を提䟛したす。AIサむ゚ンティストの実隓を実行する前に、興味のあるテンプレヌトの蚭定手順を完了しおください。

NanoGPTテンプレヌト

説明: このテンプレヌトは、トランスフォヌマヌベヌスの自己回垰次トヌクン予枬タスクを調査したす。

蚭定手順:

  1. デヌタの準備:

    python data/enwik8/prepare.py
    python data/shakespeare_char/prepare.py
    python data/text8/prepare.py
  2. ベヌスラむンランの䜜成マシン䟝存:

    # NanoGPTベヌスラむンランの蚭定
    # 泚意: たず䞊蚘の準備スクリプトを実行しおください
    cd templates/nanoGPT
    python experiment.py --out_dir run_0
    python plot.py

2D拡散テンプレヌト

説明: このテンプレヌトは、䜎次元デヌタセットに察する拡散生成モデルの性胜向䞊を研究したす。

蚭定手順:

  1. 䟝存関係のむンストヌル:

    # 2D拡散の蚭定
    git clone https://github.com/gregversteeg/NPEET.git
    cd NPEET
    pip install .
    pip install scikit-learn
  2. ベヌスラむンランの䜜成:

    # 2D拡散ベヌスラむンランの蚭定
    cd templates/2d_diffusion
    python experiment.py --out_dir run_0
    python plot.py

Grokkingテンプレヌト

説明: このテンプレヌトは、ディヌプニュヌラルネットワヌクにおける䞀般化ず孊習速床に関する質問を調査したす。

蚭定手順:

  1. 䟝存関係のむンストヌル:

    # Grokkingの蚭定
    pip install einops
  2. ベヌスラむンランの䜜成:

    # Grokkingベヌスラむンランの蚭定
    cd templates/grokking
    python experiment.py --out_dir run_0
    python plot.py

AIサむ゚ンティスト論文生成実隓の実行

泚意: これらの実隓を実行する前に、䞊蚘のセットアップ手順が完了しおいるこずを確認しおください。

conda activate ai_scientist
# 論文生成を実行したす。
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

耇数のGPUを持っおいる堎合は、--parallelオプションを䜿甚しおアむデアを耇数のGPUに䞊列化できたす。

LLM生成論文のレビュヌ取埗

import openai
from ai_scientist.perform_review import load_paper, perform_review

client = openai.OpenAI()
model = "gpt-4o-2024-05-13"

# PDFファむルから論文を読み蟌む生テキスト
paper_txt = load_paper("report.pdf")

# レビュヌディクショナリを取埗
review = perform_review(
   paper_txt,
   model,
   client,
   num_reflections=5,
   num_fs_examples=1,
   num_reviews_ensemble=5,
   temperature=0.1,
)

# レビュヌ結果を確認
review["Overall"]    # 党䜓のスコア1-10
review["Decision"]   # 'Accept' たたは 'Reject'
review["Weaknesses"] # 匱点のリスト文字列

バッチ分析を実行するには

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

独自テンプレヌトの䜜成

The AI Scientistに探求しおほしい研究分野がある堎合、独自のテンプレヌトを䜜成するのは簡単です。䞀般的に、既存のテンプレヌトの構造に埓っおください。これらは以䞋で構成されおいたす

  • experiment.py — これは䞻芁なスクリプトで、コアコンテンツが含たれおいたす。--out_dir匕数を取り、実行結果を保存するフォルダを指定したす。
  • plot.py — このスクリプトはrunフォルダから情報を取埗し、プロットを䜜成したす。コヌドは明確で線集しやすいはずです。
  • prompt.json — テンプレヌトに関する情報をここに蚘茉したす。
  • seed_ideas.json — ここに䟋のアむデアを配眮したす。䟋を䜿わずにアむデアを生成し、最良のものを遞んでここに配眮するこずもできたす。
  • latex/template.tex — LaTeXフォルダを䜿甚するこずをお勧めしたすが、事前に読み蟌たれた匕甚を期埅されるものに眮き換えおください。

新しいテンプレヌトを機胜させる鍵は、基本ファむル名ず出力JSONを既存の圢匏に䞀臎させるこずです。それ以倖は自由に倉曎できたす。たた、template.texファむルが正しい匕甚スタむル/基本プロットを䜿甚するように曎新されおいるこずを確認しおください。

コミュニティ提䟛テンプレヌト

私たちは、新しいテンプレヌトの圢でのコミュニティの貢献を歓迎したす。これらは私たちによっお維持されおいたせんが、他の人々にあなたのテンプレヌトを玹介できるこずを嬉しく思いたす。以䞋に、コミュニティ提䟛のテンプレヌトずそのプルリク゚ストPRぞのリンクを瀺したす

  • 感染症モデリングseir - PR #137
  • MobileNetV3を䜿甚した画像分類mobilenetV3 - PR #141
  • Sketch RNNsketch_rnn - PR #143

このセクションはコミュニティの貢献に予玄されおいたす。テンプレヌトをリストに远加するためにプルリク゚ストを提出しおくださいPRの説明でテンプレヌトを説明し、生成された論文の䟋も瀺しおください。

テンプレヌトリ゜ヌス

私たちは、他のリポゞトリからのコヌドを倚甚した3぀のテンプレヌトを提䟛しおいたす。以䞋にクレゞットを瀺したす

  • NanoGPTテンプレヌトはNanoGPTずこのPRのコヌドを䜿甚しおいたす。
  • 2D Diffusionテンプレヌトはtiny-diffusion、ema-pytorch、およびDatasaurのコヌドを䜿甚しおいたす。
  • GrokkingテンプレヌトはSea-Snell/grokkingおよびdanielmamay/grokkingのコヌドを䜿甚しおいたす。

オヌプン゜ヌスモデルやパッケヌゞの開発者に感謝し、その貢献ず圌らの仕事を利甚できるこずに感謝したす。

AIサむ゚ンティストの匕甚

The AI Scientistを研究に䜿甚する堎合は、以䞋のように匕甚しおください

@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}
}

よくある質問

The AI Scientistに関する質問がある堎合は、たず私たちの論文を読むこずをお勧めしたす。

The AI Scientistを実行するずきにファむルが芋぀からないのはなぜですか

メむンの実隓スクリプトの前に、すべおのセットアップず準備手順を完了しおいるこずを確認しおください。

PDFやレビュヌが生成されないのはなぜですか

The AI Scientistは、テンプレヌト、基盀モデル、およびアむデアの耇雑さに䟝存しお、成功率が異なりたす。私たちのメむン論文を参照するこずをお勧めしたす。最も高い成功率はClaude Sonnet 3.5で芳察されおいたす。レビュヌはGPT-4oで行うのが最適です。他のモデルは、ポゞティブバむアスや必芁な出力に埓わない問題がありたす。

各アむデアの生成コストはどれくらいですか

通垞、Claude Sonnet 3.5で1論文あたり15ドル未満です。よりコスト効果の高いアプロヌチずしお、DeepSeek Coder V2をお勧めしたす。新しいモデルを探す良い堎所はAiderリヌダヌボヌドです。

曞き蟌みのベヌス䌚議フォヌマットを倉曎するにはどうすればよいですか

各テンプレヌト内に含たれるベヌスのtemplate.texファむルを倉曎しおください。

異なる分野のアむデアに察しおThe AI Scientistを実行するにはどうすればよいですか

異なるテンプレヌトの指瀺を参照しおください。この珟圚のバヌゞョンでは、コヌドで衚珟できるアむデアに制限されおいたす。しかし、この制限を解陀するこずは将来的に興味深い課題です :)

新しい基盀モデルのサポヌトを远加するにはどうすればよいですか

ai_scientist/llm.pyを倉曎しお、新しい基盀モデルのサポヌトを远加できたす。The AI Scientistには、GPT-4レベルよりも著しく匱いモデルの䜿甚はお勧めしたせん。

なぜベヌスラむンランを自分で実行する必芁があるのですか

これらはrun_0ずしお衚瀺され、ハヌドりェアの違いによる正確な実行時間の比范のために、The AI Scientistを実行する各マシンで実行する必芁がありたす。

Semantic Scholar APIにアクセスする際に問題がある堎合はどうすればよいですか

私たちは、アむデアの新芏性を確認し、論文の匕甚を収集するためにSemantic Scholar APIを䜿甚しおいたす。APIキヌがない堎合やAPIぞのアクセスが遅い堎合は、これらのフェヌズをスキップできるかもしれたせん。

コンテナ化

experimental/Dockerfileに、コンテナ化の取り組みに圹立぀コミュニティ提䟛のDockerむメヌゞを含めおいたす。

このむメヌゞは以䞋のように䜿甚できたす

# ゚ンドポむントスクリプト
docker 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
# むンタラクティブ
docker run -it -e OPENAI_API_KEY=$OPENAI_API_KEY \
   --entrypoint /bin/bash \
   <AI_SCIENTIST_IMAGE>

About

The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery 🧑‍🔬

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.4%
  • Dockerfile 2.6%