From In-context learning to RLHF (Feat. ChatGPT)

이미지
TL;DR 거시적인 발전 과정 : In-context Learning -> Instruction Tuning -> RLHF -> RLAIF In-Context Learning은 Large Scale 언어모델을 tuning하지 않고 새로운 task에 적용할 수 있는 직관적인 방법을 제시함 Instruction Tuning은 다양한 task를 Instruction + example의 템플릿으로 캐스팅하여 Implicit하게 multi-task로 tuning하며 결과적으로 Unseen Task를 더 잘 수행함  RLHF는 인간의 선호도라는 애매한 척도를 모델링하는 Reward Model과 강화 학습을 활용하여 언어 모델을 개선하는 방법을 제시함 RLAIF는 Human Labeling Cost를 없애고 RLHF에서 추가적으로 helpfulness와 harmlessness를 모두 개선할 수 있는 자동화된 파이프라인을 제시함  In-Context Learning & Instruction Tuning 오늘은 요즘 핫한 ChatGPT와 관련된 이야기를 하려고 한다. 바로 zero-shot의 가능성을 보여준 In-context Learning의 시작과 그것을 더 개선시킨 Instruction Tuning, 마지막으로 화룡정점을 찍은 Reinforcement Learning From Human Feedback에 대한 내용이다. 이후 Anthropic에서 RLHF를 시스템적으로 개선한 RLAIF라는 방식을 추가적으로 제안하기도 했다.  In-context Learning In-context learning은 GPT3 에서 소개되면서 pretraining-finetuning paradigm의 대안을 제시했다. 언어모델이 충분히 크고(도표에 의하면 6B 이상) 다량의 corpus로 학습했다면 사람의 자연어 instruction을 이해하고 바람직한(의도에 맞는) 텍스트를 생성할 수 있는 능력을 가지고 있다는 것이다. 예를 들어 언어모델을 QA 태스크에 명시적으

Review : Unifying Language Learning Paradigms

MLM과 CLM을 넘어서

최근 스터디에서 T5, BART 등의 Encoder-Decoder 구조를 가진 언어 모델 사전학습을 진행하면서 "사전학습 = mlm or clm" 이라는 공식은 101에 불과하다는 생각을 하게 되었다. 알고 있던 BERT나 GPT는 self-supervision을 통한 pretraining을 제시한 기념비적인 논문들이긴 하지만 더 효과적이고 새로운 방법들이 많이 등장했다. 예를 들어 BART에서는 Text-infilling을 제안했는데 input text를 \( \textrm{span_length}  \sim \textrm{Poisson}(\lambda)\) 인 span으로 전체의 30%를 마스킹한 후에 인코더 인풋으로 넣는다. (학습 자체는 GPT와 같이 uncorrupted input에 대한 next-token-prediction으로 한다는 게 함정.. 그런데도 신기하게 infilling이 된다.) T5는 좀 더 일반적인 방식을 제안하는데 span masking을 하고 해당 masking에 들어갈 부분을 예측하는 것이다. 이 경우 input은 sentinel token이라 불리는 문장 내에서 unique한 토큰으로 (e.g. <extra_id_0>, <extra_id_1>,...) span-masking되고 target은 해당 span을 예측할 수 있도록 sentinel token 뒤에 정답 text가 연속해서 나오는 형태가 된다. 예를 들면,

Original : The cute dog walks in the park
Input : The <extra_id_0> walks in <extra_id_1> park
Target : <extra_id_0> cute dog <extra_id_1> the <extra_id_2>

예시에서 볼 수 있듯이 각 sentinel token은 여러 개의 subword로 구성되어 있을 수 있기 때문에 단순한 iid denoising에 비해 다양한 자연어 sementic을 학습시킬 수 있다. 실제로 T5는 당시에 XSUM 등의 conditional text generation task에서 SOTA를 찍음으로서 효과를 입증했다! 그러면 이런 다양한 사전학습 objective를 모두 사용하면 모델이 더 다양한 문맥적 의미를 학습해서 강인해지지 않을까? 이 질문에 대한 답을 제시한 것이 오늘 소개할 Universal Language Learning Paradigms 논문이다.

Mixture of Denoisers

