소개
생성형 AI 기술의 발전으로 학술 연구 분야에서도 자동화 도구의 활용이 확대되고 있습니다. 이 게시글에서는 최근 주목받고 있는 'AI Scientist'라는 혁신적인 도구를 소개합니다. AI Scientist는 파운데이션 모델을 활용하여 논문 작성의 전 과정을 자동화하는 엔드투엔드 파이프라인으로, 연구 아이디어 생성부터 최종 논문 작성까지 전체 과정을 지원합니다.
원래 "생성형 AI로 논문 초안 쓰기: 당신의 시간을 돌려드립니다."라는 주제로 시리즈를 계획했으나, AI Scientist라는 더욱 혁신적인 도구가 등장하여 주제를 변경하게 되었습니다. AI Scientist는 단순한 초안 작성을 넘어 Full automation을 통해 연구의 전 과정을 자동화하는 솔루션입니다.
"생성형 AI로 논문 초안 쓰기: 당신의 시간을 돌려드립니다."는 제가 참고했던 유튜브 링크(https://www.youtube.com/watch?v=fPUCOWGZO0c&t=5s)로 대체 합니다.
AI Scientist 개요
참조링크 : https://sakana.ai/ai-scientist/
AI Scientist는 최신 파운데이션 모델의 발전을 바탕으로 논문 작성의 전 과정을 자동화한 엔드투엔드 파이프라인입니다.
예를 들어, GitHub에 공개된 기존 연구의 오픈소스 코드와 같은 간단한 초기 코드베이스와 광범위한 연구 주제만 주어지면, AI Scientist는 다음과 같은 작업들을 스스로 수행할 수 있습니다:
아이디어 생성
관련 문헌 검색
실험 계획 수립
실험 반복 수행
그래프 및 시각자료 생성
논문 작성
논문 리뷰
이러한 일련의 과정을 통해 통찰력 있는 연구 논문을 생성할 수 있습니다.
더 나아가, AI Scientist는 개방형 루프 구조(open-ended loop)로 작동할 수 있습니다. 즉, 이전에 생성한 아이디어와 피드백을 활용해 다음 세대의 아이디어를 개선하며, 인간 과학자 커뮤니티의 연구 진화 방식을 모방합니다.
AI Scientist의 4가지 핵심 프로세스
AI Scientist는 다음의 4단계로 구성된 과정을 통해 논문을 생성합니다:
1. 아이디어 생성 (Idea Generation)
초기 템플릿이 주어지면, AI Scientist는 다양하고 창의적인 새로운 연구 방향을 브레인스토밍합니다.
우리는 특정 연구 주제에 대한 기존 코드 템플릿을 제공합니다.
AI Scientist는 이 템플릿을 기반으로, 어떤 방향으로든 자유롭게 탐색하며 새로운 아이디어를 발전시킬 수 있습니다.
템플릿에는 논문 작성을 위한 LaTeX 스타일 파일과 섹션 헤더가 포함되어 있습니다.
또한, Semantic Scholar 검색 기능을 활용해 제안된 아이디어가 기존에 없던 독창적인(novel) 아이디어인지 검증합니다.
2. 실험 반복 (Experimental Iteration)
아이디어와 템플릿이 확정되면, 다음 단계에서는 제안된 실험을 실행하고 결과를 시각화합니다.
실험 결과를 바탕으로 시각 자료(그래프 등)를 생성합니다.
각 그래프가 어떤 내용을 담고 있는지 주석을 달아 설명합니다.
이렇게 저장된 시각 자료와 실험 노트는 논문 작성에 필요한 모든 정보를 제공합니다.
3. 논문 작성 (Paper Write-up)
AI Scientist는 자신의 연구 진행 상황을 LaTeX 형식의 표준 머신러닝 학회 논문 스타일로 간결하고 정보가 풍부하게 정리합니다.
논문 작성 과정에서도 Semantic Scholar를 활용해 적절한 인용 논문을 자동으로 검색하여 인용합니다.
4. 자동화된 논문 리뷰 (Automated Paper Reviewing)
이 프로젝트의 핵심 요소 중 하나는 LLM 기반 자동 리뷰어의 개발입니다.
생성된 논문을 거의 인간 수준의 정확도로 평가할 수 있습니다.
리뷰는 현재 프로젝트를 더 개선하거나, 다음 세대의 아이디어 발전을 위한 피드백으로 활용됩니다.
이로써 지속적인 피드백 루프가 형성되어 AI Scientist는 반복적으로 연구 성과를 향상시킬 수 있습니다.
AI Scientist GitHub
참조링크 : https://github.com/SakanaAI/AI-Scientist
인공지능의 주요 도전 과제 중 하나는 과학 연구를 수행하고 새로운 지식을 발견할 수 있는 에이전트를 개발하는 것입니다. 최첨단 모델들은 이미 인간 과학자들을 도와 아이디어를 브레인스토밍하거나 코드를 작성하는 데 사용되고 있지만, 여전히 광범위한 수동 감독이 필요하거나 특정 작업에 한정되어 있습니다.
우리는 이제 The AI Scientist를 소개하게 되어 매우 기쁩니다. 이 시스템은 완전 자동 과학 발견을 위한 최초의 종합 시스템으로, 대형 언어 모델(LLMs)과 같은 파운데이션 모델이 독립적으로 연구를 수행할 수 있도록 합니다.
우리는 논문에서 사용한 모든 실행 결과와 데이터를 [여기]에 제공합니다. 각 기본 모델을 각 템플릿에 대해 약 50개의 아이디어로 실행했습니다. 시스템의 강점과 약점을 파악하기 위해 Claude 모델로 생성된 논문들을 읽어보는 것을 적극 추천합니다. 다음은 The AI Scientist가 생성한 논문의 예시입니다 📝:
DualScale Diffusion: 저차원 생성 모델을 위한 적응형 특성 균형 기법
Multi-scale Grid Noise Adaptation: 저차원 데이터용 확산 모델 강화
GAN-Enhanced Diffusion: 샘플 품질과 다양성 향상 :
DualDiff: 이중 전문가 제거 기법을 통한 모드 캡처 향상
StyleFusion: 문자 수준 언어 모델에서의 적응형 다중 스타일 생성
Q-러닝 기반 Transformer 적응형 학습률
Grokking 해제: Transformer 모델에서 가중치 초기화 전략 비교 연구
Grokking 가속화: 일반화 성능을 위한 층별 학습률 조정
압축을 통한 Grokking: 최소 설명 길이를 통한 갑작스러운 일반화 현상
수학적 통찰 가속화: 전략적 데이터 증강을 통한 Grokking 촉진
주의사항: 이 코드베이스는 LLM이 작성한 코드를 실행합니다. 이는 잠재적으로 위험한 패키지 사용, 웹 접근, 프로세스 생성 가능성 등 다양한 위험과 도전 과제를 수반합니다. 사용 시 주의가 필요하며, 컨테이너 환경에서 실행하고 웹 접근을 제한하는 것을 강력히 권장합니다.
목차
소개 (Introduction)
요구사항 (Requirements)
설치 방법 (Installation)
지원되는 모델 및 API 키 (Supported Models and API Keys)
템플릿 설정 (Setting Up the Templates)
NanoGPT 템플릿
2D 확산(Diffusion) 템플릿
Grokking 템플릿
AI Scientist 논문 생성 실험 실행 (Run AI Scientist Paper Generation Experiments)
LLM이 생성한 논문에 대한 리뷰 받기 (Getting an LLM-Generated Paper Review)
나만의 템플릿 만들기 (Making Your Own Template)
커뮤니티 제공 템플릿 (Community-Contributed Templates)
템플릿 리소스 (Template Resources)
The AI Scientist 인용 방법 (Citing The AI Scientist)
자주 묻는 질문 (Frequently Asked Questions)
컨테이너화(Containerization)
소개 (Introduction)
우리는 논문에서 사용한 세 가지 템플릿을 제공합니다. 이 템플릿은 다음 세 가지 영역을 다룹니다:
NanoGPT
2D Diffusion
Grokking
이 템플릿들을 통해 The AI Scientist는 해당 분야에서 아이디어를 생성하고 실험을 수행할 수 있습니다. 또한, 우리는 커뮤니티로부터 새로운 템플릿의 기여를 받지만, 공식적으로 유지·관리하지는 않습니다. 우리가 제공한 세 가지 템플릿 외의 모든 템플릿은 커뮤니티 기여입니다.
요구사항 (Requirements)
이 코드는 Linux 운영체제에서 CUDA 및 PyTorch를 사용하는 NVIDIA GPU 환경에서 실행되도록 설계되었습니다. 다른 GPU 아키텍처도 PyTorch 가이드를 따르면 지원이 가능할 수 있습니다. 현재 템플릿은 CPU만으로 실행하기엔 현실적으로 매우 오랜 시간이 소요됩니다. 다른 운영체제(예: Windows, macOS)에서 실행하려면 상당한 수준의 조정이 필요합니다.
설치 방법 (Installation)
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 키 (Supported Models and API Keys)
우리는 오픈소스 모델과 API 기반 모델을 모두 지원합니다. 일반적으로는 GPT-4 이상 수준의 최첨단 모델 사용을 권장합니다. 전체 지원 모델 목록은 공식 문서를 참고하세요.
✅ OpenAI API (GPT-4o, GPT-4o-mini, o1 등)
OPENAI_API_KEY환경변수를 사용
✅ Anthropic API (Claude Sonnet 3.5 등)
ANTHROPIC_API_KEY환경변수를 사용
✅ Amazon Bedrock을 통한 Claude 모델 사용 시
pip install anthropic[bedrock]환경 변수 설정:
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_REGION_NAME=...✅ Vertex AI를 통한 Claude 모델 사용 시
pip install google-cloud-aiplatform
pip install anthropic[vertex]환경 변수 설정:
export CLOUD_ML_REGION="지역"
export ANTHROPIC_VERTEX_PROJECT_ID="프로젝트 ID"
export VERTEXAI_LOCATION="지역"
export VERTEXAI_PROJECT="프로젝트 ID"✅ DeepSeek API (deepseek-chat, deepseek-reasoner)
DEEPSEEK_API_KEY환경변수를 사용
✅ OpenRouter API (Llama3.1)
OPENROUTER_API_KEY환경변수를 사용
✅ Google Gemini
Google Gemini 모델(예: gemini-1.5-flash, gemini-1.5-pro)은 google-generativeai 라이브러리를 통해 지원됨
export GEMINI_API_KEY="여러분의 Gemini API 키"문헌 검색용 API (Literature Search APIs)
✅ Semantic Scholar API (선택 사항)
S2_API_KEY를 설정하면 높은 처리량 제공키 없이도 동작은 가능하나, 문헌 검색 및 인용 생성 단계를 건너뛸 수 있음
export S2_API_KEY="여러분의 키"✅ OpenAlex API (Semantic Scholar 대체용)
API 키 없이도 사용 가능
pip install pyalex
export OPENALEX_MAIL_ADDRESS="여러분의 이메일 주소"실행 시 다음 옵션 포함:
--engine openalex⚠️ 참고: Semantic Scholar API 키가 없는 사용자를 위한 실험적 기능입니다.
📁 템플릿 설정 (Setting Up the Templates)
이 섹션은 논문에서 사용된 세 가지 템플릿(NanoGPT, 2D Diffusion, Grokking)을 설정하는 방법을 설명합니다. The AI Scientist 실험을 실행하기 전에 관심 있는 템플릿에 대해 설정을 완료해 주세요.
🧠 NanoGPT 템플릿
설명: Transformer 기반의 자기회귀 다음 토큰 예측 작업을 연구합니다.
설정 단계:
데이터 준비:
python data/enwik8/prepare.py
python data/shakespeare_char/prepare.py
python data/text8/prepare.py기본 실험 실행 (기기 사양에 따라 다름):
cd templates/nanoGPT
python experiment.py --out_dir run_0
python plot.py⚠️ 위의
prepare.py스크립트를 먼저 실행해야 합니다!
🌌 2D Diffusion 템플릿
설명: 저차원 데이터셋에서 확산 생성 모델의 성능 향상을 연구합니다.
설정 단계:
의존성 설치:
git clone https://github.com/gregversteeg/NPEET.git
cd NPEET
pip install .
pip install scikit-learn기본 실험 실행:
cd templates/2d_diffusion
python experiment.py --out_dir run_0
python plot.py🔍 Grokking 템플릿
설명: 딥러닝 모델에서 일반화와 학습 속도에 관한 질문을 연구합니다.
설정 단계:
의존성 설치:
pip install einops기본 실험 실행:
cd templates/grokking
python experiment.py --out_dir run_0
python plot.py🚀 The AI Scientist 논문 생성 실험 실행
주의: 위 템플릿 설정 단계를 먼저 완료해야 합니다.
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 2GPU가 2개 이상일 경우
--parallel옵션으로 병렬 처리 가능
📝 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: 결과 데이터를 시각화prompt.json: 템플릿 설명 정보seed_ideas.json: 예시 아이디어latex/template.tex: 논문 작성용 LaTeX 템플릿 (인용 스타일 수정 필요)
핵심은 기존 파일명 구조 및 출력 JSON 형식을 유지하는 것입니다. 나머지는 자유롭게 수정 가능합니다.
🤝 커뮤니티 제공 템플릿
다음은 커뮤니티에서 기여한 템플릿 목록입니다:
감염병 모델링 (SEIR) – PR #137
MobileNetV3 기반 이미지 분류 – PR #141
Sketch RNN – PR #143
양자화학에서의 AI (MACE) – PR #157
지진 예측 – PR #167
Tensorial Radiance Fields – PR #175
PR을 통해 템플릿을 추가하고, 설명 및 생성된 논문 예시를 포함해 주세요.
📦 템플릿 출처 (Template Resources)
NanoGPT 템플릿: NanoGPT 및 해당 PR 코드 사용
2D Diffusion 템플릿: tiny-diffusion, ema-pytorch, Datasaur 코드 사용
Grokking 템플릿: Sea-Snell/grokking 및 danielmamay/grokking 코드 사용