Data Science/Paper Review

[P-tuning] GPT Understands, Too (2021) 논문리뷰

준나이 2023. 5. 13. 04:29

Abstarct

  • Problem: 전통적인 fine-tuning이 적용된 GTPs는 NLU tasks에서 좋은 performance를 보여주지 못함
  • P-tuning: 학습가능한 trainable continuous prompt embedding을 도입하여, NLU tasks에서 BERT 계열 모델들에 상응하거나 이를 상회하는 성능을 이끌어냄
  • benchmarks: LAMA (knowlege probing) benchmar, SuperGLUE


1. Introduction

pre-trained language model(PLM)의 한계 (특히 GPT)
  • LM을 pre-training 하는 것은 많은 tasks를 통해 성능이 증명됨
  • pre-training을 통해 LM은 contextualised text representation을 학습할 뿐만 아니라, grammar, syntactic, commonsense, 그리고 world-knowledge 또한 습득할 수 있음
  • training objective에 따라 pre-trained model은 3가지로 구분가능
  • unidirectional LM for NLG (GPT), bidirectional LM for NLU (BERT), hybrid LM for combining two paradigms (XLNet)
  • GPT 계열의 모델들은 NLU 관련 tasks에서 뛰어난 성능을 보여주지 못해서, GPT는 NLU에 적합하지 않다는 편견이 존재함
Prompting의 한계
  • GPT3와 hand-crafted prompts를 이용한 few-shot learning은 GPT 모델도 NLU tasks에서 충분히 좋은 성능을 낼 수 있음을 보여줌
  • 하지만 best performance를 낼 수 있는 prompt를 손으로 구성하고 찾는건 (impractically) 매우 힘든일이고 수많은 validation set을 필요로 함
  • prompt engineering은 overfitting을 초래하고 adversarial prompt를 허용함
  • 그래서 최근 연구들은 자동으로 discrete한 형태의 prompts를 찾는데 관심이 집중돼있으나, NN 자체가ㅏ continuous한 값을 다루기 때문에 성능이 sub-optimal 하다는 한계가 있음
P-Tuning
  • continuous한 형태의 prompt를 찾아서 GPTs와 NLU tasks 사이의 가교 역할을 함
  • 적은 수의 continuous free parameters를 prompt로 이용해서 pre-trained model의 input으로 넣어줌
  • continuous prompts는 gradient descent를 통해 optimisation 됨
Experiment
  • knowledge pobing: PLM의 parameter는 fixed 시킨 상태에서 hancraft prompts와 p-tuning 비교
  • SuperGLUE: few-shot과 full-superivsed settings에서 p-tuning과 fine-tuning 방식 비교
contributions
  • GPT가 NLG에만 강하고 NLU에는 취약하다는 편견을 없앰
  • P-tuning이 적용된 BERT 계열, GPT 계열 모델이 few-shot과 fully-supervised settings에서 모두 좋은 성능을 내는걸로 보아 pre-tuning 단계에서 예상보다 더 많은 world knowledge와 prior-task knowledge를 얻는 걸 알 수 있음


2. Motivation

  • GPT3와 DALLE로 인해, 거대한 모델이 만병통치약인것처럼 여겨졌지만, 그 뒤에는 challeges가 존재했음
  • handcrafted prompts가 모델이 downstream tasks를 잘 처리할 수 있도록 하지만, handcrafted prompts를 찾는 것은 수 많은 validation set을 요구하고 performance 또한 일관되지 않음
  • 단순히 prompt 내 token의 위치가 하나만 바껴도 모델 결과가 너무 많이 달라짐
  • 이러한 문제 떄문에 최근 연구들은 discrete한 형태의 prmpts를 자동으로 찾을 수 있도록하는데 초점이 맞춰져 있음
  • mining training corpus, gradient searching, using seperate model 등의 기법이 이용됨


3. Method: P-tuning

  • P-tuning은 discrete한 prompts와 유사하지만 input을 직접적으로 바꾸지 않고, pre-trained 모델의 input embedding을 미분가능한 output embedding으로 바꿈(?)

