learningAI
article thumbnail

지금까지의 연구들은 autoencoding models(BERT based), autoregressive models(GPT), 그리고 encoder-decoder models(T5)와 같은 다양한 pre-training architecture를 제안했다. 하지만 아직까지 NLU, unconditional/conditional generation task를 포함한 모든 NLP task에서 가장 좋은 모델을 개발되지 않았다. 이 문제에 도전하기 위해 해당 논문은 autoregressive blank infilling을 사용하는 General Language Model(GLM)을 제안한다. GLM은 2D positional embedding을 사용하여 blank filling pretraining을 개선하며, 결과적으로 NLU task에서 BERT, T5보다 우수한 성능을 보여준다. GLM은 마스킹 기법을 다르게 함으로써 다양한 task에서 좋은 결과를 보일 수 있었으며, 같은 크기의 GPT 모델을 앞서기도 했다. 또한 BERT-large의 1.25배의 파라미터 수를 가진 모델을 제안함으로써 best performance를 달성한다.

 

Limitations

BERT는 bidirectional pre-training 기법을 제안하며 NLU task의 성능을 향상시켰지만, MLM의 독립성 추론으로 인해 마스킹된 토큰 간의 연관성을 학습하지 못한다는 큰 단점이 존재한다. 또다른 BERT의 한계는 여러 개의 토큰을 적절하게 인코딩하지 못한다는 것이다. 길이가 $l$인 답변을 추론하기 위해서는 연속적인 예측을 해야 한다. 하지만 $l$을 모르는 상태에서는 [MASK] 토큰을 나열하기 위해 가능한 모든 길이를 나열해야 한다.

XLNet은 autoregressive LM으로 학습되었으며, 원본 입력 x에 대한 positional embedding을 사용하는데, 이 때문에 BERT와 동일하게 출력 길이 $l$을 알 수 없다. 또한 XLNet은 two-stream self-attention 기법을 사용하는데, 이는 pre-training의 계산 비용을 두 배로 증가시킨다.

T5는 GLM과 비슷한 blank infilling objective를 encoder-decoder Transformer에 적용시킨다. T5는 encoder와 decoder에 각각 다른 positional embedding을 사용하며 masked span을 구분하기 위해 multiple sentinel token이 사용된다. T5가 downstream task에 적용될 때는 단일 sentinel token만이 사용되는데, 이는 모델 용량의 낭비와 pretrain-finetune 비일관성을 야기한다.

UniLM은 모델을 여러 LM objective에 학습시키기 위해 모든 objective를 마스킹으로 구현하는데, 이 또한 BERT와 같이 [MASK] 토큰에 대한 연관성 학습을 제한시킨다. Finetuning에서도 동일하게 비효율적인 마스킹 기법을 사용한다.

 

Methods

GLM은 single Transformer를 사용하며 layer normalization과 residual connection의 순서를 바꿔 모델 성능을 향상시켰다. 출력 토큰 예측을 위해 single layer가 사용되었으며, ReLU 대신 GeLU 활성화 함수를 사용한다.

 

Autoregressive Blank Infilling

GLM은 autoregressive blank infilling objective를 사용해서 학습되었다. 입력 $x = [x_1, \cdots, x_n]$과 text spans $\{s_1, \cdots, s_m\}$이 주어질 때, 각 span $s_i$은 하나의 [MASK] 토큰으로 대체되며, $x_{corrupt}$를 생성한다. 모델은 마스킹된 span을 예측하기 위해 autoregressive하게 학습한다. 또한 left-to-right으로 고정하지 않고 마스킹된 token들 간의 연관성을 온전히 학습하기 위해 XLNet과 동일하게 permutation LM을 사용한다. $Z_m$이 가능한 모든 permutation이라고 할때, pretraining objective는 다음과 같다:

