[Kertas] | [Postingan Blog] | [Folder Drive]
Salah satu tantangan besar kecerdasan buatan adalah mengembangkan agen yang mampu melakukan penelitian ilmiah dan menemukan pengetahuan baru. Meskipun model frontier telah digunakan untuk membantu ilmuwan manusia—misalnya, untuk melakukan brainstorming ide atau menulis kode—model ini masih memerlukan pengawasan manual yang ekstensif atau sangat dibatasi pada tugas-tugas tertentu.
Kami sangat gembira memperkenalkan The AI Scientist , sistem komprehensif pertama untuk penemuan ilmiah yang sepenuhnya otomatis, yang memungkinkan Model Dasar seperti Model Bahasa Besar (LLM) untuk melakukan penelitian secara mandiri.
Kami menyediakan semua proses dan data dari makalah kami di sini, tempat kami menjalankan setiap model dasar pada setiap template untuk sekitar 50 ide. Kami sangat menyarankan untuk membaca beberapa makalah Claude untuk memahami kekuatan dan kelemahan sistem. Berikut beberapa contoh makalah yang dihasilkan oleh The AI Scientist :
Difusi Skala Ganda: Penyeimbangan Fitur Adaptif untuk Model Generatif Dimensi Rendah
Adaptasi Kebisingan Jaringan Multiskala: Meningkatkan Model Difusi Untuk Data Dimensi Rendah
Difusi yang Ditingkatkan GAN: Meningkatkan Kualitas dan Keanekaragaman Sampel
DualDiff: Meningkatkan Pengambilan Mode dalam Model Difusi Dimensi Rendah melalui Denoising Pakar Ganda
StyleFusion: Generasi Multi-gaya Adaptif dalam Model Bahasa Tingkat Karakter
Kecepatan Pembelajaran Adaptif untuk Transformers melalui Q-Learning
Membuka Kunci Grokking: Studi Perbandingan Strategi Inisialisasi Bobot dalam Model Transformer
Grokking Dipercepat: Kecepatan Pembelajaran Berdasarkan Lapisan untuk Generalisasi Transformator
Grokking Melalui Kompresi: Mengungkap Generalisasi Mendadak melalui Panjang Deskripsi Minimal
Mempercepat Wawasan Matematika: Meningkatkan Grokking Melalui Augmentasi Data Strategis
Catatan:
Peringatan! Basis kode ini akan mengeksekusi kode yang ditulis LLM. Ada berbagai risiko dan tantangan yang terkait dengan otonomi ini, termasuk penggunaan paket yang berpotensi berbahaya, akses web, dan potensi munculnya proses. Gunakan sesuai kebijaksanaan Anda sendiri. Harap pastikan untuk memasukkan ke dalam container dan membatasi akses web dengan tepat.
Perkenalan
Persyaratan
Instalasi
Model dan Kunci API yang Didukung
Menyiapkan Template
Templat NanoGPT
Templat Difusi 2D
Templat Grokking
Jalankan Eksperimen Pembuatan Kertas Ilmuwan AI
Mendapatkan Tinjauan Makalah yang Dihasilkan LLM
Membuat Templat Anda Sendiri
Templat Kontribusi Komunitas
Sumber Daya Templat
Mengutip Ilmuwan AI
Pertanyaan yang Sering Diajukan
Kontainerisasi
Kami menyediakan tiga templat, yang digunakan dalam makalah kami, yang mencakup domain berikut: NanoGPT , Difusi 2D , dan Grokking . Templat ini memungkinkan Ilmuwan AI menghasilkan ide dan melakukan eksperimen di bidang ini. Kami menerima kontribusi templat baru dari komunitas, namun perlu diingat bahwa templat tersebut tidak dikelola oleh kami. Semua template lain di luar ketiga yang disediakan adalah kontribusi komunitas.
Kode ini dirancang untuk berjalan di Linux dengan GPU NVIDIA menggunakan CUDA dan PyTorch. Dukungan untuk arsitektur GPU lainnya dapat dilakukan dengan mengikuti pedoman PyTorch. Templat saat ini kemungkinan akan memakan waktu yang sangat lama pada mesin yang hanya menggunakan CPU. Berjalan di sistem operasi lain mungkin memerlukan penyesuaian yang signifikan.
conda buat -n ai_scientist python=3.11 conda aktifkan ai_scientist# Instal pdflatexsudo apt-get install texlive-full# Instal persyaratan PyPIpip install -r persyaratan.txt
Catatan: Menginstal texlive-full
bisa memakan waktu lama. Anda mungkin perlu menahan Enter selama instalasi.
Kami mendukung beragam model, termasuk model open-weight dan model API-only. Secara umum, kami merekomendasikan hanya menggunakan model frontier di atas kemampuan GPT-4 asli. Untuk melihat daftar lengkap model yang didukung, lihat di sini.
Secara default, ini menggunakan variabel lingkungan OPENAI_API_KEY
.
Secara default, ini menggunakan variabel lingkungan ANTHROPIC_API_KEY
.
Untuk model Claude yang disediakan oleh Amazon Bedrock, silakan instal paket tambahan berikut:
pip install antropik[batuan dasar]
Selanjutnya, tentukan satu set Kredensial AWS yang valid dan Wilayah AWS target:
Tetapkan variabel lingkungan: AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION_NAME
.
Untuk model Claude yang disediakan oleh Vertex AI Model Garden, silakan instal paket tambahan berikut:
pip instal google-cloud-aiplatform pip install antropik[vertex]
Selanjutnya, siapkan autentikasi yang valid untuk project Google Cloud, misalnya dengan memberikan wilayah dan ID project:
ekspor CLOUD_ML_REGION="REGION" # untuk Model Garden callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # untuk Model Garden callexport VERTEXAI_LOCATION="REGION" # untuk panggilan Aider/LiteLLM VERTEXAI_PROJECT="PROJECT_ID" # untuk panggilan Aider/LiteLLM
Secara default, ini menggunakan variabel lingkungan DEEPSEEK_API_KEY
.
Secara default, ini menggunakan variabel lingkungan OPENROUTER_API_KEY
.
Kode kami juga dapat secara opsional menggunakan Kunci API Semantic Scholar ( S2_API_KEY
) untuk throughput yang lebih tinggi jika Anda memilikinya, meskipun pada prinsipnya kode tersebut dapat berfungsi tanpa kunci tersebut. Jika Anda memiliki masalah dengan Semantic Scholar, Anda dapat melewati fase pencarian literatur dan kutipan pada pembuatan makalah.
Pastikan untuk memberikan kunci untuk model yang digunakan untuk proses Anda, misalnya:
ekspor OPENAI_API_KEY="KUNCI ANDA DI SINI"ekspor S2_API_KEY="KUNCI ANDA DI SINI"
Bagian ini memberikan instruksi untuk menyiapkan masing-masing dari tiga templat yang digunakan dalam makalah kami. Sebelum menjalankan eksperimen The AI Scientist, pastikan Anda telah menyelesaikan langkah-langkah penyiapan untuk template yang Anda minati.
Deskripsi: Templat ini menyelidiki tugas prediksi token berikutnya autoregresif berbasis transformator.
Langkah-langkah Pengaturan:
Siapkan datanya:
data python/enwik8/prepare.py data python/shakespeare_char/prepare.py data python/text8/prepare.py
Membuat proses dasar (bergantung pada mesin):
# Siapkan proses dasar NanoGPT# CATATAN: ANDA HARUS MENJALANKAN SKRIP PERSIAPAN DI ATAS terlebih dahulu!cd templates/nanoGPT python eksperimen.py --out_dir run_0 python plot.py
Deskripsi: Templat ini mempelajari peningkatan kinerja model generatif difusi pada kumpulan data berdimensi rendah.
Langkah-langkah Pengaturan:
Instal dependensi:
# Siapkan klon Diffusiongit 2D https://github.com/gregversteeg/NPEET.gitcd NPEET pip instal .pip instal scikit-belajar
Buat proses dasar:
# Siapkan templat runcd dasar Difusi 2D/2d_diffusion python eksperimen.py --out_dir run_0 python plot.py
Deskripsi: Templat ini menyelidiki pertanyaan tentang generalisasi dan kecepatan pembelajaran di jaringan saraf dalam.
Langkah-langkah Pengaturan:
Instal dependensi:
# Siapkan instalasi Grokkingpip einops
Buat proses dasar:
# Menyiapkan template runcd dasar Grokking/grokking python eksperimen.py --out_dir run_0 python plot.py
Catatan: Harap pastikan langkah penyiapan di atas telah diselesaikan sebelum menjalankan eksperimen ini.
conda activation ai_scientist# Jalankan pembuatan kertas.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" --eksperimen nanoGPT_lite --num-ideas 2
Jika Anda memiliki lebih dari satu GPU, gunakan opsi --parallel
untuk memparalelkan ide di beberapa GPU.
import openaifrom ai_scientist.perform_review import load_paper, perform_reviewclient = openai.OpenAI()model = "gpt-4o-2024-05-13"# Muat kertas dari file PDF (teks mentah)paper_txt = load_paper("report.pdf")# Dapatkan kamus ulasanreview = perform_review(paper_txt,model,client,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,temperature=0,1, )# Periksa hasil reviewreview["Keseluruhan"] # Skor keseluruhan (1-10)review["Keputusan"] # 'Terima' atau 'Tolak'review["Kelemahan"] # Daftar kelemahan (string)
Untuk menjalankan analisis batch:
cd review_iclr_bench python iclr_analisis.py --num_reviews 500 --batch_size 100 --num_fs_examples 1 --num_reflections 5 --temperature 0,1 --num_reviews_ensemble 5
Jika ada bidang studi yang ingin dijelajahi oleh The AI Scientist , Anda dapat dengan mudah membuat templat Anda sendiri. Secara umum mengikuti struktur template yang ada, yang terdiri dari:
experiment.py
— Ini adalah skrip utama tempat konten inti berada. Dibutuhkan argumen --out_dir
, yang menentukan di mana ia harus membuat folder dan menyimpan informasi relevan dari proses.
plot.py
— Skrip ini mengambil informasi dari folder run
dan membuat plot. Kode harus jelas dan mudah diedit.
prompt.json
— Masukkan informasi tentang template Anda di sini.
seed_ideas.json
— Tempatkan contoh ide di sini. Anda juga dapat mencoba menghasilkan ide tanpa contoh apa pun, lalu memilih satu atau dua ide terbaik untuk disajikan di sini.
latex/template.tex
— Kami merekomendasikan penggunaan folder LaTeX kami tetapi pastikan untuk mengganti kutipan yang dimuat sebelumnya dengan kutipan yang Anda anggap lebih relevan.
Kunci agar templat baru berfungsi adalah mencocokkan nama file dasar dan output JSON dengan format yang ada; segala sesuatu yang lain bebas untuk diubah. Anda juga harus memastikan bahwa file template.tex
diperbarui untuk menggunakan gaya kutipan/plot dasar yang benar untuk template Anda.
Kami menyambut kontribusi komunitas dalam bentuk template baru. Meskipun ini tidak kami kelola, kami dengan senang hati menyoroti template Anda kepada orang lain. Di bawah ini, kami mencantumkan templat kontribusi komunitas beserta tautan ke permintaan penarikan (PR):
Pemodelan Penyakit Menular ( seir
) - PR #137
Klasifikasi Gambar dengan MobileNetV3 ( mobilenetV3
) - PR #141
Sketsa RNN ( sketch_rnn
) - PR #143
Bagian ini disediakan untuk kontribusi komunitas. Silakan kirimkan permintaan tarik untuk menambahkan template Anda ke daftar! Harap jelaskan template dalam deskripsi PR, dan tunjukkan juga contoh makalah yang dihasilkan.
Kami menyediakan tiga templat, yang banyak menggunakan kode dari repositori lain, dengan kredit di bawah ini:
Template NanoGPT menggunakan kode dari NanoGPT dan PR ini.
Templat Difusi 2D menggunakan kode dari difusi kecil, ema-pytorch, dan Datasaur.
Templat Grokking menggunakan kode dari Sea-Snell/grokking dan danielmamay/grokking.
Kami ingin mengucapkan terima kasih kepada para pengembang model dan paket sumber terbuka atas kontribusi mereka dan membuat karya mereka tersedia.
Jika Anda menggunakan The AI Scientist dalam penelitian Anda, harap kutip sebagai berikut:
@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} }
Kami merekomendasikan untuk membaca makalah kami terlebih dahulu jika ada pertanyaan yang Anda miliki tentang The AI Scientist.
Mengapa saya kehilangan file saat menjalankan The AI Scientist?
Pastikan Anda telah menyelesaikan semua langkah penyiapan dan persiapan sebelum skrip eksperimen utama.
Mengapa PDF atau ulasan belum dibuat?
Ilmuwan AI menyelesaikan sebuah ide dengan tingkat keberhasilan yang bergantung pada template, model dasar, dan kompleksitas ide. Kami menyarankan untuk merujuk pada makalah utama kami. Tingkat keberhasilan tertinggi diamati dengan Claude Sonnet 3.5. Peninjauan paling baik dilakukan dengan GPT-4o; semua model lainnya memiliki masalah dengan bias positif atau kegagalan untuk menyesuaikan dengan keluaran yang disyaratkan.
Berapa biaya setiap ide yang dihasilkan?
Biasanya kurang dari $15 per kertas dengan Claude Sonnet 3.5. Kami merekomendasikan DeepSeek Coder V2 untuk pendekatan yang jauh lebih hemat biaya. Tempat yang baik untuk mencari model baru adalah papan peringkat Aider.
Bagaimana cara mengubah format konferensi dasar yang terkait dengan artikel?
Ubah file template.tex
dasar yang terdapat dalam setiap template.
Bagaimana cara menjalankan The AI Scientist untuk bidang subjek yang berbeda?
Silakan merujuk ke instruksi untuk templat yang berbeda. Dalam iterasi saat ini, hal ini dibatasi pada ide-ide yang dapat diungkapkan dalam kode. Namun, mencabut pembatasan ini akan mewakili pekerjaan masa depan yang menarik! :)
Bagaimana cara menambahkan dukungan untuk model pondasi baru?
Anda dapat memodifikasi ai_scientist/llm.py
untuk menambahkan dukungan pada model fondasi baru. Kami tidak menyarankan penggunaan model apa pun yang jauh lebih lemah daripada level GPT-4 untuk The AI Scientist .
Mengapa saya perlu menjalankan proses dasar sendiri?
Ini muncul sebagai run_0
dan harus dijalankan per mesin tempat Anda menjalankan AI Scientist untuk perbandingan waktu proses yang akurat karena perbedaan perangkat keras.
Bagaimana jika saya mengalami masalah saat mengakses API Semantic Scholar?
Kami menggunakan API Semantic Scholar untuk memeriksa ide-ide baru dan mengumpulkan kutipan untuk penulisan makalah. Anda mungkin dapat melewati fase ini jika Anda tidak memiliki kunci API atau API lambat untuk diakses.
Kami menyertakan image Docker kontribusi komunitas yang dapat membantu upaya containerisasi Anda di experimental/Dockerfile
.
Anda dapat menggunakan gambar ini seperti ini:
# Endpoint Scriptdocker dijalankan -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --model gpt-4o-2024-05-13 --eksperimen 2d_difusi --angka-ide 2
# Interactivedocker dijalankan -it -e OPENAI_API_KEY=$OPENAI_API_KEY --titik masuk /bin/bash <AI_SCIENTIST_IMAGE>