3.1. Architecture

  • pre-trained model을 $\mathcal{M}$ 이라고 했을 때, discrete한 tokens의 sequence로 이루어진 $\mathbf{x}_{1:n} = \{ x_0, x_1,\ldots, x_n \}$은 pre-trained embedding layer $\mathbf{e} \in \mathcal{M}$에 의해 input embedding 형태 $\{\mathbf{e}(x_0), \ldots, \mathbf{e}(x_n)\}$ 로 mapping 됨.
  • 특정 시나리오에서 context $\mathbf{x}$에 대한 조건으로 downstream tasks를 위해 target tokens $\mathbf{y}$의 embedding 값을 사용하기도 함
  • e.g. pre-training: $\mathbf{x}$ = unmaksed tokens, $\mathbf{y}$ = [MASK]
  • e.g. sentence classification: $\mathbf{x}$ = sentence tokens, $\mathbf{y}$ = [CLS]
  • prompt $\mathbf{p}$의 역할은 prompt 자신과, context $\mathbf{x}$, target $\mathbf{y}$를 template $T$ 형태로 정리한 것
  • 예를 들어 한 나라의 수도를 예측한다고 했을떄, template은 "The capital of Britain is [MASK]"가 될 것이고, "The capital of ... is ..."는 prompt, Britain은 context, [MASK]가 target이 됨.
  • prompt는 flexible 해서 context을 넣을 수도 있고 target에 넣을 수도 있음
  • $\mathcal{V}$는 vocabulary를 의미하고 $[P_i]$는 $T$ 내 ith prompt token 임
  • 결과적으로 Template은 다음과 같은 형태가 됨 :
    $$T = \{ [P_{0:i}], \mathbf{x}, [P_{i+1:m}], \mathbf{y} \}$$
  • $[P_i] \in \mathcal{V}$를 만족하는 discrete한 prompts의 template은 다음과 같은 형태가 됨 :
    $$T = \{ \mathbf{e}([P_{0:i}]), \mathbf{e}(\mathbf{x}), \mathbf{e}([P_{i+1:m}]), \mathbf{e}(\mathbf{y}) \}$$
  • $[P_i]$가 pseudo tokens처럼 간주되는 P-tuning은 다음과같은 형태가 됨
    $$T = \{ h_0, \ldots , h_i, \mathbf{e}(\mathbf{x}), h_{i+1}, \ldots , h_m, \mathbf{e}(\mathbf{y}) \}$$
  • 여기서 $h_i(0<i<m)$는 학습가능한 embedding tensor이고 다음 downstream loss function $\mathcal(L)$에 의해 optimisation 됨
    $$\hat{h}_{0:m} = arg \min_h \mathcal{L(M(\mathbf{x, y}))}$$

3.2. Optimisation

두 가지 optimisation challenges
  • Discreteness: $\mathcal{M}$의 original embedding layer $\mathbf{e}$는 pre-training을 거치면서 discrete 하게 변했는데, 그에 반해 $h$는 random distribution으로 initialisation 돼서 SGD에 의해 optimised 되는데, 이는 local minima에 빠질 가능성이 높음
  • Associations: prompt embedding $h_i$의 값이 서로 의존적이어야 하기 떄문에, $h_i$를 서로 연결시키는 mechanism이 필요함
  • Discreteness와 Association problems 모두 해결하기 위해, P-tuning에서는 매우 작은 NN으로 구성된 prompt encoder를 이용해서 $h_i$를 생성
prompt encoder
  • prompt encoder로 bidirectional LSTM 구조에 discreteness를 촉진시키기위해 two-layer MLP와 ReLU를 사용
  • real input embedding $h_i$는 다음과 같이 유도됨
    $$h_i = MLP([\overrightarrow{h_i}]:[\overleftarrow{h_i}]) = MLP([LSTM(h_{0:i}):LSTM(h_{i:m})])$$
  • LSTM 떄문에 parameter 수가 더 추가 되지만 $\mathcal(M)$에 비하면 훨씬 작음
  • inference 시에는 LSTM은 무시하고 $h_i$만 사용하면 됨
anchor tokens
  • anchor tokens를 추가하는 것이 NLU tasks에 도움을 줌.
  • 각각의 component를 characterise 시키는 역할을 함
  • e.g. RTE Task, [PRE][prompt tokens][HYP]?[prompt tokens][MASK]처럼 ?를 anchor token으로 사용할 수 있는데, 이는 [HYP]가 의문형이라는 것을 나타내고 나아가 성능에 큰 영향을 끼침


4. Experiments

4.1. knowledge probing

  • fact retrieval이라고도 불리며, PLM이 pre-tuning을 통해 얼마나 많은 world knowledge를 습득했는지 평가하기 위해 사용
  • LAMA: knowledge-base에서 뽑아낸 triples로 빈칸 맞추기 test를 하는 dataset
  • e.g. triple(Dante, born-in, florence) -> "Dante was born in [MASK]"
