[論文] | [部落格文章] | [磁碟機資料夾]
人工智慧的巨大挑戰之一是開發能夠進行科學研究和發現新知識的代理。雖然前沿模型已經被用來幫助人類科學家——例如,集思廣益或編寫程式碼——但它們仍然需要大量的人工監督或嚴重受限於特定任務。
我們很高興推出人工智慧科學家,這是第一個用於全自動科學發現的綜合系統,使大型語言模型 (LLM) 等基礎模型能夠獨立執行研究。
我們在這裡提供論文中的所有運行和數據,其中我們在每個模板上運行每個基本模型以獲得大約 50 個想法。我們強烈建議您閱讀克勞德的一些論文,以了解系統的優點和缺點。以下是人工智慧科學家生成的一些範例論文:
雙尺度擴散:低維度生成模型的自適應特徵平衡
多尺度網格雜訊適應:增強低維度資料的擴散模型
GAN 增強擴散:提高樣本品質和多樣性
DualDiff:透過雙專家去噪增強低維擴散模型中的模式捕獲
StyleFusion:字元級語言模型中的自適應多樣式生成
透過 Q-Learning 實現 Transformers 的自適應學習率
解鎖 Grokking:Transformer 模型中權重初始化策略的比較研究
Grokking 加速:變壓器泛化的分層學習速率
透過壓縮摸索:透過最小描述長度揭示突然的泛化
加速數學洞察:透過策略數據增強促進 Grokking
筆記:
警告!該程式碼庫將執行 LLM 編寫的程式碼。這種自主權存在各種風險和挑戰,包括使用潛在危險的軟體包、Web 存取以及潛在的進程生成。請自行決定使用。請確保適當地容器化和限制 Web 存取。
介紹
要求
安裝
支援的型號和 API 金鑰
設定模板
NanoGPT 模板
2D 擴散模板
摸索模板
運行 AI 科學家論文生成實驗
獲得法學碩士生成的論文評審
製作自己的模板
社區貢獻的模板
模板資源
引用人工智慧科學家的話
常見問題解答
貨櫃化
我們提供了論文中使用的三個模板,涵蓋以下領域: NanoGPT 、 2D Diffusion和Grokking 。這些模板使人工智慧科學家能夠在這些領域產生想法並進行實驗。我們接受社區貢獻的新模板,但請注意,它們不是由我們維護的。除了提供的三個模板之外的所有其他模板都是社區貢獻的。
此程式碼設計為使用 CUDA 和 PyTorch 在具有 NVIDIA GPU 的 Linux 上運行。透過遵循 PyTorch 指南,可以支援其他 GPU 架構。目前的模板在僅使用 CPU 的電腦上可能會花費非常長的時間。在其他作業系統上運行可能需要進行重大調整。
conda 創建-n ai_scientist python=3.11 conda activate ai_scientist# 安裝 pdflatexsudo apt-get install texlive-full# 安裝 PyPI 要求 pip install -r requests.txt
注意:安裝texlive-full
可能需要很長時間。安裝過程中您可能需要按住 Enter。
我們支援多種模型,包括開放權重模型和僅 API 模型。一般來說,我們建議僅使用高於原始 GPT-4 能力的前沿模型。若要查看受支援型號的完整列表,請參閱此處。
預設情況下,這使用OPENAI_API_KEY
環境變數。
預設情況下,這使用ANTHROPIC_API_KEY
環境變數。
對於 Amazon Bedrock 提供的 Claude 模型,請安裝以下附加軟體包:
pip install anthropic[基岩]
接下來,指定一組有效的 AWS 憑證和目標 AWS 區域:
設定環境變數: AWS_ACCESS_KEY_ID
、 AWS_SECRET_ACCESS_KEY
、 AWS_REGION_NAME
。
對於 Vertex AI Model Garden 提供的 Claude 模型,請安裝以下附加軟體包:
pip 安裝 google-cloud-aiplatform pip install anthropic[頂點]
接下來,為 Google Cloud 專案設定有效的身份驗證,例如透過提供區域和專案 ID:
export CLOUD_ML_REGION="REGION" # 對於模型花園 callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # 對於模型花園 callexport VERTEXAI_LOCATION="REGION" #"ider/LiteLLM callexport VERTEXAI_LOCATION="REGION" #"ider/LiteLLM callexport VERTEXAI_PROJ="REGION" #Nider/LiteLLM.
預設情況下,這使用DEEPSEEK_API_KEY
環境變數。
預設情況下,這使用OPENROUTER_API_KEY
環境變數。
如果您有的話,我們的程式碼還可以選擇使用 Semantic Scholar API 金鑰 ( S2_API_KEY
) 來獲得更高的吞吐量,但原則上沒有它也應該可以工作。如果您在使用 Semantic Scholar 時遇到問題,您可以跳過論文產生的文獻檢索和引用階段。
請務必提供用於運行的模型的密鑰,例如:
匯出 OPENAI_API_KEY="此處為您的金鑰"export S2_API_KEY="此處為您的金鑰"
本節提供如何設定我們論文中使用的三個範本中的每一個的說明。在執行 AI 科學家實驗之前,請確保您已完成您感興趣的模板的設定步驟。
描述:此範本研究基於變壓器的自回歸下一個標記預測任務。
設定步驟:
準備數據:
python 資料/enwik8/prepare.py 蟒蛇資料/shakespeare_char/prepare.py 蟒蛇資料/text8/prepare.py
建立基線運行(取決於機器):
# 設定 NanoGPT 基線運行# 注意:您必須先執行上面的準備腳本! python實驗.py --out_dir run_0 蟒蛇情節.py
描述:此模板研究提高低維度資料集上擴散生成模型的效能。
設定步驟:
安裝依賴項:
# 設定 2D Diffusiongit 複製 https://github.com/gregversteeg/NPEET.gitcd NPEET pip install .pip 安裝 scikit-learn
建立基線運行:
# 設定 2D 擴散基線 runcd templates/2d_diffusion python實驗.py --out_dir run_0 蟒蛇情節.py
描述:此範本研究有關深度神經網路中的泛化和學習速度的問題。
設定步驟:
安裝依賴項:
# 設定 Grokkingpip install einops
建立基線運行:
# 設定 Grokking 基線 runcd templates/grokking python實驗.py --out_dir run_0 蟒蛇情節.py
注意:在執行這些實驗之前,請確保完成上述設定步驟。
conda activate ai_scientist# 運行論文生成.python launch_scientist.py --model "gpt-4o-2024-05-13" --experiment nanoGPT_lite --num-ideas 2 python launch_scientist.py --模型「claude-3-5-sonnet-20241022」--實驗nanoGPT_lite --num-ideas 2
如果您有多個 GPU,請使用--parallel
選項在多個 GPU 上並行化想法。
import openaifrom ai_scientist.perform_review import load_paper, Perform_reviewclient = openai.OpenAI()model = "gpt-4o-2024-05-13"# 從 PDF 檔案載入論文(原文)paper_txt = load_paper("report.評論字典review = Perform_review(paper_txt,model,client,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,溫度=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 --溫度 0.1 --num_reviews_ensemble 5
如果您希望人工智慧科學家探索某個研究領域,則可以直接建立自己的模板。一般來說,遵循現有模板的結構,其中包括:
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
草圖 RNN ( sketch_rnn
) - PR #143
此部分保留用於社區貢獻。請提交拉取請求以將您的模板添加到清單中!請在 PR 描述中描述模板,並展示生成論文的範例。
我們提供了三個模板,它們大量使用其他儲存庫中的程式碼,如下所示:
NanoGPT 範本使用來自 NanoGPT 和此 PR 的程式碼。
2D 擴散模板使用來自tiny-diffusion、ema-pytorch 和Datasaur 的程式碼。
Grokking 範本使用 Sea-Snell/grokking 和 danielmamay/grokking 的程式碼。
我們要感謝開源模型和軟體包的開發人員的貢獻並提供他們的工作。
如果您在研究中使用《人工智慧科學家》 ,請按如下方式引用:
@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} }
如果您對《人工智慧科學家》有任何疑問,我們建議您先閱讀我們的論文。
為什麼我在運行《人工智慧科學家》時遺失文件?
確保您已完成主實驗腳本之前的所有設定和準備步驟。
為什麼沒有產生 PDF 或評論?
人工智慧科學家完成一個想法的成功率取決於模板、基礎模型和想法的複雜性。我們建議參考我們的主要論文。 Claude Sonnet 3.5 的成功率最高。最好使用 GPT-4o 進行審核;所有其他模型都存在積極偏差或未能符合所需輸出的問題。
每個想法的產生成本是多少?
Claude Sonnet 3.5 每篇論文通常低於 15 美元。我們推薦 DeepSeek Coder V2,這是一種更具成本效益的方法。 Aider 排行榜是尋找新模型的好地方。
如何更改與評論相關的基本會議格式?
更改每個模板中包含的基本template.tex
檔案。
如何針對不同的學科領域運行《人工智慧科學家》?
不同模板請參考說明。在當前的迭代中,這僅限於可以用程式碼表達的想法。然而,取消這項限制將代表著令人興奮的未來工作! :)
如何新增對新基礎模型的支援?
您可以修改ai_scientist/llm.py
以新增對新基礎模型的支援。我們不建議在The AI Scientist中使用任何明顯弱於 GPT-4 等級的模型。
為什麼我需要自己運行基線?
它們顯示為run_0
,並且應該在您執行AI Scientist 的每台電腦上運行,以便由於硬體差異而進行準確的運行時比較。
如果我在存取 Semantic Scholar API 時遇到問題怎麼辦?
我們使用 Semantic Scholar API 來檢查想法的新穎性並收集論文寫作的引用。如果您沒有 API 金鑰或 API 存取速度很慢,您也許可以跳過這些階段。
我們提供了一個社群貢獻的 Docker 映像,它可以幫助您在experimental/Dockerfile
中進行容器化工作。
您可以像這樣使用該圖像:
# 端點 Scriptdocker run -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --型號 gpt-4o-2024-05-13 --實驗2d_擴散 --num-ideas 2
# Interactivedocker run -it -e OPENAI_API_KEY=$OPENAI_API_KEY --入口點/bin/bash <AI_SCIENTIST_IMAGE>