입력 $x$는 두개의 파트로 나뉜다:

  • Part A: 원본 입력에 마스킹이 적용된 $x_{corrupt}$가 해당된다. Part A의 토큰들은 서로에게 bidirectional하게 attend할 수 있지만, Part B의 토큰에는 attend할 수 없다.
  • Part B: Masked span으로 이뤄져 있으며, Part B의 토큰은 모든 Part A와 이전의 B에 attend할 수 있지만, 이후에 위치한 B에는 attend할 수 없다.

 

위의 그림은 autoregressive blank infilling의 전반적인 과정을 보여준다. 원본 입력은 $[x_1, x_2, x_3, x_4, x_5, x_6]$이며, 두개의 span $[x_3]$과 $[x_5, x_6]$이 마스킹된다. 그림에서 (b)는 Part A와 Part B의 분배가 이뤄지고 (c)에선 GLM의 추론 과정을 보여준다. (d)는 입력에 적용되는 self-attention mask이다.

 

Multi-task pretraining

GLM은 span masking setup을 달리하여 다음 두가지 objective를 제안한다:

  • Document-level: 원본 입력 길이의 50%-100%에 대한 균등한 분포에서 추출된 길이에 대해 single span을 마스킹한다. 해당 objective는 long text generation을 목적으로 세팅된다.
  • Sentence-level: 해당 objective는 마스킹되는 span이 full-sentence가 되도록 조건을 제시한다. Multiple span은 원본 입력의 15%에 대응되며 문장이나 문단을 완성시키는 seq2seq task에 겨냥하여 사용된다.

 

2D positional encoding

GLM은 autoregressive blank infilling의 positional information을 정의하기 위해 2D positional embedding을 사용한다. 2D positional embedding은 입력 token에 대해 두 가지 위치적 정보를 나타낸다. 위 그림의 (c)에서 확인할 수 있다. 첫번째 위치 정보는 $x_{corrupt}$에 해당한다. Maksed span은 해당 [MASK] 토큰이 위치한 위치 정보를 가진다. 두 번째 위치 정보는 span 내부에 대한 것으로 $x_{corrupt}$의 위치 정보는 0이 된다.

 

Finetuning GLM

GLM은 NLU classification task를 encoding 형태의 생성 task로 변형한다. 입력 $x$를 단일 mask token을 포함하는 cloze question c(x)로 변환하며, 자연어 형태의 패턴이 포함된다. Label $y$는 cloze의 답인 verbalizer v(y)로 변형된다. 위 그림은 감정 분석에 대한 task의 변형을 보여주며, 문장 뒤에 "It is really [MASK]"를 삽입함으로써 모델은 'positive'에 대응되는 'good' 혹은 'negative'에 대응되는 'bad'의 출력 분포를 계산하게 된다.

 

Experiments

위의 표는 SuperGLUE benchmark에서의 evaluation 결과이다. GLM 모델은 다른 baseline과 비교하여 가장 좋은 평균 수치를 보여준다. 몇 가지 task에서 다른 baseline 모델보다 성능이 떨어지기도 하나, 결과적으로 대부분의 task에서 가장 좋은 성능을 보여준다.

 

위의 표는 summarization task에서의 성능이며 XSum datasets에서는 다른 baseline 모델보다 우수한 성능을 보여주며, CNN/Daily Mail 데이터셋에서는 BART baseline 모델보다 성능이 조금 떨어지만, 비등한 성능 수치를 보여준다.

 

위는 SQuAD 데이터셋에서의 성능으로 RG-L 지표에서 0.6 차이로 아쉬운 성능을 보이며 나머지 지표에서는 가장 높은 수치를 기록했다.

 

Ablation study

Ablation study는 GLM에 사용된 method에 대한 영향을 실험하는 내용으로 구성되어 있다. Cloze finetuning을 제거한 모델의 성능은 GLM-large와 비교하여 7 포인트나 차이가 났고, permuation LM을 제거한 모델은 8.5 포인트가 차이났으며, T5에 사용된 sentinel token을 사용한 GLM 모델은 1포인트가 떨어졌다.

 

논문

https://arxiv.org/pdf/2103.10360.pdf

profile

learningAI

@YyunS

인공지능 공부하는 학생입니다!