It's not just size that matters: Small language models are also few-shot learners journal (NAACL, 2021)의 선행연구격 되는 논문. It's not just size that matters... 보다 PET에 대한 설명이 잘 되어 있으므로 먼저 읽는 것을 추천
https://github.com/timoschick/pet
어렵기는 한데, task description이 있으면 쉬워질 것. task description이란 task가 뭔지 understand하게 도와주는 textual explanation. GPT2나 Zero Shot with Generative LM 같은 논문에서 보면 input에다가 description을 append하는 형태로 zero shot 진행(이거 더 찾아봐야 하는데 귀찮아서 못 봤음)
task description & standard supervised learning을 combine, few-shot에 이용하였음. PET를 input을 'cloze stype phrase'로 reformulate해서 training 진행한 'semi-supervised training procedure'라고 정의하였음
<Notation>
: masked language model (MLM)
: Vocabulary of MLM
____: masked token, ____
: target classification task 의 set of labels, e.g. binary classification이라면 있음
: input of task , sequence ()로 이루어져 있음 (, )
: pattern (function, ), 에는 오직 하나의 mask token이 들어가게끔 함 (그래야 cloze question이 되니깐)
: verbalizer (function, ), 각 label()를 MLM 의 Vocabulary 로 mapping
(PVP):
input 에 대한 label 를 예측
PVP 가 개입
input: (from separate sequences to one cloze question sequence)
output: (from label to token)
MLM , cloze question type sequence 에 대해 masked token ___ 의 token 를 예측
task A: two sentences a, b가 서로 contradict인가 (binary classification)
input : = ("Mia likes pie", "Mia hates Pie")
output : refers to "Yes", refers to "No"
task A': label assigning에서 answering for the masked position으로 변경
input : = "Mia likes pie? ___, Mia hates pie."
output "Yes", "No"
<Notation>
: pattern-verbalizer pattern (PVP),
: small training set
: larger set of unlabeled examples
: sequence,
: sequence 에 token 가 들어갈 unnormalized 확률
: 는 의 softmax over labels
MLM 에 대한 PVP 의 finetuning 시 loss: 와 true distribtion of training example 의 cross entropy
few training example이 너무 쪼만해서 pretrained language model (PLM)은 본질적으로는 LM임. auxiliary task로 language modeling으로 만듦
final loss는 다음과 같이 계산됨:
where refers to cross entropy loss, refers to language modeling loss
이 워낙 클 거라 를 엄청나게 작게 하는데, 여기서는 를 사용(실험 결과가 좋았다고 함)
language modeling을 위한 sentence 획득에 unlabeled set 를 사용했지만, 를 바로 넣지는 않았고, 넣었고, masked slot에 predict하는 것을 task로 하지는 않았음(그럼 MLM 학습 어떻게 한 거여..?)
large dev set이 없다는 게 challenge라서 PVP가 잘 작동하는지 확인이 어려움. knowledge distillation의 strategy를 활용했음
, a set of PVPs를 만들고 다음과 같이 사용
separate language model 를 각 에 대해 3.1의 과정으로 finetune함. 가 작아서 PVPs 갯수가 많아도 computing 비용이 적음
finetuned models로 구성된 ensemble 을 써서 를 annotate함. 각 example 에 대해 unnormalized class score를 아래와 같이 구하고, softmax 씌워서 를 구함. temperature 으로 설정. 이렇게 모든 pairs 를 soft-labeled training set 를 구성:
where and 는 weighting terms
("uniformed") or = accuracy obtained using on the training set before training ("weighted")
Pretrained Language Model (PLM) 에다가 standard sequence classification head on 를 이용해 finetune. 이렇게 finetuned된 PLM 가 task A에 대한 classifier model이 되겠음
앞에서처럼 각각의 model의 distilled knowledge가 single classifier C로 흘러들어가는 구조는 개개의 model이 서로로부터 학습을 할 수 없는 구조임. 게다가 한 pattern이 다른 pattern보다 perform worse라면, soft-labeled training set 에는 mislabeled된 example이 많을 것임. 이걸 극복하기 위해 iterative PET, 즉 iPET가 등장함. iPET의 core idea는 점점 커지는 데이터셋에 대해 several generations of models를 train하는 것
여기서 small labeled training dataset 는 unlabeled large dataset 에서 example 몇 개 뽑아와서 random subset of trained PET models로 labeling해서 섞는 식으로 크기를 늘려감. 그리고 더 커진 training dataset 에 대해 new generations of PET models를 학습시킴. 이게 몇 번이고 반복되는 것
은 3.3 의 1. 식으로 에 finetuned된 initial set of PET models. 는 PVP 에 대해 학습한 -th generation of model 임. 각 iteration마다 training set의 size는 fixed constand 배수만큼 늘어나며, label ratio는 original dataset과 동일하게 맞춰짐. 그래서 을 training dataset 의 label 에 해당하는 examples 갯수라고 하면, 각 는 label 마다 만큼의 examples를 갖게 됨(그냥 당연한 말이야!). 는 다음과 같이 생성됨
PET models를 generation만큼 training한 이후, 로 soft-labeled training dataset 만들고, classifier model 를 train 하였음
iPET은 zero-shot setting에도 사용될 수 있음. 를 untrained models로 정의하고 for all 해서 이 10 examples evenly distributed on all labels에 대해 학습할 수 있도록 함. 이 label 에 대해 적정 숫자의 example을 확보하지 못할 가능성도 있어서 의 100 examples를 .... 하 시바