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의 성능을 압도함