Universal Language Learning(UL2)는 먼저 기존 연구에서 혼용되고 있던 architecture와 objective를 분리하고자 한다. architecture는 encoder-decoder 또는 decoder 중에 하나를 말하는데 논문에서 주장하는 바는 목적함수를 어떻게 설정하는 지가 가장 중요하고 이런 구조적 선택은 space-inference trade-off에 따라 선택하는 것을 추천하고 있다. 제안하는 목적함수의 유용성을 보이기 위해 저자들은 두 가지 architype에 대해 모두 실험을 진행하였다.

저자들의 주장은 "기존에 나온 다양한 사전학습 모델들의 목적함수는 전부 T5식 span-corruption으로 rough하게 표현할 수 있다"는 것이다. 예를 들어 mlm(masked language modeling) 같은 경우 T5에서 span-length가 1이고 target을 T5 식으로 표현하여 next-token-prediction으로 접근 할 수 있다. 이런 방식은 이미 제안되었으며 논문에서는 UniLM이라고 표현하고 있다. 또 clm(Causal Language Modeling)같은 경우는 전체 text를 span으로 바꿔버리면 표현이 가능하다. 유사한 방식인 plm(Prefix Language Modeling)도 앞의 일부 내용은 보고 있는 상태에서 중간부터 내용을 순차적으로 예측하는 방식인데 clm과 비슷하게 문장의 중간부터 끝까지를 span으로 치환하면 표현이 가능하다.



이런 모든 종류의 목적함수를 표현하기 위해 저자들은 세 종류의 denoiser를 제안한다. 먼저 R-Denoiser는 T5에서 쓰였던 Regular denoiser이다. 적절한 비율과 length를 가지고 주어진 문서를 masking한다. S-Denoiser(Special case of Denoising)는 PrefixLM을 위해 도입한 것인데, 문서의 중간지점(논문에서는 75% 지점)에서 끝까지를 전부 masking하고 해당 내용을 예측하도록 한다. 마지막으로 X-Denoiser는 Extreme denoiser의 약자인 만큼 매우 높은 비율로 문서를 masking하거나(50% 이상) span length가 긴 경우(8 이상)를 다루기 위해 도입되었다. Appendix에 있는 구현체를 봤는데 mixture를 구현하는 방식은 여러 세팅의 denoiser로 동일한 dataset을 각각 처리 한 뒤에 uniform하게 sampling하여 사용하는 것을 확인할 수 있었다. 

Universally Better Performance


논문에서는 다양한 목적함수들을 각각 encoder-decoder 및 decoder 구조에 적용하여 UL2와의 성능을 비교하였다. 
  • 전반적으로 ED 구조와 Decoder 구조간의 우위는 ED의 판정승인 것으로 보인다. 물론 저자들은 파라미터 수가 아니라 Compute-based(Throughput)로 유사한 구조와 매칭했기 때문에 ED 구조가 약 2배 정도 더 파라미터가 많다는 점은 감안해야 한다. 따라서 storage의 이슈가 없다면 ED 구조를 사용하는 것이 좋다고 조언하고 있다.
  • Decoder 구조에서 T5를 이긴 케이스는 UL2를 적용한 케이스밖에 없다. 이 관찰을 통해 목적함수가 architype보다 더 중요하다고 저자들은 이야기하고 있다.
  • GPT-like과 비교하면 UL2-decoder가, T5-like과 비교하면 UK2-ED 구조가 모든 task에 대해 universal하게 성능이 좋음을 확인할 수 있고 유의미하게 좋다. 특정 task의 성능을 올리기 위해 다른 task의 성능을 포기한 것이 아니기 때문에 Pareto-frontier를 밀어냈다고 표현할 수 있다. 

Mode Switching

저자들은 3가지 종류의 denoiser에 대해 prompting을 통해 모델에게 어떤 denoiser를 사용했는지 알려주는 방식으로 학습하였다. 실제로 inference를 할 때는 XSum같이 generation ability를 필요로 하는 경우 PrefixLM에 해당되는 [R] 프롬프팅을 하는 것이 도움이 되었다. 실제로 단순히 Span-corruption만을 이용해서 학습한 T5는 zero-shot text generation 능력이 현저하게 떨어진다. (Table 11 참조) Superglue의 경우에는 prompting이 크게 도움이 되지는 않는 것을 확인할 수 있었다. 

Reference

  • Universal Language Learning Paradigms

댓글

이 블로그의 인기 게시물

From In-context learning to RLHF (Feat. ChatGPT)

lassl을 이용한 언어모델 사전학습 (Feat. T5, UL2)

Wasserstein Auto-encoders (vs VAE)