n-shot learning이 갑자기 헷갈려서 쓰는 글!
prompt만 주는건지 fine-tuning하는 건지 헷갈렸는데 이 2개의 방법이 모두 있다.
FLAN: Finetuned Langauge Models Are Zeo-Shot Learners
- instruct tuning을 사용함에 따라 zero-shot 능력이 향상됨을 보여준다.
Instruction Tuning
- LM을 next word prediction으로 pre-training하는 것 + 추가적으로 instruction-answer pairs로 fine-tune
- FLAN의 중요 쟁점은 "얼마나 instruction-tuning시켜야 zero-shot 성능이 좋아질까?"이다. 학습 cluster 수에 대한 모델 성능 향상을 실행해본 결과 사용된 cluster 수가 늘어날 수록 성능이 좋아진다.
- model size가 작을 때는 효과가 별로 없다.
Conclusion
- Pretrain-finetune과 prompting method를 통합한 instruction tuning은 평가가 진행된 중요 task에서 zero-shot GPT-3를 능가했다.
- task cluster의 수에 따라 unseen task에서의 성능이 증가함을 확인할 수 있었다.
- 충분한 모델 사이즈에서 instruction-tuning이 좋은 결과를 보인다는 것이다.
- FLAN은 cross-task generalization이 모델 일반화에 중요하다는 것을 보여준다.
InstructGPT
- LLM이 untruthful, toxic, not helpful한 output을 만들 수 있기 때문에 human feedback을 받아서 user에게 align 시키자.
- RLHF 방식 사용. 다른 포스팅에 자세히 썼기 때문에 생략합니다!
CoT
- zeroshot으로 prompt만 주는것
- 복잡한 reasoning을 요구하면 LM이 tasks를 완성시키는 것에 실패할 때가 많다 -> prompt the LM to generate intermediate reasoning steps
- prompt를 줄 때 example을 input, chain-of-thought, output으로 구성하고 마지막에 input을 준다.
Evaluation 방법
- Arithmetic Reasoning
- Symbolic Reasoning
- Commonsense Reasoning