BART는 Bidirectional Auto-Regressive Transformer를 의미하는 약어입니다. Transformer를 활용해 문장 토큰들을 Bidirectional Encoding하는 BERT와 Auto-Regressive하게 Decoding하는 Generative 모델인 GPT를 합친 모델입니다. 많은 Sota 모델이 Encoder와 Decoder 하나만을 이용한 아키텍쳐였던 것에 반해 BART는 encoder와 decoder 모두를 활용하였습니다. 특히 Transformer의 Encoder-decoder 구조와 같지만, 여러 pre-training task를 적용하고 비교해봄으로써 pre-training의 중요성을 강조했습니다.
사전학습을 어떻게 수행하는지에 따라 모델의 성능에 큰 차이를 비교해서 잘 설명한 논문입니다.
Self-supervised method는 NLP task에서 괄목할만한 성과를 보여주었다. 특히 랜덤으로 문장 내 토큰 집합을 마스킹하고 복원하도록 훈련하는 denoising autoencoder 방식인 Masked LM이 가장 성공적인 접근 방식이다. 그래서 BERT이후 마스킹을 하는 방법에 대한 여러 연구가 있었다. 하지만, 이런 방식들은 전형적으로 특정 task(span prediction, generation, etc)에만 집중되었고, 다른 task에의 적용이 제한되었다.
BART는 Bidirectional과 Auto-Regressive Transformer를 합친 모델이다. Seq-to-seq 모델로 만들어진 denoising autoencoder이고, 광범위한 task에 적용이 가능하다. 사전학습은 두 단계로 진행이 되는데,
BART의 핵심 장점은 텍스트 길이의 변화 등 임의의 변형을 원본 텍스트에 적용할 수 있는, noising 유연성이다. 본 논문에서 여러 noising 방식을 실험하고 평가했는데, 원본 문장의 토큰 순서를 랜덤하게 섞고 문장의 임의의 길이를 하나의 마스크 토큰으로 대체하고 채우는 새로운 방식이 가장 좋은 성능을 보여주는 것을 발견했다. 이런 접근법은 BERT의 원래 단어를 마스킹하고 다음 문장 예측 objective를 일반화한 것으로, 모델이 전체 문장 길이에 대해 더 많이 추론하도록 하고 더 긴 범위의 변형(복원)을 하도록 한다.
BART는 fine-tuning했을 때, text generation에 효과적이었고 comprehension task에서도 잘 작동했다. GLUE, SQuAD에서 RoBERTa와 비슷한 성능을 보여주었고, abstracitve dialogue, question answering, summarization task에서 Sota를 달성했다.
또한, BART는 fine-tuning에 대해 새로운 방식을 제시했다. BART 모델에 단지 몇개의 추가적인 transformer 레이어를 쌓는 방식의 기계 번역의 새로운 방법을 제시했다. 추가한 레이어는 BART의 전파에 의해 외국어가 noised된 영어로 번역되도록 학습되고, BART는 target-side의 사전 학습된 언어모델로 사용한다.(실험에서 좋은 성능)
BART의 이러한 효과를 이해하기 위해, 최근에 제안된 학습 objectives를 가져와 ablation 실험을 수행했다. 이 결과는 data, optimization parameters를 포함한 다양한 요소들을 신중하게 컨트롤할 수 있도록 해준다. BART는 우리가 고려하는 다양한 범위의 task에서 일관되게 좋은 성능을 보여주고 있었다.
BART는 손상된 문서를 원래의 문서로 복원하는 denoising autoencoder이다. 손상된 텍스트를 받는 Bidirectional encoder와 left-to-right의 autoregressive decoder로 구성된 seq-to-seq 구조이다. 사전학습을 위해 negative log likelihood을 최적화하였다.
BART는 표준 seq-to-seq Transformer 아키텍처를 사용하는데, 기존 GPT에서와 다르게 ReLU를 GeLUs로 바꾸고 parameters를 로 초기화했다. BART base 모델에서는 6개의 encoder-decoder를, large 모델에서는 12개의 encoder-decoder를 사용했다. 이 아키텍처는 BERT와 상당히 비슷하지만 2가지의 차이가 있는데,
BART는 BERT보다 10% 더 많은 parameters를 가지게 된다(cross-attention layer에 의해).
BART는 문서를 손상시키고 decoder가 원래의 문장으로 복원하도록 하며, cross-entropy loss를 최적화하도록 학습한다. 기존에는 특정한 방식으로 노이징된 방식의 denoising autoencoder를 사용한 것과는 달리, BART는 문서를 손상시키는데 어떤 방식이던 적용할 수 있다. 극단적으로 원본 소스가 없는 상황에서, BART는 언어모델과 동일하게 작동한다.
저자들은 이전에 제안된 방법 및 새로운 여러 변형과 함께 실험했고, 다른 새로운 변형 기법을 개발하는 것이 (모델의 발전에) 상당한 가능성이 있을 것이라 한다. 다음은 실험에 사용된 변형들이다.
BART에 의해 생성되는 representation은 여러 다운스트림 어플리케이션에 적용될 수 있다.
Sequence 분류 task에서는 동일한 문장을 encoder와 decoder에 넣어주고, 이후 마지막 decoder 토큰의 마지막 hidden state를 새로운 multi-class 선형분류기에 던져준다. BERT의 CLS와 비슷하지만, 본 논문에선 문장 끝에 추가적으로 토큰을 추가하여 decoder의 토큰 representation이 전체 입력된 decoder states를 attend할 수 있게 한다.(마지막 output이 모든 입력을 반영)
SQuAD와 같이 문장 내 정답의 endpoint를 찾아야 하는 token classification task을 위해 본 논문에선 완전한 모든 문서를 encoder와 decoder에 주고, 이후 decoder의 가장 위에 있는 hidden state를 각 단어의 representation으로 사용했다. 이 representation은 토큰을 분류하는데 사용된다.
BART는 autoregressive decoder를 가지고 있기 때문에, abstractive question answering and summarization과 같은 generation task를 바로 fine-tuning할 수 있다. 이러한 task들은 입력 sequence가 복사되거나 조작될 수 있는데, 이는 denoising pre-training objective와 밀접한 연관이 있다. Encoder 입력은 입력 sequence이고, decoder는 autoregressively 출력 sequence를 생성한다.
이전의 연구는 사전학습된 encoder를 합쳐서 모델의 성능을 향상시킬 수 있었지만, 사전학습된 언어모델의 decoder로부터의 이점은 제한되었다고 알려졌다. 본 연구에서는 bitext로부터 학습된 새로운 encoder parameters를 추가함으로써, BART 모델을 기계번역을 위한 하나의 사전학습된 decoder로 사용할 수 있음을 보여주었다(BART의 encoder-decoder 전체).
자세히 설명하면, BART의 encoder embedding layer를 랜덤하게 초기화된 새로운 encoder로 바꾼다. 모델은 end-to-end로 학습되는데, 이 새로운 encoder는 BART가 영어(사전학습된 언어)를 de-noising할 수 있도록 외국어를 noising된 영어로 매핑하도록 학습된다. 그렇기 때문에 새로운 encodere에는 BART를 학습시킨 원래의 vocabulary를 사용하지 않아도 된다.
Source encoder는 BART 모델의 output으로부터 cross-entropy loss 역전파 방식으로 두 단계를 거쳐 학습된다.
BART는 이전 연구보다 더 폭넓은 noising 방법들을 지원한다. base 모델로 여러 noising 옵션에 따라 실험을 수행하고 비교했다.(6 encoder, 6 decoder, hidden size of 768)
사전학습에는 여러 objectives가 있지만, 학습데이터, 학습 리소스, 모델별 구조적 차이, fine-tuning 절차 등의 차이 때문에 동등한 선상에서의 비교는 힘들다. 저자들은 최근에 제안된 강력한 사전 학습 방법을 통해 discriminative와 generation task에 맞게 모델을 재수행(재구현)했다. 다만, 성능의 향상을 위해 학습률과 layer normalisation을 사용했습니다. 참고로 BERT에서와 동일한 방법에 따라 실험을 진행했다.
GPT와 같은 방식으로 left-to-right Transformer 언어모델이다. 해당 모델은 BART의 decoder와 비슷하지만, cross-attention이 없다.
XLNet 기반의 모델로, 토큰의 1/6을 샘플링하고 이를 랜덤한 순서로 autoregressively 생성한다. 다른 모델과의 일관성을 위해 XLNet의 relative positional embeddings와 attention across segments은 사용하지 않았다.
BERT와 같이, 토큰의 15%를 MASK 토큰으로 바꾸고 모델이 원래의 토큰을 독립적으로 예측하도록 한다.
UniLM과 같이, Masked LM을 추가적인 self-attention mask와 함께 학습하도록 한다. Self-attention mask는 1/6 left-to-right, 1/6 right-to-left, 1/3 unmasked 그리고 1/3의 처음 50% 토큰은 unmask, 나머지는 left-to-right mask와 같은 비율로 랜덤하게 선택된다.
Mass에 의한 아이디어인데, 토큰의 50%를 포함하는 span을 마스크하고 seq-to-seq 모델로 마스킹된 토큰을 예측하도록 학습한다.
Permuted LM, Masked LM, Multitask Masked LM 모두 sequence의 출력 likelihood를 효율적으로 계산하기 위해 two-stream attention을 사용했다. 다음과 같은 방식들로 실험했는데, 실험으로부터 첫번째 방식이 BART 모델에 더 잘 작동하고, 두번째 방식은 다른 모델에 더 잘 작동하고 있었다.
모델이 fine-tuning objective를 모델링하는 능력을 직접적으로 비교하기 위해 perplexity를 구해보았다.(후에 실험 결과)
Wikipedia 문단에 대한 extractive question answering task이다. 모델이 정답부분의 시작과 끝부분을 예측하기 위해 classifier를 추가했다.
하나의 문장이 다른 문장을 수반하는지, 두 문장의 관계가 적절한지 예측하는 bitext classification task이다. 두개의 문장을 EOS 토큰을 추가해 합치고, BERT와는 다르게 EOS 토큰이 문장 관계를 분류하는데 사용된다.
긴 형식의 abstractive question anwering 데이터셋이다. 모델은 question과 추가적인 문서를 합친 상태로 answer를 생성한다.
뉴스 요약 데이터셋으로 abstractive한 요약들이다.
context와 persona를 기반으로 대화 답변 생성 task이다.
뉴스 요약 데이터셋이다. 요약들은 source 문장들과 밀접하게 연관되어 있다.
사전학습 방법들의 효과는 task에 크게 의존한다(task별로 사전학습의 효과가 다름). 예를 들어, 간단한 LM은 ELI5에서 가장 좋은 성능을 달성했지만 SQuAD 결과는 제일 좋지 않았다.
Rotating documents나 permuting sentence 기반의 사전학습은 독립적으로 보았을 때 성능이 좋지 않았다. 성공적인 방법들은 token deletion, masking 또는 self-attention masks를 사용하는 방법이었다. Deletion은 생성 task에서 masking보다 더 좋은 성능을 보여주었다.
Masked LM과 Permuted LM은 생성 task에서 다른 모델에 비해 성능이 떨어졌고, 이들은 사전학습에서 left-to-right auto-regressive 언어모델링을 고려하지 않은 유일한 모델들이다.
이전의 연구는 left-to-right decoder가 SQuAD task에서 성능이 좋지 않다고 밝혔는데, 미래 문맥이 분류 결정에 중요하기 때문이다. 하지만, BART는 절반의 bidirectional layer로 비슷한 성능을 보여주었다.
사전학습 objective 외에도 중요한 요소들이 있다는 것이다. 저자들이 실험한 permuted LM은 XLNet보다 좋지 못한 성능을 보였는데, 이는 relative-position embeddings와 segment-level recurrence와 같은 다른 구조적 향상을 포함하지 않았기 때문이라고 한다.
BART는 ELI5 데이터셋에서 outlier 즉, 다른 task에 비해 높은 perplexity를 보였다. 다른 모델이 BART보다 좋은 성능을 보인 유일한 생성 task이다. 이를 통해 순수한 LM이 가장 좋은 성능을 보이고, BART는 문서가 loosely게 연관된 경우 덜 효과적이었다는 것을 알 수 있었다.
ELI5를 제외하면, text-infilling 방법으로 학습한 BART 모델이 모든 task에서 가장 좋은 성능을 보여주었다.
최근의 연구는 큰 batch 사이즈와 corpora로 사전학습될 때, downstream 성능이 드라마틱하게 향상되는 것을 보여주었다. BART도 이러한 방법이 얼마나 효과적인지 테스트하기 위해 그리고 downstream task에 유용한 모델을 만들기 위해, 저자들은 BART를 RoBERTa 모델과 같은 스케일로 학습시켜보았다.
이후 BART large를 다른 모델들과 성능을 비교해본다.
SQuAD와 GLUE task에서 BART와 다른 여러 모델을 비교해본다. 가장 직접적으로 비교할만한 baseline은 RoBERTa이다. 같은 리소스로 훈련되지만 다른 objective를 가지고 있기 때문이다. 전체적으로 BART는 대부분의 task에서 다른 모델들과 조금의 차이로, 유사한 성능을 보여주었다. 생성 task에서 BART의 좋은 성능이 분류 성능에까지 영향을 가져오지 못한다는 것을 의미한다.(BART는 생성 task에 강점이 있다는 의미)
여러 텍스트 생성 task 실험도 진행했습니다. BART는 일반적인 seq-to-seq 모델(input으로부터 output text 만드는)로써 fine-tune 했다.
요약 task의 Sota들과 비교하기 위해, 특징이 다른 CNN/DailyMail과 XSum 두개의 요약 데이터셋으로 실험을 수행했다.
CNN/DailyMail은 source 문장과 닮은 경향이 있다. Extractive 모델이 더 잘 수행했고, 1-3에 있는 baseline도 굉장히 경쟁력있는 성능을 보여주었다. 그럼에도, BART는 이전에 존재하는 모든 연구보다 좋은 성능을 보여주었다.
반대로 XSum은 굉장히 abstractive해서, 해당 데이터셋에선 extractive 모델은 성능이 약하다. BERT를 활용한 이전에 좋은 성능을 보여준 연구보다 BART는 대략 6.0 ROUGE 메트릭만큼 향상되었다. 또한, 질적으로도 높은 성능을 보여주었다.
저자들은 CONVAI2의 대화 응답 생성도 실험해보았다. 이는 이전 문맥과 텍스트로 명시된 persona 두 가지를 고려해서 응답을 생성해야 한다. BART는 2개의 자동화된 메트릭에서 이전 연구보다 좋은 성능을 보여주고 있음을 확인할 수 있다.
저자들은 모델이 ELI5 데이터셋으로 긴 자유형식의 답을 생성하는 능력을 테스트해보았다. BART가 이전의 연구보다 1.2 ROUGE-L 더 좋았다. 하지만 해당 데이터셋은 답변이 문제에서 잘 정의되지 않기 때문에, 해결해야할 문제들이 남아있다.
저자들은 back-translation로 augmented한 WMT16 Romanian-English 데이터셋으로 번역 실험을 수행했다. source encoder로 6개의 transformer layer를 사용해서 Romanian을 noising된 English로 매핑하고 BART가 이를 denoising한다. Transformer large 모델을 baseline으로 두고 실험결과를 비교했다. 앞서 3장에서 밝힌바와 같이 2단계를 거쳐 학습했는데, BART를 freeze하고 한번 학습, 전체 BART fine-tuning 하는 단계로 학습했다. Beam width는 5로 주고 length penalty는 으로 설정했다. 제안한 모델은 back-translation data가 없다면 성능이 별로 효과적이지 않고 overfitting되는 경향이 있었다. 향후 연구에서는 추가적인 정규화 기법을 찾아봐야 한다.
지금까지 BART는 요약 task 평가에서 크게는 기존 Sota모델보다 6 point 더 향상되는 것을 보여줬다. BART의 성능을 자동화된 평가를 넘어 자세히 이해하기 위해, 생성된 문장의 질적인 부분을 분석해보았다.
위의 예들은 BART로 생성한 요약 문장의 샘플들이다. 예시된 문장들은 사전학습 말뭉치에 없는 WikiNews 기사들로 구성해서, 모델의 학습 데이터에 해당 문장들이 존재할 가능성을 제거했다. 또한, 기사의 첫번째 문장을 제거해서 요약 수행하도록 하여 문서의 extractive 요약이 쉽지 않게 했다.
모델은 유창하고 문법적인 English였다. 또한, 모델의 결과는 입력된 문서들로부터 적은 phrase만을 copy했고 굉장히 abstractive했다. 그리고 결과는 일반적이고 사실적으로 정확했으며, 배경지식과 함께 입력 문장에서의 뒷받침 증거들로 요약한 문장을 구성하고 있었다. 저자들은 이러한 요약들이 BART의 사전학습이 자연어의 이해와 생성을 강하게 결합해 학습되고 있다는 것을 증명했다고 말한다.
초기 사전학습 방법들은 주로 language model에 기반했다.
몇몇 연구에서는 기계번역을 향상시키기 위해 사전학습된 representation을 사용했다.
본 논문에서는 BART를 통해 기계번역 decoder를 향상시키는 것을 보여주었다.
BART는 손상된 문서를 원래대로 복구하도록 학습하는 접근방식으로 사전학습한 모델이다. BART는 discriminative task에서 RoBERTa와 비슷한 성능을 달성했고, 여러 text generation task에서 Sota를 달성했다. 추후 연구에서는 사전학습을 위해 문서를 손상시키는 새로운 방법에 대해 연구해볼 필요가 있다.