
My comment
진화 알고리즘의 핵심은, 지시문을 진화시키는 방법을 여섯 가지 카테고리로 나누었다는 점인 것 같다.
그리고 한 번에 너무 많은 진화를 시도하지 않고, 단계적으로 복잡도를 높이는 것이 순차적 진화의 핵심이라고 생각한다.
LLM에게 한 번에 너무 많은 작업을 시키면, 할루시네이션이나 잘못된 정보를 생성할 가능성이 높다고 본다.
따라서 앞으로의 연구에서는, LLM이 특정 테스크를 가장 효율적으로 수행할 수 있는 적절한 명령 범위를 고민하는 것이 중요하다고 생각한다.
지시 데이터를 수작업으로 생성하는 것은 많은 시간적&인적 리소스 발생
인간 대신 LLM을 이용하여 대량의 지시 데이터를 생성
Evol-Insturct : 지시문을 단계적으로 다시 작성(rewrite)하여 복잡한 지시문으로 진화시키는 기법
WizardLM : Evol-Instruct 기법을 통해 생성된 데이터를 LLaMA모델에 파인튜닝한 모델
Alpaca, Vicuna보다 더 뛰어난 성능을 보임
자동으로 open-domain instructions data 대량 생산하는 새로운 방법
In-depth Evolving
- 제약조건 추가 (Add Constraints)
- 심화 (Deepening)
- 구체화 (Concretizing)
- 추론 단계 증가 (Increase Reasoning Steps)
- 입력 복잡화 (Complicate Input)
In-berath Evolving
- 변이 (mutation) : 주어진 지시문을 기반으로 완전히 새로운 재시문 생성
Instruction Eliminator (지시문 제거기)
- 프롬프트를 통해 LLM이 지시문을 생성 진화가 실패한 지시문 제거
결론 (발견사항)
- open-domain instruction을 LLM을 통해 자동 대량 생성함으로써, LLM의 성능을 향상시키는 Evol-Instuct 제안
- WizardLM 모델을 개발하여, 다양한 도메인에서 크게 우수한 성능을 보임
- 지시문의 복잡도가 supervised fine-tuning 성능 향상에 매우 중요함을 확인
Evol-Instruct의 파이프라이은은 크게 Instruction Evolver(In-Depth Evolving + In-Breathe Evolving)와 Instruction Eliminator로 구성

를 Evol-Instruct 프롬프트를 사용하여 LLM에 입력
새로운 지시문 생성
를 통해 생성
M회 반복
지시문 생성 3가지 단계
1. instruction evolving
2. response generation
3. elimination evolving
LLM 특징
- LLM은 특정한 프롬프트를 사용하면 instruction을 더 복잡하고 어려운 형태로 변환 가능
- 완전히 새로운 복잡한 instruction도 생성할 수 있음
초기 instruction 데이터셋을 반복적으로 진화시켜, instruction의 difficulty를 높이고, 내용의 풍부함과 다양성을 확장
In-Depth Evolving
1. 제약조건 추가
2. 심화
3. 구체화
4. 추론 단계 증가
5. 입력 복잡화
프롬프트 내용
"Your objective is to rewrite
a given prompt into a more complex version to make those famous AI systems (e.g., ChatGPT
and GPT4 (OpenAI, 2023)) a bit harder to handle. But the rewritten prompt must be reasonable,
understood, and responded to by humans"
korean ver.
"당신의 목표는 주어진 프롬프트를 더 복잡한 버전으로 다시 작성하여,
ChatGPT나 GPT-4 같은 유명한 AI 시스템이 처리하기 조금 더 어렵게 만드는 것이다.
단, 새로 작성된 프롬프트는 인간이 이해하고 응답할 수 있을 정도로 합리적이어야 한다."
In-Breadth Evovlving
- 주제 범위, 기술 범위, 전체 데이터셋의 다양성을 확장하기 위한 과정
- 기존 instruction에서 영감을 받아 새로운 instruction을 생성하도록 프롬프트 진행
프롬프트 내용
"I want you act as a Prompt Creator.
Your goal is to draw inspiration from the #Given Prompt# to create a brand new prompt.
This new prompt should belong to the same domain as the #Given Prompt# but be even more rare.
The LENGTH and difficulty level of the #Created Prompt# should be similar to that of the #Given Prompt#."
진화 실패로 분류하는 4가지 경우에 따라 해당 instruction을 제거한다.
1. 진화된 instruction이 기존 instruction과 비교해 정보 이득(information gain)
이 없는 경우
2. 진화된 instruction에 대해 LLM이 응답을 제대로 생성하지 못하는 경우
3. 생성된 응답이 문장부호나 불용어만 포함하는 경우
4. 진화된 instruction이 프롬프트 내부 단어를 그대로 복사한 경우
WizardLM을 automatic evaluation과 human evaluation 수행
parameter
temperature = 1
최대 생성 토큰 수 = 2048
frequency penalty = 0
top-p = 0.9
learning
optimizer = Adam
learning rate = 2 x10^-5
최대 토큰 길이 : 2048
배치 크기 : GPU당 4



(요약)
In-depth Evovling은 instruction의 복잡도와 추론 난이도를 단계적으로 높여서 모델의 사고 능력을 강화
In-breath Evolving은 주제 다양성을 넓혀 모델이 더 다양한 영역을 다룰 수 있도록 함
두 과정이 상호보완적으로 작용하여 WizardLM이 더 넓은 범위의 instruction을 처리하고 더 깊이 있는 추론을 수행
본 논문에서는 Evol-Instruct라는 새로운 진화 알고리즘을 제안하였고, 이를 통해 다양한 instruction data를 자동으로 생성하였다.
이를 오픈소스 LLM 모델에 파인튜닝한 WizardLM은 다른 LLM보다 다양한 테스크의 벤치마크에서 우수한 성능을 보였다.