[종이] | [블로그 게시물] | [드라이브 폴더]
인공지능의 가장 큰 과제 중 하나는 과학적 연구를 수행하고 새로운 지식을 발견할 수 있는 에이전트를 개발하는 것입니다. 프론티어 모델은 아이디어 브레인스토밍이나 코드 작성 등 인간 과학자를 지원하는 데 이미 사용되었지만 여전히 광범위한 수동 감독이 필요하거나 특정 작업에 크게 제한됩니다.
LLM(대형 언어 모델)과 같은 기초 모델이 독립적으로 연구를 수행할 수 있도록 지원하는 완전 자동 과학적 발견을 위한 최초의 종합 시스템인 The AI Scientist를 소개하게 되어 기쁘게 생각합니다.
우리는 여기에 논문의 모든 실행과 데이터를 제공하며, 여기서 약 50개의 아이디어에 대해 각 템플릿에서 각 기본 모델을 실행합니다. 시스템의 강점과 약점을 파악하려면 Claude의 일부 논문을 읽어보는 것이 좋습니다 . 다음은 The AI Scientist 가 생성한 몇 가지 예시 논문입니다.
DualScale Diffusion: 저차원 생성 모델을 위한 적응형 특징 균형 조정
다중 규모 그리드 잡음 적응: 저차원 데이터에 대한 확산 모델 강화
GAN 강화 확산: 샘플 품질 및 다양성 향상
DualDiff: 이중 전문가 노이즈 제거를 통해 저차원 확산 모델의 모드 캡처 향상
StyleFusion: 문자 수준 언어 모델의 적응형 다중 스타일 생성
Q-Learning을 통한 Transformer의 적응형 학습률
Grokking 잠금 해제: 변압기 모델의 가중치 초기화 전략에 대한 비교 연구
Grokking Accelerated: 변환기 일반화를 위한 계층별 학습 속도
압축을 통한 Grokking: 최소 설명 길이를 통한 갑작스러운 일반화 공개
수학적 통찰력 가속화: 전략적 데이터 증강을 통해 Grokking 강화
메모:
주의! 이 코드베이스는 LLM으로 작성된 코드를 실행합니다. 잠재적으로 위험한 패키지 사용, 웹 액세스, 잠재적인 프로세스 생성 등을 포함하여 이러한 자율성과 관련된 다양한 위험과 과제가 있습니다. 귀하의 재량에 따라 사용하십시오. 웹 액세스를 적절하게 컨테이너화하고 제한하세요.
소개
요구사항
설치
지원되는 모델 및 API 키
템플릿 설정
NanoGPT 템플릿
2D 확산 템플릿
그로킹 템플릿
AI 과학자 논문 생성 실험 실행
LLM에서 생성된 논문 검토 받기
나만의 템플릿 만들기
커뮤니티 제공 템플릿
템플릿 리소스
AI 과학자 인용
자주 묻는 질문
컨테이너화
우리는 NanoGPT , 2D Diffusion 및 Grokking 도메인을 다루는 논문에서 사용된 세 가지 템플릿을 제공합니다. 이러한 템플릿을 통해 AI 과학자는 이러한 영역에서 아이디어를 생성하고 실험을 수행할 수 있습니다. 우리는 커뮤니티에서 새로운 템플릿을 제공하는 것을 허용하지만 해당 템플릿은 우리가 유지 관리하지 않는다는 점에 유의하십시오. 제공된 세 가지 이외의 다른 모든 템플릿은 커뮤니티 기여입니다.
이 코드는 CUDA 및 PyTorch를 사용하는 NVIDIA GPU가 탑재된 Linux에서 실행되도록 설계되었습니다. PyTorch 지침을 따르면 다른 GPU 아키텍처에 대한 지원이 가능할 수 있습니다. 현재 템플릿은 CPU 전용 시스템에서는 실현 불가능한 시간이 걸릴 수 있습니다. 다른 운영 체제에서 실행하려면 상당한 조정이 필요할 수 있습니다.
conda create -n ai_scientist python=3.11 conda activate ai_scientist# pdflatexsudo 설치 apt-get install texlive-full# PyPI 요구 사항 설치pip install -r 요구 사항.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 설치 인류[정점]
그런 다음 리전 및 프로젝트 ID를 제공하는 등 Google Cloud 프로젝트에 대한 유효한 인증을 설정합니다.
import CLOUD_ML_REGION="REGION" # 모델 가든 callexport ANTHROPIC_VERTEX_PROJECT_ID="PROJECT_ID" # 모델 가든 callexport VERTEXAI_LOCATION="REGION" # Aider/LiteLLM callexport VERTEXAI_PROJECT="PROJECT_ID" # Aider/LiteLLM 호출
기본적으로 DEEPSEEK_API_KEY
환경 변수를 사용합니다.
기본적으로 OPENROUTER_API_KEY
환경 변수를 사용합니다.
우리 코드는 선택적으로 Semantic Scholar API 키( S2_API_KEY
)를 사용하여 더 높은 처리량을 얻을 수도 있지만 원칙적으로는 키 없이도 작동해야 합니다. Semantic Scholar에 문제가 있는 경우 논문 생성의 문헌 검색 및 인용 단계를 건너뛸 수 있습니다.
실행에 사용되는 모델의 키를 제공해야 합니다. 예:
내보내기 OPENAI_API_KEY="여기에 열쇠를 넣으세요"export S2_API_KEY="여기에 열쇠를 넣으세요"
이 섹션에서는 논문에 사용된 세 가지 템플릿 각각을 설정하는 지침을 제공합니다. AI 과학자 실험을 실행하기 전에 관심 있는 템플릿에 대한 설정 단계를 완료했는지 확인하십시오.
설명: 이 템플릿은 변환기 기반 자동 회귀 다음 토큰 예측 작업을 조사합니다.
설정 단계:
데이터를 준비합니다:
파이썬 데이터/enwik8/prepare.py 파이썬 데이터/shakespeare_char/prepare.py 파이썬 데이터/text8/prepare.py
기준선 실행 만들기(컴퓨터에 따라 다름):
# NanoGPT 기준선 실행 설정# 참고: 먼저 위의 준비 스크립트를 실행해야 합니다!cd template/nanoGPT 파이썬 실험.py --out_dir run_0 파이썬 플롯.py
설명: 이 템플릿은 저차원 데이터세트에서 확산 생성 모델의 성능 향상을 연구합니다.
설정 단계:
종속성을 설치합니다.
# 2D Diffusiongit 클론 설정 https://github.com/gregversteeg/NPEET.gitcd NPEET pip 설치 .pip 설치 scikit-learn
기준선 실행 만들기:
# 2D 확산 기준선 runcd 템플릿/2d_diffusion 설정 파이썬 실험.py --out_dir run_0 파이썬 플롯.py
설명: 이 템플릿은 심층 신경망의 일반화 및 학습 속도에 대한 질문을 조사합니다.
설정 단계:
종속성을 설치합니다.
# Grokkingpip 설치 einops 설정
기준선 실행 만들기:
# Grokking 기본 runcd 템플릿/grokking 설정 파이썬 실험.py --out_dir run_0 파이썬 플롯.py
참고: 이 실험을 실행하기 전에 위의 설정 단계가 완료되었는지 확인하십시오.
conda activate ai_scientist# paper 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" --실험 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.pdf")# Get 리뷰 사전review = Perform_review(paper_txt,모델,클라이언트,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_analytic.py --num_reviews 500 --batch_size 100 --num_fs_examples 1 --num_reflections 5 --온도 0.1 --num_reviews_ensemble 5
AI 과학자가 탐구하고 싶은 연구 분야가 있다면 자신만의 템플릿을 만드는 것이 간단합니다. 일반적으로 다음으로 구성된 기존 템플릿의 구조를 따릅니다.
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의 코드를 사용합니다.
우리는 오픈 소스 모델 및 패키지 개발자들의 기여와 작업 가능 여부에 대해 감사의 말씀을 전하고 싶습니다.
연구에 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 또는 리뷰가 생성되지 않은 이유는 무엇입니까?
AI 과학자는 템플릿, 기본 기반 모델, 아이디어의 복잡성에 따라 성공률이 달라지는 아이디어를 완성합니다. 우리는 우리의 주요 논문을 참조하는 것이 좋습니다. Claude Sonnet 3.5에서 가장 높은 성공률이 관찰되었습니다. 검토는 GPT-4o를 사용하는 것이 가장 좋습니다. 다른 모든 모델에는 양성 편향 문제가 있거나 필수 출력을 준수하지 못하는 문제가 있습니다.
생성된 각 아이디어의 비용은 얼마입니까?
일반적으로 Claude Sonnet 3.5를 사용하면 논문당 $15 미만입니다. 훨씬 더 비용 효율적인 접근 방식을 위해 DeepSeek Coder V2를 권장합니다. 새로운 모델을 찾기에 좋은 곳은 Aider 리더보드입니다.
글과 관련된 기본 회의 형식을 어떻게 변경합니까?
각 템플릿에 포함된 기본 template.tex
파일을 변경합니다.
다양한 주제 분야에 대해 The AI Scientist를 어떻게 운영하나요?
다양한 템플릿에 대한 지침을 참조하세요. 현재 반복에서는 코드로 표현될 수 있는 아이디어로 제한됩니다. 그러나 이 제한을 해제하는 것은 흥미로운 미래 작업이 될 것입니다! :)
새로운 기반 모델에 대한 지원을 어떻게 추가하나요?
ai_scientist/llm.py
수정하여 새로운 기반 모델에 대한 지원을 추가할 수 있습니다. The AI Scientist 의 경우 GPT-4 수준보다 훨씬 약한 모델을 사용하지 않는 것이 좋습니다.
기준 실행을 직접 실행해야 하는 이유는 무엇입니까?
이는 run_0
으로 표시되며 하드웨어 차이로 인해 정확한 런타임 비교를 위해 AI 과학자를 실행하는 머신별로 실행되어야 합니다.
Semantic Scholar API에 액세스하는 데 문제가 있으면 어떻게 합니까?
우리는 참신성에 대한 아이디어를 확인하고 논문 작성에 대한 인용을 수집하기 위해 Semantic Scholar API를 사용합니다. API 키가 없거나 API 액세스 속도가 느린 경우 이 단계를 건너뛸 수 있습니다.
experimental/Dockerfile
에는 컨테이너화 작업에 도움이 될 수 있는 커뮤니티 제공 Docker 이미지가 포함되어 있습니다.
이 이미지를 다음과 같이 사용할 수 있습니다.
# 엔드포인트 Scriptdocker 실행 -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/templates:/app/AI-Scientist/templates <AI_SCIENTIST_IMAGE> --모델 gpt-4o-2024-05-13 --2d_확산 실험 --num-아이디어 2
# Interactivedocker run -it -e OPENAI_API_KEY=$OPENAI_API_KEY --진입점 /bin/bash <AI_SCIENTIST_IMAGE>