BART의 학습은 2단계로 이루어진다.
BART는 BERT(양방향 인코더), GPT(단반향 디코더), 최신 사전학습 schemes등 일반화 되어 있는 표준 Transformer 구조에 기반을 두고 있다.
무작위로 원본 문장의 순서를 섞거나 text의 일정 범위가 단일 mask 토큰으로 대체되는 in-filling 방식 등을 사용하여 가장 성능이 좋은 여러가지 노이징 방법에 대해 평가한다.
특히, BART는 generation과 comprehension task에 효과적이였으며 여러 부문에서 SOTA를 달성했다.
self-supervised method는 NLP에서 놀랄만한 성과를 달성해왔다.
가장 성공적인 접근법들은 마스크된 text들을 다시 복원시키도록 훈련하는 denosing autoencoders인 maked language models의 변형들이다.
최근 연구에서는 마스크 토큰들의 분포, 마스크 토큰들이 예측되어지는 순서, 마스크 토큰들을 대체할 수 있는 이용가능한 context등을 개선하여 얻는 이점들을 보여주었다. 하지만 이런 방법들은 전형적으로 특정 task에 초점을 맞추고 있기 때문에 모델의 사용성이 제한된다.
BART는 Transformer와 같이 Bidirectional과 Auto-regressive를 결합한 모델이며 광범위한 task에 사용할 수 있도록 denoising autoencoder로 구축된 sequence-to-sequence 모델이다.
BART의 Pre-training시에 사용하는 다양한 masking 기법들은 BERT에서의 마스킹이나 next sentence 예측에 대해서 일반화한다.
BART는 corrupted 문서를 original 문서로 매핑하는 denosing autoencoder이다.
기존 ReLU함수를 GeLUs함수로 바뀐것을 제외하면 Transformer의 구조를 사용하고 파라미터들은 로 초기화 시킨다.
base model에서는 인코더와 디코더에 6개의 layer를 사용하고 large model에서는 12개의 layer를 사용한다.
BERT와의 2가지 차이점
인코더의 마지막 hidden layer를 디코더의 cross-attention에 사용
BERT는 word-prediction 전에 feed-forward를 거치지만 BART는 거치지 않음
BART는 corrupted된 문서로 학습되어지고 디코더 output과 original 문서와의 cross-entropy loss로 최적화 된다.
특정 noising schemes에만 맞춘 기존 denoising autoencoder와 달리, BART는 어떠한 유형에서도 적용할 수 있다.
소스에 대한 모든 정보가 사라지는 극단적인 경우, BART는 language model과 동등하다.
BART에서 이전부터 제안되어온 마스킹 방법들과, 새로운 마스킹 방법들에 대한 실험을 진행했다.
사용한 방법은 총 5개 이며 아래와 같다.
Token Masking BERT와 마찬가지로 무작위로 토큰을 [MASK]토큰으로 바꿈
Token Deletion 무작위 토큰을 삭제함. Token masking과 달리,모델은 사라진 token에 대한 위치를 결정해야 함
Text Infilling 포아송 분포()에 따른 span을 하나의 [MASK]토큰으로 대체하며 길이가 0인 span도 [MASK]토큰으로 대체한다. 이 방식은 모델에게 얼마나 많은 토큰이 사라졌는지 예측하도록 한다.
Sentence Permutation 문서들은 문장으로 나누고 이 문장들은 무작위 순서로 섞는다.
Document Rotation 무작위로 균일하게 선택한 토큰이 문서들의 시작이 되도록 rotate시키고 이 방식은 시작토큰을 구별하도록 학습된다.
인코더, 디코더에 동일한 입력을 넣고 디코더의 마지막 토큰의 hidden state를 multi-class linear classifier에 넣고 분류하게 된다. BERT는 CLS토큰을 사용하는것과 유사하지만 BART는 디코더를 사용하기 때문에 모든 정보를 담기 위해 마지막에 토큰을 추가하여 이 토큰으로 task를 수행한다.
완전한 문서를 인코더와 디코더에 사용하고, 디코더의 맨 위의 hidden state값을 사용하여 각각의 단어에 대한 representation으로 사용하여 분류를 수행한다.
BART는 autoregressive 디코더를 가지고 있기 때문에 QA, summarization처럼 seqeunce generation task에 바로 fine-tune을 수행할 수 있다.
이 두 task에서 정보는 입력에서 복사되지만 변형되며, 이것은 denoising pre-training objective와 밀접한 관련이 있다. 인코더 입력은 input 시퀀스이며 디코더는 자동으로 output을 생성합니다.
이전 연구에서 사전훈련된 인코더를 추가하여 모델의 성능이 향상되는 것을 보여주었지만, 사전훈련된 디코더로부터 얻는 이점은 제한적이였다.
서브텍스트로 부터 학습된 새로운 인코더 파라미터를 추가함으로, BART모델이 사전학습된 디코더로 사용할 수 있는게 가능하다.
더 정확하게는, 랜덤하게 초기화된 인코더로 인코더의 embedding layer를 대체한다.
이 새로운 인코더에 영어로 de-noise할 수 있는 input으로 영어가 아닌 외국어가 맵핑된다.
이 인코더의 학습은 2 step으로 이루어진다.
BART의 파라미터는 freeze하고 무작위로 초기화된 인코더, positional embedding, BART인코더의 첫번째 layer의 self-attention input projection만 업데이트한다.
작은 iteration으로 모든 모델의 파라미터들을 학습한다.
BART는 사전학습하는 동안 이전 연구들보다 더 넓은 범위의 nosing schemes를 지원한다.
base-size model을 이용하여 여러 옵션들을 비교해보고, 여러 task에 대하여 평가한다.
다양한 pre-training objectives가 제안된 반면, 데이터나 resources, 구조적 차이, fine-tuning 과정의 차이가 달라 공평하게 평가하기가 어려웠다.
여기서는 discriminative와 generation task에 대해 최근 제안된 pre-training 접근법을 평가한다.
가능한 pre-training objective와 관련이 없는 차이에 대해서만 조절을 하는 것을 목표로 하지만 성능향상을 위해 학습률와 layer normalization을 약간 조절한다.
아래에 있는 모델들과 비교한다.
GPT와 유사하게, left-to-right Transformer language model을 학습한다.
이 모델은 cross-attention을 제외한 BART의 디코더와 같다.
XLNet을 기반으로, 토큰들의 만큼 샘플링하고 무작위 순서로 autoregressive하게 생성한다.
다른 모데륻ㄹ과 일관성을 위해 XLNet의 상대적인 positional embedding, attention across segment를 구현하지 않았다.
BERT를 따라, 토큰들의 를 [MASK]토큰으로 대체하고 원래 토큰을 독립적으로 예측하도록 모델을 훈련시킨다.
UniLM과 마찬가지로, 추가적인 self-attention masks를 가진 Masked Language Model을 학습한다.
Self attention masks는 확률에따라 무작위로 선택된다.
MASS에 감명을 받아, 토큰의 의 span을 마스크하고 마스킹된 토큰을 예측하기 위해 seq-to-seq 모델을 학습시킨다.
Performance of pre-training methods varies significantly across tasks
Token masking is crucial
Left-to-right pre-training improves generation
Bidirectional encoders are crucial for SQuAD
The pre-training objective is not the only important factor
Pure language models perform best on ELI5
BART archieves the most consistently strong perfomance
ELI5를 제외하고서는,Text-infilling을 사용한 BART가 모든 task에서 성능이 좋다.
RoBERTa와 같은 scale을 사용하여 BART를 훈련시켜 실험한다.
12개의 layer와 1024의 hidden size를 가진 large-model을 사용한다.
RoBERTa처럼 8000의 batch size, 500,000 steps를 진행하고 BPE를 사용한 tokenizer를 사용한다. base model에서 확인한것처럼 text infilling과 sentence permutation을 사용한다.
토큰의 를 마스킹하고, 모든 문장을 permute한다.
비록 문장 permutation은 CNN/DM 데이터셋에서만 이점이 있지만, 사전학습된 large model은 이 task로 부터 더 잘 이용할 수 있을거라고 가정했다.
데이터에 더 잘 학습하기 위해, training steps의 마지막 에서 dropout을 사용하지 않았다.
SQuAD, GLUE task에 대한 BART의 성능을 평가했을 때, 같은 소스로 사전학습 된 RoBERTa와 유사한 성능을 보인다.
fine-tuning과정에서 label smooting(parameter 0.1), beam size를 5, beam search에서 중복된 trigrams를 제거, validation set에 min-len, max-len, length penalty를 조정했다.
CNN/DailyMail, XSum 데이터셋을 사용한다.
CNN/DailyMail에서의 요약은 원본 문장들과 유사한 경향이 있다.
추출 모델들은 소스 문장들의 첫번째에서 세번째 문장이 요약문장인 이 데이터에서 잘 작동한다.
XSum은 abstractive한 데이터이며 추출모델들은 이 데이터에서 잘 작동하지 못한다.
BART는 이 두가지 데이터에 대해서 이전 연구들보다 더 좋은 성과를 보여주었다.
ConvAI 데이터에서 BART가 가장 좋은 성능을 보여준다.
ConvAI는 페르소나가 제공되는 데이터이다.
ELI5 데이터셋을 사용했으며 BART가 좋은 성능을 보여주었다.하지만 대답이 질문에 구체적이지 않기 때문에 더 연구가 필요하다.
WMT16 Romanian-English 데이터셋을 사용하여 평가했다.
앞서 소개한 방법을 토대로 6개의 layer를 가진 Transformer encoder를 Romanian과 매핑하여 사용한다. Transformer의 large model을 baseline으로 삼아 비교한다. back-translation이 포함된 데이터를 사용하면 효과가 좋았지만 아닐 경우 성능이 떨어진다.
BART는 요약부문에서 큰 성능향상을 보여주었다. 특히 사전학습으로 backgroud knowledge을 활용하여 요약을 하는것을 볼 수 있다.
corrupted된 데이터를 original데이터와 매핑하여 사전학습된 BART discriminative task에서는 RoBERTa와 유사한 성능을 보였으며 반면 generation task들 중 여러 부문에서 SOTA를 달성했다.
앞으로의 연구는 corrupted데이터를 위한 새로운 방법들의 연구가 필요하다.