4.1.1. Datases and Formulation
Datasets
  • LAMA는 모든 정답을 single-token format으로 답해야함
  • GPT와 BERT가 커버하는 vocabularies가 다르기 때문에, 두 vocabularies의 intersection으로만 이루어진 dataset 구성
  • prompt searching은 prompts를 찾기위해 data가 추가로 더 필요한데, 이는 AutoPrompts에서 사용된 setting을 따라서 추가로 prompts 학습
Evaluation
  • LAMA는 hand-crafted prompt를 task 마다 제공
  • bidirectional masked LMs: [$textbf{x}$] = subject entity, [$textbf{y}$] = [MASK]
  • unidirectional masked LMs: TransformerXL에 사용된 LAMA의 original setting을 따름, model의 output을 target position 전에 사용
  • template: (3, sub, 3, obj, 3) or (3, sub, 3, obj) (3은 prompt tokens 갯수)
  • anchor token은 사용하지 않음
4.1.2. Results:
General performance
  • P-tuning의 성능이 기존의 결과를 압도하면서, parameter를 frozen된 상태로 prompt learning만으로 더 많은 knowledge를 얻을 수 있다는 것을 보여줌
  • discrete prompt를 찾는 AutoPrompts보다도 훨씬 더 나은 성능을 보여줌
P-tuning v.s. Fine-tuning
  • 질문: unidirectional models과 bidirectional models에 P-tuning이 적용 됐을 때, 향상되는 성능의 정도가 비슷한가?
  • methods: manual prompt (MP), fine tuning (FT), MP+FT, P-tuning
  • P-tuning > fine-tuning based methods: catastrophic forgetting 발생
  • MP+FT에서 BERT에 비해 GPT는 큰 효과를 보지 못함
  • P-tuning은 unidirectional LMs와 좀 더 밀접한 관계를 갖고 있음
  • megatronLM은 아예 FT을 OOM 때문에 진행할 수 없음

4.2. SuperGLUE

  • 8개의 NLU tasks로 실험

  • NLU tasks는 빈칸 채우기 문제로 재구성

  • fully-supervised setting

    • $\mathcal{D_{train}}$과 $\mathcal{D_{dev}}$를 이용해서 hyper-parameter tuning 및 model selection을 함
  • few-shot setting
    • SuperGLUE few-shot 버전인 FewGLUE 사용
    • 각 task마다 32개의 training dataset $\mathcal{D_{train32}}$와 $\mathcal{D_{unlabelled}}$ 존재
    • 사용하지 않는 training set 중에 32개를 임의로 뽑아서 $\mathcal{D_{dev32}}$ 구성 (성능에 큰 영향을 끼침)
    • FT, PET FT, PET zero-shot 등 여러 methods와 함께 비교
  • P-tuning은 unidirectional, bidirectional 모두 적용가능하고 공정한 비교를 위해 size가 비슷한 모델끼리 비교
4.2.1. Fully-supervised Learning
  • BERT 계열 모델의 경우 대부분의 tasks에서 P-tuning이 MP, FT, FT+MP의 성능을 뛰어넘음
  • 성능이 안 좋게 나온 이유는 해당 task에 사용된 data가 많아서 FT에 더 유리한 환경이었으리라 예쌍
  • GPT 계열 모델들도 좋은 성능을 보여줌
  • P-tuning은 NLU task에 대해서 unidirectional, bidirectional 성능을 모두 올려줌
  • P-tuning이 적용된 BERT 계열과 GPT 계열 모델들의 성능을 비교했을 떄, 오히려 GPT가 더 높은 성능을 보여 줌으로써 앞서 말한 편견을 없애는데 기여
4.2.2. Few-shot Learning
  • PET/iPET는 기존에 SuperGLUE에서 SotA 달성 (효율적이지만 노가다를 많이 필요로 하고 sub-optimal함)
  • few-shot learning은 semantics, format, grammar와는 상관관계가 뚜렷히 없음 (LM과 사람의 시각이 다름을 보여줌)
  • manual prompt에서의 약간의 변화도 성능에 지대한 영향을 끼침
  • best-performing prompt를 찾는건 불가능에 가깝고, continuous한 형태의 P-tuning이 더 우수함
  • 공정한 비교를 위해 PET에 적용되는 data agumentation, ensemble, distilation 등을 제거하고 model selection과 hyper-parameter tuning의 영향을 없애기 위해 $\mathcal{D_{dev32}}$로 재실험
  • P-tuning이 모든 tasks에서 PET의 성능을 압도함