이번 게시물에서는 Encoder-Decoder 구조의 T5 model에 multi-task instruction fine-tuning을 적용한 model, T0를 제안한 논문인 Multitask Prompted Training Enables Zero-Shot Task Generalization 논문에 대해 다뤄보겠다.
원문 링크는 아래와 같다.
Introduction
최근 발표되는 LLM들은 language modeling objective로만 학습되지만, 겪어보지 않은 새로운 task에서도 좋은 성능을 낸다.
이에 대해 여러 가설들이 제안되어 왔는데, 그중 가장 영향력 있는 가설은 LM이 다음 token을 예측하는 과정(Language modeling) 속에서 pre-training corpus안에 있는 implicit task(암묵적 task)들을 학습한다는 것이다.
예를 들어, 아래와 같이 question-answer로 구성된 corpus를 학습하는 과정에서 Question Answering task 관련하여 간접적으로 학습이 되었을 것이라 추측할 수 있다.
이러한 현상은 model로 하여금 prompt로 변환된 held-out task에 대해 generalize 할 수 있는 능력을 가지게 한다. 그러나, 이는 model로 하여금 일정 수준 이상의 크기를 요구하며, prompt의 단어 구성에 대해 매우 민감하다는 한계가 존재한다.
(prompt로 변환된 held-out task란, 위에서 이야기했었던 겪어보지 않은 새로운 task이지만, prompt 형식으로 변형된 것을 의미한다. 예를 들면 아래와 같은 변형을 들 수 있겠다.
위 figure는 FLAN model을 제안한 논문의 figure이며, NLI task를 prompt(template)형식으로 변환하는 과정을 나타낸다.)
또한, pretraining corpus는 보통 웹사이트의 데이터를 이용하는 경우가 많은데(Ex. CommonCrawl), 여기에는 특정 task의 형태를 가진 data들 또한 존재한다. 아래 예시를 봐보자
이 경우, 아예 대놓고 Question Answering task와 같은 형태를 지닌다. 저자들은 이러한 사례들이 training시 직접적으로 특정한 task에 영향을 미치고, 이는 LM의 zero-shot generalization에 큰 영향을 미칠 것이라 추측한다.
지금까지의 이야기를 정리해보자면, pre-training corpus 내부에는 다양한 task관련 정보들이 녹아있으며, LM은 이를 바탕으로 training 되어 held-out task에 대한 zero-shot generalization ability를 가진다는 것이다.
만약 LM의 held-out task에 대한 zero-shot generalization ability가 이러한 implicit multitask learning에서 기인하는 것이라면, 아예 이러한 multitask learning을 추가적으로 실시한다면 model이 더 좋은 generalization ability를 갖출 수 있지 않을까?
저자들은 이러한 아이디어에 주목하여, 본 연구에서는 명시적으로 multi-task supervised training을 실시하여 성능을 향상시켜보려 하였다.
즉, pre-training된 LM에 다양한 task에 대한 dataset mixture를 추가적으로 학습시킨다는 것이다. 이를 통해 저자들은 거대한 model 크기를 필요로 하지 않으면서 held-out task에 대한 generalization ability를 향상하고자 하였다.
또한, 뒷부분에서 더 자세하게 다루겠지만, 기존 방법론의 한계 중 하나였던 prompt의 단어 구성에 대해 매우 민감하다는 점도 본 연구에서 해결하고자 하였다. 이를 위해 하나의 dataset example에 대해서, 다양한 prompt를 구성하여 training을 진행하였다.
저자들은 위와 같이 다양한 prompt로 구성된 multitask supervised training을 Encoder-Decoder 구조의 T5 model에 적용시킨, T0 model을 제안한다. 아래는 T0 model의 training-evaluation 과정을 나타낸 figure이다.
위 figure는 summarization task, sentiment analysis, question answering task를 prompt로 변형시켜 multitask supervised training을 진행한 이후, NLI task를 통해 zero-shot generalization 성능을 evaluation 하는 과정을 나타낸다.
지금까지의 내용을 정리해보자면, 저자들은 본 연구에서 아래와 같은 두 가지의 의문점을 다룬다
- Multitask prompted training은 held-out task에 대한 generalization을 향상하는가?
- 다양한 범위의 prompt로 학습하는 것은 model이 prompt wording에 대해 robust 하게 만들어주는가?
이에 대해 저자들은 아래와 같은 결과를 얻었다고 한다
- Multitask prompted training은 zero-shot generalization ability를 향상해 주며, GPT-3와 비슷하거나 더 좋은 성능을 얻었다
- Dataset에 대해 다양한 prompt를 구성하여 학습을 진행하면 성능이 향상되고, 여러 task에 대해서도 일관적으로 좋은 성능을 낸다
그렇다면, 이러한 결과들은 어떠한 방식으로 나오게 되었을까? 지금부터 이에 대해 차근차근 다뤄보도록 하겠다.
Measuring Generalization To Held-Out Tasks
저자들은 본 연구에서 다양한 NLP dataset들을 task별로 묶는다. 아래의 figure를 참고하자
또한 training때 경험하지 않은 새로운 task에 대한 zero-shot generalization을 측정하기 위해, traininig에서는 제외시키는 "held-out group of tasks"를 설정하였다. 이 "held-out group of tasks"를 구성하는 task와 해당 task를 held-out task로 둔 이유는 아래와 같다.
- NLI(Natural Language Inference task) : 인간의 경우에도 premise가 hypothesis에 entail 하는지 contradict 하는지에 대해 별다른 학습 없이 직관적으로 수행하기에, 이를 모방하여 model로 하여금 별다른 학습 없이 직관적으로 entail, contradict 구분 수행하도록 함
- Coreference resolution : NLI와 같은 이유로 held-out group of tasks로 지정
- Word sense disambiguation : NLI와 같은 이유로 held-out group of tasks로 지정
- Sentence Completion : NLI task와 비슷한 task라 판단하여 held-out group of tasks로 지정
추가적으로, T0 model을 학습시킬 때 GPT-3에서 evaluation 할 때 사용한 data는 사용하지 않았고, 이는 GPT-3와 공정한 zero-shot 성능 비교를 가능케 했다고 한다.
저자들은 위에서 언급한 held-out group of tasks뿐만 아니라, BIG-bench에 대해서도 evaluation을 진행하였다고 밝힌다.
A Unified Prompt Format
앞에서 언급된 모든 dataset은 prompt화 되어 model에 주어지게 된다.
(여기서 말하는 prompt는 input template과 target template pair를 의미한다)
아래의 figure는 prompt화 되는 과정을 나타낸다.
Figure를 보면, 하나의 data example이 다양한 형태의 prompt template으로 변환되는 것을 확인할 수 있다.
이렇게 다양한 prompt template으로 변환되는 것은 초반부에 이야기했던 prompt wording에 대해 robust 한 model을 만들기 위함이다. 본 연구에서는 이를 위해 36명의 human contributor를 통해 다양한 prompt template들을 만들었다고 한다.
이때, prompt format에 robust한 model을 training 하는 것이 목적이기도 하고, prompt를 효과적으로 만들어주는 요소도 불분명하기에 저자들은 contributor들에게 main guideline에 위배되지 않는 선에서, 자유롭게 다양한 prompt를 만들게끔 하였다.
main guideline은 아래와 같다.
- Prompt는 문법적으로 올바른 형태여야만 하고, fluent English speaker가 해당 task에 대해 사전 경험 없이도 이해할 수 있어야 함
- 명시적인 counting이나 numerical indexing은 제거되어야 한다
두 번째의 "명시적인 counting이나 numerical indexing은 제거되어야 한다"는 extractive QA task를 생각해 보면 된다.
Extractive QA task는 question과 passage(context)가 주어지고, question에 알맞은 답변을 passage 내부에서 추출하는데, 이때 추출되는 passage text의 start, end index를 output으로 산출한다.
Main guideline에서 이야기하는 것은, 원본 task가 위와 같은 경우라면, output으로는 index를 산출하게끔 prompt 구성을 하지 말고, 해당 추출되는 passage text 그대로 산출하게끔 prompt를 구성하라는 의미이다.
또한, 본 연구의 대부분의 prompt들은 dataset의 original proposed task로 prompt를 구성했지만, 해당 dataset에 대해 task를 바꾸어 prompt를 구성한 경우도 존재한다. 이를 non-original-task prompt라고 한다.
(예를 들면, text summarization task dataset의 경우, 원본 document가 주어지고 summary를 산출하는 task이다.(이 task를 original proposed task라고 한다.) 여기서 summary를 input으로 제공하고, document를 생성하도록 하게끔 task를 변경하는 행위를 의미한다. 이를 non-original-task prompt라고 한다.)
다만, 이러한 non-original-task prompt의 경우, model의 diversity를 향상하기 위해 training에는 포함하지만, original dataset에서 제안한 metric과의 호환 등의 문제로 인해 evaluation에서는 제외하였다고 한다.
Experimental Setup
지금부터는 T0 model 구조 및 학습 관련한 내용에 대해 다뤄보도록 하겠다.
Model
우선, 앞서 잠깐 언급했듯이 T0는 Encoder-Decoder 구조를 가진다. 기본적으로 T5를 baseline으로 하되, original T5의 경우 pretraining task가 corrupted span replace task이기에, prompted dataset을 이용한 text generation task와는 괴리가 발생할 수 있다.
따라서, 저자들은 T5에서 C4 dataset으로부터 기인한 100B의 추가 token으로 standard language modeling을 진행한 LM-adapted T5를 사용하였다고 밝힌다.
Training
T0의 경우, 이제까지 우리가 다뤘던 setting과 dataset으로 학습을 진행한 model이다.
T0+ model은 여기에 T0에서는 제외하였던, GPT-3의 evaluation에 사용된 data를 추가적으로 학습시킨 것이고, T0++는 RTE와 CB dataset을 제외한 SuperGLUE dataset들을 추가적으로 학습시킨 model이다.
또한, 세 model들은 모두 T5+LM의 11B 버전으로 초기화되었으며, 여기에 각각의 dataset들을 training 하여 model을 생성한다.
Training 시 checkpoint selection은 training dataset에서 split 한 validation set에서 가장 높은 score를 달성하는 것을 기준으로 하였다.
여러 task를 묶어서 하나의 multitask training mixture를 구성할 때 발생하는 각 dataset별 example 개수의 차이 문제는 기존 T5 model에서 제안한 Examples-proportional mixing 방법론을 사용하여 해결한다. 이에 대해서는 아래의 T5 논문 리뷰를 참고 바란다.
간단하게 말하자면, dataset size limit $를 설정하고, 해당 $보다 큰 dataset의 경우 $개만큼만 sampling 하고, 작은 dataset은 그대로 sampling 하는 방법론인 것이다.
본 연구에서는 $K$를 500,000/num_template(해당 dataset에 대한 template의 개수)으로 설정한다.
그 밖의 기타 항목은 아래를 참고 바란다.
- Input sequence length : 1,024
- Target sequence length : 256
- Batch size : 1,024 (Batch 하나당 $2^{20}$개의 token)
- Adafactor optimizer (learning rate : 1e-3)
- Dropout rate : 0.1
Evaluation
앞서 언급했듯이, 4개의 task(NLI, Coreference resolution, Word sense disambiguation, Sentence Completion)에 대응되는 11개의 dataset과 BIG-Bench의 14개 task에 대해 zero-shot generalization evaluation을 진행하였다고 한다.
또한, dataset에서 기인한 모든 prompt에 대해 성능측정을 한 뒤, 해당 값들에 대한 중앙값과 Q3-Q1 범위의 값을 통해 성능 측정을 했다고 한다.
Result
지금부터는 T0 model의 성능 측정 결과에 대해 살펴보도록 하겠다
본 논문 초반에서 제시된 두 가지 의문점인
- Multitask prompted training은 held-out task에 대한 generalization을 향상하는가?
- 다양한 범위의 prompt로 학습하는 것은 model이 prompt wording에 대해 robust 하게 만들어주는가?
에 대한 결과를 담았다.
Generalization To Held-Out Tasks
먼저, Multitask prompted training은 held-out task에 대한 generalization을 향상하는가? 에 대한 결과이다.
아래는 BIG-Bench를 제외한 4개의 held-out task에 대해 성능 측정을 실시한 결과이다.
우선, 단순 T5+LM과 비교했을 때, 본 연구에서 진행한 multitask prompted training이 매우 큰 폭으로 성능 향상에 영향을 미친다는 것을 확인할 수 있다.
GPT-3(175B)와 비교해 보면, 총 11개 dataset 중 9개의 dataset에서 GPT-3(175B)랑 비슷하거나 이보다 높은 성능을 보이는 것을 확인할 수 있다.
그런데, Winogrande와 HellaSwag dataset에서는 매우 저조한 성능을 보인다. 이에 대해, 저자들은 FLAN에서 제시한 것과 같이, 불완전한 문장을 마무리하는 task로 format 되는 task들에서는 instruction을 추가하는 것이 "Largely redundant"하여 발생한다고 말한다.
실제로 논문의 appendix를 찾아보면, instruction을 제거한 상태에서 training을 한 model에서는 HellaSwag에서의 성능이 향상되었다고 한다.
(Largely redundant에 대해, 개인적으로는 instruction이 있다고 하더라도, 결국 문장이나 문단을 완성하는 것은 language modeling이기에, instruction을 따르는 objective라기보다는 기존 language modeling objective로 인식하여 발생하는 현상이라고 생각한다. FLAN 논문에서도 이에 대해 다루기도 하였으니 같이 살펴보면 좋을 것 같다. 또한 전에 진행한 FLAN 논문 리뷰에서도 관련 내용을 작성한 적이 있으니, 아래 리뷰 링크를 참고하면 좋을 것 같다.)
이어서, 저자들은 4개의 held-out task뿐만 아니라 BIG-Bench에서 evaluation을 진행하였다. 이때는 T0뿐만 아니라 T0+, T0++ model도 비교 대상으로 넣었다.
이에 대한 결과는 아래와 같다.
위 figure에서 LM들은 Google에서 train 된 diagnositc baseline model들이며, Decoder-Only 구조의 아키텍처들을 standard language modeling으로 학습시킨 model들이다.
Strategy QA task 이외의 task들에서, T0, T0+, T0++이 baseline model들보다 더 좋은 성능을 낸 것을 확인할 수 있다.
또한, 그러지 않은 경우도 존재하지만, 통상적으로 training 한 dataset 개수가 많을수록 더 좋은 성능을 낸 것을 확인할 수 있다.
(T0 < T0+ < T0++)
Prompt Robustness
이어서, 다양한 범위의 prompt로 학습하는 것은 model이 prompt wording에 대해 robust 하게 만들어주는가?라는 질문에 대한 결과를 살펴보겠다. 저자들은 이를 위해 두 가지의 비교 실험을 진행하였는데, 이는 아래와 같다.
dataset에 대한 prompt개수를 $p$라고 하고, training에 사용된 dataset의 개수를 $d$라고 할 때,
- $d$를 고정하고 $p$의 개수를 다르게 한 비교 실험
- $p$를 고정하고 $d$의 개수를 다르게 한 비교 실험
먼저, $d$를 고정하고 $p$의 개수를 다르게 한 비교 실험이다. 결과는 아래와 같다.
우선, prompt의 개수가 1개인 경우에는 non-prompted baseline(T5+LM)과도 큰 성능차이가 나지 않는 점을 확인할 수 있다. $p=5.7$의 경우에는 전반적인 성능(중앙값)은 높아지긴 하지만, 성능 분포적으로는 아직 저점이 뚜렷하게 낮은 것을 확인할 수 있다.
$p=8.03$의 T0 setting의 경우, 성능 분포적으로나, 전반적인 성능(중앙값)으로나 향상된 모습을 볼 수 있다.
따라서, non-prompted baseline model에 prompted training을 진행하는 것이 성능적으로 이득을 가져다준다는 점을 도출할 수 있다.
이어서, $p$를 고정하고 $d$의 개수를 다르게 한 비교 실험 결과이다.
$p$는 모든 가능한 prompt의 개수로 고정한 다음, dataset의 개수는 T0, T0+, T0++에서 사용한 개수인 39, 49, 55개로 바꿔가며 비교 실험을 진행하였다.
결과를 보면, 흥미로운 점을 목격할 수 있다. 주목해야 할 점은 T0 setting과 T0+ setting이다. 두 setting 사이에는 10개의 dataset 개수 차이가 있는데도 불구하고, T0+의 성능 중앙값 결과와 성능 분포가 T0보다 좋지 않은 경우가 꽤 보인다(RTE, CB, ANLI)
이에 대해, 논문에서는 "추가적인 연구가 필요하지만, $d$를 늘린다고 해서 model이 prompt에 대해 일관되게 더 robust해지는 것은 아닌 것으로 보인다."라고 한다.
(이러한 결과에 대해 개인적인 의견을 말해보자면, 우선 T0++의 경우에는 모든 dataset에서 성능 중앙값 기준 더 좋은 성능을 내는 경향을 보이는 것을 확인할 수 있는데, 어쩌면 T0에서 T0+로 넘어갈 때 추가되는 training dataset인 GPT-3의 evaluation data에 문제가 있는 것은 아닌지 조심스럽게 말해본다.)
Comparing T0 and GPT-3's robustness
저자들은 T0 model과 GPT-3 model의 robustness에 대해서도 비교를 진행하였다.
그러나, GPT-3의 경우 dataset 하나당 하나의 prompt에 대한 결과만을 명시했기 때문에, 저자들은 OpenAI API를 이용하여 GPT-3의 결과를 산출하여, 그것을 T0 model의 결과와 비교했다고 한다.
RTE dataset을 이용하여, 10개의 prompt를 구축하고 prompt wording에 대한 robustness를 측정했을 때, T0 model의 결과가 성능의 중앙값으로나, 분포로나 더 좋은 결과를 냈다고 한다.
Conclusion
저자들은 본 연구를 통해 아래와 같은 결과를 도출했다.
- Multitask prompted training은 zero-shot generalization ability를 향상해 주며, GPT-3와 비슷하거나 더 좋은 성능을 얻었다
- Dataset에 대해 다양한 prompt를 구성하여 학습을 진행하면 성능이 향상되고, 여러 task에 대해서도 일관적으로 좋은 성능을 낸다
또한, T0 model과 prompt, prompt annotation tool도 공개한다고 하는데, 우선 model의 경우 아래 huggingface 링크에서 확인할 수 있으며
prompt와 prompt annotation tool의 경우 본 논문 appendix와 아래의 T0 공식 GitHub repository를 참고 바란다.
댓글