사카나AI 시스템, 아이디어 프롬프트 번역본
- 사카나AI는 일본의 AI 스타트업으로, 창업 1년 만에 유니콘 기업이 되었습니다.
- 이 회사는 대규모 언어 모델을 활용한 AI 사이언티스트를 공개했습니다.
- AI 사이언티스트는 연구 아이디어 생성, 반복, 평가를 위한 프롬프트를 제공합니다.
AI-Scientist/ai_scientist/generate_ideas.py at main · SakanaAI/AI-Scientist · GitHub
사카나AI는 창업 1년 만에 기업 가치 10억 달러를 넘는 유니콘 기업으로 성장한 일본의 AI 스타트업입니다. 이 회사는 최근 대규모 언어 모델(LLM)을 활용해 과학 연구를 독자적으로 수행할 수 있는 ‘AI 사이언티스트’를 공개했습니다.
이 사카나 AI의 공개 된 프롬프트들 중 generate_ideas.py 내용을 우선 살펴보겠습니다. 실제 프롬프트 내용은 코드 내부 ''' ''' 안에 있는 내용이며, {idea} 처럼 {}안에 있는 내용들은 대부분 생성되어있거나 사용자가 입력한 내용들을 코드로 치환하는 것입니다. 즉, {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.'''
{task_description}<experiment.py> {code}</experiment.py>
다음은 이미 생성된 아이디어입니다:'''{prev_ideas_string}'''제공된 코드를 사용해 실현 가능한 연구 실험 아이디어나 연구 방향의 다음으로 영향력 있고 창의적인 아이디어를 떠올리세요.
추가적인 자원이나 데이터셋을 사용할 수 없음을 유의하세요. 모든 아이디어는 특정 학습 데이터셋이나 모델에 과적합되지 않고 더 넓은 의미를 가질 수 있도록 하세요. 다음 형식으로 응답하세요:THOUGHT:<THOUGHT>NEW IDEA JSON:```json<JSON>```<THOUGHT>에서 먼저 아이디어에 대한 직관과 동기를 간략히 논의하세요.
고수준의 계획, 필요한 설계 선택, 실험의 이상적인 결과를 상세히 설명하세요. 아이디어가 기존 아이디어들과 어떻게 다른지 정당화하세요.<JSON>에서 다음 필드를 포함한 JSON 형식으로 새로운 아이디어를 제공하세요:
- "Name": 아이디어를 간단히 설명하는 명칭. 소문자, 공백 없음, 밑줄 사용 가능.- "Title": 보고서 작성에 사용될 아이디어의 제목.
- "Experiment": 구현 개요. 예를 들어, 추가하거나 수정해야 할 함수, 결과를 얻는 방법 등.- "Interestingness": 1에서 10까지의 평점 (최저에서 최고).
- "Feasibility": 1에서 10까지의 평점 (최저에서 최고)
.- "Novelty": 1에서 10까지의 평점 (최저에서 최고).평점에 신중하고 현실적으로 접근하세요.
이 JSON은 자동으로 파싱될 것이므로 형식이 정확한지 확인하세요.{num_reflections}회의 반복을 통해 아이디어를 수정할 수 있지만, 모두 사용할 필요는 없습니다.
아이디어 생성 프롬프트
idea_first_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_first_prompt =
"""{task_description}<experiment.py> {code}</experiment.py>Here are the ideas that you have already generated:'''{prev_ideas_string}''
'다음으로 영향력 있고 창의적인 연구 실험 아이디어 또는 제공된 코드를 통해 실현 가능한 연구 방향을 생각해보세요. 추가적인 자원이나 데이터셋을 사용할 수 없음을 유의하세요. 모든 아이디어는 특정 학습 데이터셋이나 모델에 과적합되지 않고 더 넓은 의미를 가질 수 있도록 하세요.
다음 형식으로 응답하세요:
THOUGHT:<THOUGHT>NEW IDEA JSON:```json<JSON>```
<THOUGHT>에서 먼저 아이디어에 대한 직관과 동기를 간단히 논의하세요. 고수준의 계획, 필요한 설계 선택, 실험의 이상적인 결과를 자세히 설명하세요. 아이디어가 기존 것들과 어떻게 다른지 정당화하세요.<JSON>에서 다음 필드를 포함한 JSON 형식으로 새로운 아이디어를 제공하세요:- "Name": 아이디어의 간단한 기술자. 소문자, 공백 없음, 밑줄 사용 가능.- "Title": 보고서 작성에 사용될 아이디어의 제목.
- "Experiment": 구현 개요. 예를 들어, 추가하거나 수정해야 할 함수, 결과를 얻는 방법 등.
- "Interestingness": 1에서 10까지의 평점 (최저에서 최고).
- "Feasibility": 1에서 10까지의 평점 (최저에서 최고).
- "Novelty": 1에서 10까지의 평점 (최저에서 최고).평점에 신중하고 현실적으로 접근하세요. 이 JSON은 자동으로 파싱될 것이므로 형식이 정확한지 확인하세요. {num_reflections}회의 반복을 통해 아이디어를 수정할 수 있지만, 모두 사용할 필요는 없습니다."""
아이디어 회고 프롬프트
idea_reflection_prompt = """Round {current_round}/{num_reflections}.
In your thoughts, first carefully consider the quality, novelty, and feasibility of the idea you just created.
Include any other factors that you think are important in evaluating the idea.
Ensure the idea is clear and concise, and the JSON is the correct format.
Do not make things overly complicated.
In the next attempt, try and refine and improve your idea.
Stick to the spirit of the original idea unless there are glaring issues.
Respond in the same format as before:
THOUGHT:
<THOUGHT>
NEW IDEA 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."""
idea_reflection_prompt ="Round {current_round}/{num_reflections}.
생각해보면, 먼저 방금 만든 아이디어의 품질, 참신성, 실현 가능성을 신중하게 고려하세요.
아이디어를 평가하는 데 중요하다고 생각되는 다른 요소를 포함합니다.
아이디어가 명확하고 간결하며 JSON이 올바른 형식인지 확인합니다.
일을 너무 복잡하게 만들지 마세요.
다음 시도에서는 아이디어를 개선하고 개선해 보십시오.
눈에 띄는 문제가 없는 한 원안의 정신을 고수하세요.
이전과 동일한 형식으로 응답합니다:
생각:
<생각>
새로운 아이디어 JSON:
'''아들
<JSON>
```
개선할 점이 없다면, 생각이 끝난 후에 이전 JSON을 정확히 반복하고 생각이 끝난 후에 JSON 앞에 "나는 끝났다"를 포함하기만 하면 됩니다.
더 이상 변경하지 않을 경우 "I made"만 포함하십시오."
아이디어 평가 프롬프트
"""
Completed ideas have an additional "Score" field which indicates the assessment by an expert ML reviewer.
This is on a standard 1-10 ML conference scale.
Scores of 0 indicate the idea failed either during experimentation, writeup or reviewing.
"""
완성된 아이디어는 전문가 ML 리뷰어에 의해 평가되는 "점수" 필드를 추가로 갖습니다. 이 점수는 표준 1-10 ML 학회 척도에 따른 것입니다. 점수가 0인 경우, 그 아이디어는 실험, 작성 또는 리뷰 중 하나에서 실패했음을 나타냅니다.