Abstract
- Instruction tuning은 PLM이 추론할 때 natural language description으로부터의 새로운 task에 대해 답을 할 수 있게 해 줌.
- 일반적으로 사람이 수동적으로 수많은 데이터를 직접 라벨링하든지, 구성하여 데이터셋을 구성함.
- 하지만 위의 방식은 굉장히 많은 비용이 들어가고, 시간이 소모됨.
- 따라서, 본 논문에서는 Unnatural Instruction 방식을 설명함.
- Unnatural Instruction 방식을 활용하면 사람의 노동력 없이도, 다양하고, creative한 대량의 데이터셋을 확보할 수 있음.
- 이 방식을 통해 실제로 사람이 직접 공을 들여 만든 데이터셋으로 학습한 모델의 성능에 버금가거나, 심지어 뛰어 넘기도 했음.
Instroduction
- 검은색으로 칠해진 글자들이 LLM에 prompt로 주입되는 것이고, 분홍색이 생성되는 output임.
- Unnatural Instructions 방식으로 하면 5개의 시드에 각각 3개의 example만이 필요로 함. 즉, 총 15개의 instruction 예시만 있으면 됨.
- 15개의 예시만 있으면 64000개의 예시를 도출할 수 있음.
Method
Data Collection
- Generation Pipeline
- 위의 그림은 Unnatural Instructions 데이터셋을 생성하기 위한 generation 파이프라인이다.
- 위의 그림에서 맨 초기에 3개의 샘플이 필요한 것으로 보인다.
- 이러한 샘플이 총 5 묶음이 필요하므로 총 15개의 manually한 seed sample이 있으면 Unnatural Instruction을 생성할 수 있다.
- 15개의 seed 샘플과, GPT-4 등과 같은 LLM을 활용하여 Instruction Dataset을 생성한다.
- Prompt의 예시는 아래와 같다.
- 3개의 샘플을 가지고, necleus sampling(a.k.a top p)의 값을 0.99로 하여 발화의 다양성을 높인다.
- 그리고 생성된 instruction, Input, Constraints를 활용하여 생성된 output 값의 안정성을 높이기 위해, greedy decoding 방식으로 생성해낸다.
- 이 ouput을 활용하여 FT를 실행한다.
- 이 과정의 중간에 필터링이 필요하다.
- 모델이 생성한 값 중에 format으로 정해놓은 값이 없는 것들(위의 예시에서, instruction, Input, Constraint 중 하나라도 없는 ouput)은 제외한다.
- instruction과 input이 prompt로 들어간 예시와 같은 것들은 제외한다.
- prompt내에서 같은 예시가 있으면 제외한다.
- Template expansion
- 데이터의 다양성을 주기 위해서는 instruction 형태가 다양하게 학습되어야 한다. 따라서 기존의 instruction을 few-shot을 활용하여 reformulate 해야한다.
- 위의 그림은 기존 instruction의 few-shot 예시와 그에 따라 생성된 결과(instruction 및 alternative formulation)이다. 이를 활용해서 데이터의 다양성을 줄 수 있다.
Data analysis
- Super Natural Instruction과 Unnatural Instructions의 similarity scores distribution
Conclusion
- 처음으로 automatically하게 데이터셋을 생성한 실험임.
- 결국 Unnatural Instruction에서도 중요한 것은 데이터의 다양성, 정확성 등이 중요한 것이다. 이러한 데이터를 어떻게 만들어낼지 잘 고민해서 데이터를 만들어야 학습이 원하는 방향으로 잘 된다.
Code
https://github.com/sylee96/kobert_score