[Бумага] | [Сообщение в блоге] | [Папка на диске]
Одной из важнейших задач искусственного интеллекта является разработка агентов, способных проводить научные исследования и открывать новые знания. Хотя передовые модели уже использовались в помощь ученым, например, для мозгового штурма идей или написания кода, они по-прежнему требуют тщательного ручного контроля или сильно ограничены конкретными задачами.
Мы рады представить The AI Scientist , первую комплексную систему для полностью автоматических научных открытий, позволяющую базовым моделям, таким как модели большого языка (LLM), выполнять исследования независимо.
Здесь мы предоставляем все прогоны и данные из нашей статьи, где мы запускаем каждую базовую модель на каждом шаблоне примерно для 50 идей. Мы настоятельно рекомендуем прочитать некоторые статьи Клода, чтобы получить представление о сильных и слабых сторонах системы. Вот несколько примеров статей, созданных The AI Scientist :
DualScale Diffusion: адаптивная балансировка функций для низкоразмерных генеративных моделей
Многомасштабная адаптация к шуму сетки: улучшение моделей диффузии для низкоразмерных данных
GAN-Enhanced Diffusion: повышение качества и разнообразия образцов
DualDiff: улучшение захвата режима в низкоразмерных диффузионных моделях с помощью двойного экспертного шумоподавления
StyleFusion: адаптивная генерация нескольких стилей в языковых моделях на уровне символов
Адаптивная скорость обучения для трансформаторов с помощью Q-Learning
Разблокировка грокинга: сравнительное исследование стратегий инициализации веса в моделях трансформаторов
Grokking Accelerated: скорость послойного обучения для обобщения трансформатора
Прорыв через сжатие: обнаружение внезапного обобщения посредством минимальной длины описания
Ускорение математического понимания: усиление грокинга за счет стратегического увеличения данных
Примечание:
Осторожность! Эта кодовая база будет выполнять код, написанный LLM. С этой автономией связаны различные риски и проблемы, включая использование потенциально опасных пакетов, веб-доступ и потенциальное создание процессов. Используйте по своему усмотрению. Пожалуйста, убедитесь, что вы правильно контейнеризировали и ограничили веб-доступ.
Введение
Требования
Установка
Поддерживаемые модели и ключи API
Настройка шаблонов
Шаблон NanoGPT
Шаблон 2D-диффузии
Шаблон Гроккинга
Проведите эксперименты по созданию статей AI Scientist
Получение обзора статьи, созданной LLM
Создание собственного шаблона
Шаблоны, предоставленные сообществом
Ресурсы шаблонов
Ссылаясь на учёного в области искусственного интеллекта
Часто задаваемые вопросы
Контейнеризация
Мы предоставляем три шаблона, которые использовались в нашей статье и охватывают следующие области: NanoGPT , 2D Diffusion и Grokking . Эти шаблоны позволяют The AI Scientist генерировать идеи и проводить эксперименты в этих областях. Мы принимаем новые шаблоны от сообщества, но обратите внимание, что мы не поддерживаем их. Все остальные шаблоны, кроме трех предоставленных, являются вкладом сообщества.
Этот код предназначен для работы в Linux с графическими процессорами NVIDIA с использованием CUDA и PyTorch. Поддержка других архитектур графических процессоров может быть возможна, если следовать рекомендациям PyTorch. Текущие шаблоны, вероятно, потребуют невероятно много времени на машинах только с процессором. Работа в других операционных системах может потребовать значительных корректировок.
conda create -n ai_scientist python=3.11 conda active ai_scientist# Установить pdflatexsudo apt-get install texlive-full# Установить требования PyPIpip install -r требования.txt
Примечание. Установка texlive-full
может занять много времени. Возможно, вам придется удерживать Enter во время установки.
Мы поддерживаем широкий спектр моделей, включая модели с открытым весом и модели только с API. В общем, мы рекомендуем использовать только передовые модели, возможности которых превышают возможности оригинального GPT-4. Полный список поддерживаемых моделей можно посмотреть здесь.
По умолчанию используется переменная среды OPENAI_API_KEY
.
По умолчанию используется переменная среды ANTHROPIC_API_KEY
.
Для моделей Claude, предоставленных Amazon Bedrock, установите следующие дополнительные пакеты:
pip install антропный [основа]
Затем укажите набор действительных учетных данных AWS и целевой регион AWS:
Установите переменные среды: AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION_NAME
.
Для моделей Claude, предоставленных Vertex AI Model Garden, установите следующие дополнительные пакеты:
pip установить Google-cloud-aiplatform pip install антропный [вершина]
Затем настройте действительную аутентификацию для проекта Google Cloud, например, указав регион и идентификатор проекта:
экспорт CLOUD_ML_REGION="REGION" # для Model Garden callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # для Model Garden callexport VERTEXAI_LOCATION="REGION" # для Aider/LiteLLM callexport VERTEXAI_PROJECT="PROJECT_ID" # для вызова Aider/LiteLLM
По умолчанию используется переменная среды DEEPSEEK_API_KEY
.
По умолчанию используется переменная среды OPENROUTER_API_KEY
.
Наш код также может дополнительно использовать API-ключ Semantic Scholar ( S2_API_KEY
) для более высокой пропускной способности, если он у вас есть, хотя в принципе он должен работать и без него. Если у вас возникли проблемы с Semantic Scholar, вы можете пропустить этапы поиска литературы и цитирования при создании статьи.
Обязательно укажите ключ модели, используемой для ваших прогонов, например:
экспорт OPENAI_API_KEY="ВАШ КЛЮЧ ЗДЕСЬ"export S2_API_KEY="ВАШ КЛЮЧ ЗДЕСЬ"
В этом разделе представлены инструкции по настройке каждого из трех шаблонов, используемых в нашей статье. Прежде чем запускать эксперименты The AI Scientist, убедитесь, что вы выполнили шаги по настройке интересующих вас шаблонов.
Описание. Этот шаблон исследует задачи авторегрессионного прогнозирования следующего токена на основе преобразователя.
Шаги установки:
Подготовьте данные:
данные Python/enwik8/prepare.py данные Python/shakespeare_char/prepare.py данные Python/text8/prepare.py
Создание базовых прогонов (зависит от машины):
# Настройте базовый запуск NanoGPT# ПРИМЕЧАНИЕ. СНАЧАЛА ВЫ ДОЛЖНЫ ЗАПУСТИТЬ ПОДГОТОВИТЕЛЬНЫЕ СЦЕНАРИИ, УКАЗАННЫЕ ВЫШЕ!cd templates/nanoGPT python Experiment.py --out_dir run_0 график python.py
Описание: В этом шаблоне изучается повышение производительности диффузионных генеративных моделей на наборах данных низкой размерности.
Шаги установки:
Установите зависимости:
# Настраиваем клон 2D Diffusiongit https://github.com/gregversteeg/NPEET.gitcd NPEET pip install .pip install scikit-learn
Создайте базовые прогоны:
# Настройте базовые шаблоны 2D Diffusion runcd/2d_diffusion python Experiment.py --out_dir run_0 график python.py
Описание: Этот шаблон исследует вопросы обобщения и скорости обучения в глубоких нейронных сетях.
Шаги установки:
Установите зависимости:
# Настраиваем Grokkingpip и устанавливаем einops
Создайте базовые прогоны:
# Настраиваем базовые шаблоны runcd Grokking/grokking python Experiment.py --out_dir run_0 график python.py
Примечание. Прежде чем запускать эти эксперименты, убедитесь, что описанные выше шаги по настройке выполнены.
conda active ai_scientist# Запустите документ 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
Если у вас более одного графического процессора, используйте параметр --parallel
для распараллеливания идей на нескольких графических процессорах.
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.pdf")# Получить обзорный словарьобзор = Perform_review(paper_txt,model,client,num_reflections=5,num_fs_examples=1,num_reviews_ensemble=5,temperature=0,1, )# Проверка результатов обзораreview["Общий"] # Общая оценка (1-10)review["Decision"] # 'Принять' или 'Отклонить'review["Weaknesses"] # Список слабых мест (строки)
Чтобы запустить пакетный анализ:
компакт-диск review_iclr_bench python iclr_anaанализ.py --num_reviews 500 --batch_size 100 --num_fs_examples 1 --num_reflections 5 --temperature 0,1 --num_reviews_ensemble 5
Если есть область исследования, которую вы хотели бы изучить с помощью 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
Скетч RNN ( sketch_rnn
) — PR #143
Этот раздел зарезервирован для вкладов сообщества. Отправьте запрос на включение, чтобы добавить ваш шаблон в список! Опишите шаблон в описании PR, а также покажите примеры сформированных статей.
Мы предоставляем три шаблона, которые активно используют код из других репозиториев, указанных ниже:
Шаблон NanoGPT использует код NanoGPT и этого PR.
Шаблон 2D Diffusion использует код от tiny-diffusion, ema-pytorch и Datasaur.
Шаблон Grokking использует код Sea-Snell/grokking и danielmamay/grokking.
Мы хотели бы поблагодарить разработчиков моделей и пакетов с открытым исходным кодом за их вклад и за предоставление доступа к их работе.
Если вы используете 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-файл или обзор?
Ученый по искусственному интеллекту завершает идею с вероятностью успеха, которая зависит от шаблона, базовой модели и сложности идеи. Мы советуем обратиться к нашей основной статье. Самые высокие показатели успеха наблюдаются у Claude Sonnet 3.5. Обзоры лучше всего делать с помощью GPT-4o; все другие модели имеют проблемы с предвзятостью к положительному результату или несоответствием требуемым результатам.
Какова стоимость каждой сгенерированной идеи?
Обычно менее 15 долларов за статью с Claude Sonnet 3.5. Мы рекомендуем DeepSeek Coder V2 как гораздо более экономичный подход. Хорошее место для поиска новых моделей — таблица лидеров Aider.
Как изменить базовый формат конференции, связанный с рецензиями?
Измените базовые файлы template.tex
содержащиеся в каждом шаблоне.
Как запустить The AI Scientist для разных предметных областей?
Пожалуйста, обратитесь к инструкциям для различных шаблонов. В текущей версии это ограничено идеями, которые могут быть выражены в коде. Однако снятие этого ограничения станет интересной будущей работой! :)
Как добавить поддержку новой модели фундамента?
Вы можете изменить ai_scientist/llm.py
, чтобы добавить поддержку новой модели фундамента. Мы не советуем использовать для The AI Scientist какую-либо модель, которая существенно слабее уровня GPT-4.
Почему мне нужно проводить базовые прогоны самостоятельно?
Они отображаются как run_0
и должны запускаться на каждой машине, на которой вы запускаете The AI Scientist, для точного сравнения времени выполнения из-за различий в оборудовании.
Что делать, если у меня возникнут проблемы с доступом к API Semantic Scholar?
Мы используем API Semantic Scholar для проверки идей на новизну и сбора цитат для написания статей. Вы можете пропустить эти этапы, если у вас нет ключа API или доступ к API осуществляется медленно.
В experimental/Dockerfile
мы включаем предоставленный сообществом образ Docker, который может помочь в ваших усилиях по контейнеризации.
Вы можете использовать это изображение следующим образом:
# Endpoint Scriptdocker run -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --модель gpt-4o-13 мая 2024 г. --эксперимент 2d_diffusion --num-идей 2
# Запуск интерактивного докера -it -e OPENAI_API_KEY=$OPENAI_API_KEY --entrypoint /bin/bash <AI_SCIENTIST_IMAGE>