Sakana AI의 AI Scientist 프로젝트는 과학 연구의 모든 과정을 자동화합니다. 이 시스템은 연구 아이디어 생성부터 실험 수행, 논문 작성, 그리고 자동화된 피어 리뷰까지 진행합니다. 이를 통해 연구 비용을 절감하고 과학 발전을 가속화하려는 목표를 가지고 있습니다. 현재 시각 자료 생성과 오류 문제 등 한계가 있지만, 지속적인 개선을 통해 더 발전할 예정입니다.
가장 강력한 LLM과 결합되면, AI Scientist는 최고 수준의 머신러닝 학회에서 "약한 수락(Weak Accept)" 평가를 받을 수준의 논문을 작성할 수 있습니다.
인공지능 일반화의 주요 과제 중 하나는 과학적 연구를 수행하고 새로운 지식을 발견할 수 있는 에이전트를 개발하는 것입니다. 최첨단 모델들이 이미 인간 과학자들을 보조하는 역할을 하고 있으며, 예를 들어 아이디어를 브레인스토밍하거나 코드를 작성하거나 예측 작업을 수행하는 데 사용되고 있습니다. 그러나 이들 모델은 여전히 과학적 과정의 일부만을 수행하고 있습니다. 이 논문에서는 완전한 자동화된 과학적 발견을 위한 최초의 포괄적 프레임워크를 제시하여, 최첨단 대형 언어 모델(LLM)이 독립적으로 연구를 수행하고 그 결과를 전달할 수 있도록 합니다. 우리는 The A I Scientist를 소개합니다. 이 모델은 새로운 연구 아이디어를 생성하고, 코드를 작성하며, 실험을 실행하고, 결과를 시각화하며, 전체 과학 논문을 작성하여 발견 내용을 설명한 뒤, 평가를 위해 모의 리뷰 과정을 거칩니다. 원칙적으로 이 과정은 반복적으로 수행되어 아이디어를 발전시키고, 이를 지식의 아카이브에 추가함으로써 인간 과학 공동체처럼 작동할 수 있습니다. 우리는 이 접근법의 다재다능함을 기계 학습의 세 가지 하위 분야인 확산 모델링, 트랜스포머 기반 언어 모델링, 학습 동역학에 적용하여 시연합니다. 각 아이디어는 구현되어 전체 논문으로 개발되며, 논문 한 편당 15달러 이하의 비용으로 제작되어, 우리의 프레임워크가 연구를 민주화하고 과학적 발전을 크게 가속화할 가능성을 보여줍니다. 생성된 논문을 평가하기 위해 자동화된 리뷰어를 설계하고 검증하였으며, 이 리뷰어는 논문 점수를 평가하는 데 있어 인간과 유사한 성능을 보임을 입증했습니다. The A I Scientist는 자동화된 리뷰어에 의해 판단된 결과, 주요 기계 학습 컨퍼런스의 수용 기준을 초과하는 논문을 생성할 수 있습니다. 이 접근법은 기계 학습에서 과학적 발견의 새로운 시대의 시작을 의미하며, AI 에이전트의 혁신적 혜택을 AI 자체의 전체 연구 과정에 도입함으로써, 세계의 가장 어려운 문제들에 대해 무한하고 저렴한 창의성과 혁신을 발휘할 수 있는 세상에 한 발짝 더 다가가게 합니다.
- 서론 (Introduction): AI를 활용한 자동화된 연구의 가능성을 논의하며, AI Scientist의 필요성과 목표를 소개합니다. 이 섹션에서는 현재 연구의 한계와 AI Scientist의 혁신성을 강조합니다.
- 배경 (Background): 대형 언어 모델(LLM)과 관련된 기술적 배경을 설명합니다. AI Scientist의 기반이 되는 다양한 AI 기술과 알고리즘에 대한 설명이 포함되어 있습니다.
- AI Scientist 개요 (Overview): AI Scientist의 전체적인 구조와 단계별 진행 과정을 설명합니다. 이 프레임워크는 크게 아이디어 생성, 실험 실행, 논문 작성의 세 단계로 구성됩니다.
- 아이디어 생성 (Idea Generation): AI Scientist가 어떻게 새로운 연구 아이디어를 생성하고, 기존 문헌과 비교하여 참신한 아이디어를 도출하는지 설명합니다.
- 실험 단계 (Experiment Iteration): AI Scientist가 실험을 설계하고 실행하며, 결과를 시각화하여 논문 작성에 활용하는 과정을 설명합니다.
- 논문 작성 (Paper Write-up): AI Scientist가 실험 결과를 바탕으로 논문을 작성하는 방법을 설명합니다. LaTeX 형식의 논문을 작성하며, 각 섹션별로 필요한 정보를 채워나가는 과정이 포함됩니다.
- 자동화된 리뷰 프로세스 (Automated Review Process): 생성된 논문의 품질을 평가하기 위해 설계된 자동 리뷰 시스템을 설명합니다.
- 결론 및 향후 전망 (Conclusion and Future Outlook): AI Scientist의 한계, 윤리적 고려 사항, 그리고 미래 발전 방향에 대해 논의합니다.
이 논문은 AI Scientist가 다양한 연구 분야에서 어떻게 적용될 수 있는지를 보여주며, 머신러닝 분야에서의 실질적인 사례를 중심으로 설명합니다.
논문에서 다루는 AI Scientist의 핵심 내용은 다음과 같습니다:
- 자동화된 아이디어 생성 (Automated Idea Generation): AI Scientist는 진화적 계산 및 개방형 연구에서 영감을 받아 자동으로 새로운 연구 방향을 생성합니다. 연쇄적 사고 과정과 자기 성찰을 통해 아이디어를 반복적으로 정제하며, 그 후 Semantic Scholar API와 같은 외부 소스를 사용하여 아이디어의 참신성을 확인합니다(ai_scientist).
- 실험 반복 (Experimental Iteration): AI Scientist는 생성된 아이디어를 바탕으로 실험을 설계하고 실행합니다. 실험 결과는 시각화되며, 이후 논문 작성에 사용됩니다. 이 단계에서 AI Scientist는 여러 번의 실험을 거쳐 최적의 결과를 도출하고, 실험 과정에서의 학습을 통해 성능을 향상시킵니다.
- 논문 작성 (Paper Write-up): AI Scientist는 실험 결과를 바탕으로 논문을 자동으로 작성합니다. LaTeX 형식을 사용해 논문을 작성하며, 각 섹션(서론, 관련 연구, 실험 방법, 결과 및 논의 등)에 필요한 내용을 채웁니다.
- 자동화된 리뷰 프로세스 (Automated Review Process): 생성된 논문의 품질을 평가하기 위해 자동화된 리뷰 시스템을 사용합니다. 이 시스템은 논문의 정확성, 참신성, 가독성을 평가하며, 학계 표준에 부합하는지를 확인합니다.
- 결론 및 향후 전망 (Conclusion and Future Outlook): AI Scientist의 한계와 잠재적인 윤리적 문제, 그리고 향후 발전 방향에 대해 논의합니다. 이 섹션에서는 AI Scientist가 과학 연구의 효율성을 어떻게 향상시킬 수 있는지, 그리고 어떤 분야에서 더 많은 기여를 할 수 있을지를 설명합니다.
AI를 활용해 연구의 자동화 가능성을 탐구하며, AI Scientist가 다양한 연구 분야에서 적용될 수 있는 방법을 제시합니다.
+) prompt
- Idea Generation
# Idea Generation System Prompt
"""
You are an ambitious AI PhD student who is looking to publish a paper
that will contribute significantly to the field.
"""
# Idea Generation Prompt
"""
{task_description}
<experiment.py>
{code}
</experiment.py>
Here are the ideas that you have already generated:
'''
{prev_ideas_string}
'''
Come up with the next impactful and creative idea for research
experiments and directions you can feasibly investigate with the code
provided. Note that you will not have access to any additional resources
or datasets. Make sure any idea is not overfit the specific training
dataset or model, and has wider significance.
Respond in the following format:
THOUGHT:
<THOUGHT>
NEW IDEA JSON:
```json
<JSON>
```
In <THOUGHT>, first briefly discuss your intuitions and motivations for
the idea. Detail your high-level plan, necessary design choices and
ideal outcomes of the experiments. Justify how the idea is different
from the existing ones.
In <JSON>, provide the new idea in JSON format with the following fields:
- "Name": A shortened descriptor of the idea. Lowercase, no spaces,
underscores allowed.
- "Title": A title for the idea, will be used for the report writing.
- "Experiment": An outline of the implementation. E.g. which functions
need to be added or modified, how results will be obtained, ...
- "Interestingness": A rating from 1 to 10 (lowest to highest).
- "Feasibility": A rating from 1 to 10 (lowest to highest).
- "Novelty": A rating from 1 to 10 (lowest to highest).
Be cautious and realistic on your ratings.
This JSON will be automatically parsed, so ensure the format is precise.
You will have {num_reflections} rounds to iterate on the idea, but do
not need to use them all.
"""
# Idea Novelty System Prompt
"""
You are an ambitious AI PhD student who is looking to publish a paper that
will contribute significantly to the field.
You have an idea and you want to check if it is novel or not. I.e., not
overlapping significantly with existing literature or already well explored.
Be a harsh critic for novelty, ensure there is a sufficient contribution in
the idea for a new conference or workshop paper.
You will be given access to the Semantic Scholar API, which you may use to
survey the literature and find relevant papers to help you make your
decision.
The top 10 results for any search query will be presented to you with the
abstracts.
You will be given {num_rounds} to decide on the paper, but you do not need
to use them all.
At any round, you may exit early and decide on the novelty of the idea.
Decide a paper idea is novel if after sufficient searching, you have not
found a paper that significantly overlaps with your idea.
Decide a paper idea is not novel, if you have found a paper that
significantly overlaps with your idea.
{task_description}
<experiment.py>
{code}
</experiment.py>
"""
# Idea Novelty Prompt
"""
Round {current_round}/{num_rounds}.
You have this idea:
"""
{idea}
"""
The results of the last query are (empty on first round):
"""
{last_query_results}
"""
Respond in the following format:
THOUGHT:
<THOUGHT>
RESPONSE:
```json
<JSON>
```
In <THOUGHT>, first briefly reason over the idea and identify any query that
could help you make your decision.
If you have made your decision, add "Decision made: novel." or
"Decision made: not novel." to your thoughts.
In <JSON>, respond in JSON format with ONLY the following field:
- "Query": An optional search query to search the literature (e.g. attention
is all you need). You must make a query if you have not decided this round.
A query will work best if you are able to recall the exact name of the paper
you are looking for, or the authors.
This JSON will be automatically parsed, so ensure the format is precise.
"""
- Designing Experiments
# Experiment Running Aider Prompt
"""
Your goal is to implement the following idea: {title}.
The proposed experiment is as follows: {idea}.
You are given a total of up to {max_runs} runs to complete the necessary
experiments. You do not need to use all {max_runs}.
First, plan the list of experiments you would like to run. For example,
if you are sweeping over a specific hyperparameter, plan each value you
would like to test for each run.
Note that we already provide the vanilla baseline results, so you do not
need to re-run it.
For reference, the baseline results are as follows:
{baseline_results}
After you complete each change, we will run the command `python
experiment.py --out_dir=run_i' where i is the run number and evaluate
the results.
YOUR PROPOSED CHANGE MUST USE THIS COMMAND FORMAT, DO NOT ADD ADDITIONAL
COMMAND LINE ARGS.
You can then implement the next thing on your list.
"""
# Plotting Aider Prompt
"""
Great job! Please modify `plot.py` to generate the most relevant plots for
the final writeup.
In particular, be sure to fill in the "labels" dictionary with the correct
names for each run that you want to plot.
Only the runs in the `labels` dictionary will be plotted, so make sure to
include all relevant runs.
We will be running the command `python plot.py` to generate the plots.
---
Please modify `notes.txt` with a description of what each plot shows along
with the filename of the figure. Please do so in-depth.
Somebody else will be using `notes.txt` to write a report on this in the
future.
"""
- Paper Writing
# Paper Writing Aider Prompt
"""
We've provided the `latex/template.tex` file to the project. We will be
filling it in section by section.
First, please fill in the {section} section of the writeup.
Some tips are provided below:
{per_section_tips}
Before every paragraph, please include a brief description of what you plan
to write in that paragraph in a comment.
Be sure to first name the file and use *SEARCH/REPLACE* blocks to perform
these edits.
"""
- Paper Reviewing
# Paper Review System Prompt
"""
You are an AI researcher who is reviewing a paper that was submitted
to a prestigious ML venue. Be critical and cautious in your decision.
If a paper is bad or you are unsure, give it bad scores and reject
it.
"""
# Paper Review Prompt
"""
## Review Form
Below is a description of the questions you will be asked on the review form
for each paper and some guidelines on what to consider when answering these
questions.
When writing your review, please keep in mind that after decisions have been
made, reviews and meta-reviews of accepted papers and opted-in rejected
papers will be made public.
{neurips_reviewer_guidelines}
{few_show_examples}
Here is the paper you are asked to review:
```
{paper}
```
"""
# Paper Review Reflection Prompt
"""
Round {current_round}/{num_reflections}.
In your thoughts, first carefully consider the accuracy and soundness of
the review you just created.
Include any other factors that you think are important in evaluating the
paper.
Ensure the review is clear and concise, and the JSON is in the correct
format.
Do not make things overly complicated.
In the next attempt, try and refine and improve your review.
Stick to the spirit of the original review unless there are glaring
issues.
Respond in the same format as before:
THOUGHT:
<THOUGHT>
REVIEW JSON:
```json
<JSON>
```
If there is nothing to improve, simply repeat the previous JSON EXACTLY
after the thought and include "I am done" at the end of the thoughts but
before the JSON.
ONLY INCLUDE "I am done" IF YOU ARE MAKING NO MORE CHANGES.
"""
# Paper Review Ensembling System Prompt
"""
Review 1/N:
{review_1}
Review N/N:
{review_N}
{neurips_reviewer_guidelines}
"""
+) Hyperparameters
https://sakana.ai/ai-scientist/
Sakana AI
We are creating a new kind of foundation model based on nature-inspired intelligence.
sakana.ai
GitHub - SakanaAI/AI-Scientist: The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery 🧑🔬
The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery 🧑🔬 - SakanaAI/AI-Scientist
github.com
[2408.06292] The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery (arxiv.org)
The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery
One of the grand challenges of artificial general intelligence is developing agents capable of conducting scientific research and discovering new knowledge. While frontier models have already been used as aides to human scientists, e.g. for brainstorming i
arxiv.org
'AI > LLM' 카테고리의 다른 글
Grok-2 Beta 블로그 내용 정리(xAI) (5) | 2024.09.02 |
---|---|
AI 엔지니어와 데이터 과학자를 위한 Phoenix (1) | 2024.08.29 |
LLM 가격 추적 및 토큰 계산, Tokencost로 간편하게 (2) | 2024.08.23 |
LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 논문 요약 (1) | 2024.08.22 |
오픈소스 프롬프트 엔지니어링 도구, Promptfoo 사용법 (3) | 2024.08.21 |