BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

민서·2024년 3월 18일
0

paper review

목록 보기
8/9

Background

AR & AE

Auto-Regressive(eg.GPT)

  • 주어진 데이터를 이용하여 미래 데이터를 예측하는 모델
  • NLP Task에서는 이전 토큰을 바탕으로 다음 토큰을 예측
  • 생성 작업에 효율적

Auto-Encoding(eg.BERT)

  • 공간 내 데이터를 활용하여 노이즈 제거, 차원축소 등등에 사용
  • NLP Task에서는 양방향 컨텍스트를 활용하여 문장을 이해하는 작업에 사용

Introduction

  • 본 연구는 bidirectional Transformer와auto-regressive Transformer를 결합한 모델을 학습시키는 BART를 제시한다.
  • 상당히 광범위한 end task들에 적용할 수 있는 seq2seq모델로 구축된 denoising autoencoder이다.
  • 사전학습은 2단계로 이루어진다.
    - 텍스트가 임의의 noising 함수를 통해 오염된다.
    • seq2seq모델이 원래의 텍스트를 복원하기 위해 학습된다.
  • BART는 표준 Transformer 기반 신경망 기계 번역 구조로, BERT(bidirectional encoder)와 GPT(left-to-right decoder)를 일반화한 것이라고 볼 수 있고 여러 pretraining scheme을 도입하였다.

BERT

  • 랜덤 토큰이 mask토큰으로 대체되고, 도큐먼트는 양방향으로 인코딩된다.
  • 손실된 토큰은 독립적으로 예측되기 때문에, BERT는 쉽게 생성할 수 없다.

GPT

  • 토큰은 자동 회귀적으로 예측되고, 이는 GPT를 생성에 사용할 수 있음을 의미한다. 그러다 단어는 그전 컨텍스트에만 컨디셔닝 되어 양방향 인터랙션을 학습할 수 없다.

BART

  • BART 모델은 원본 텍스트에 임의의 방식으로 노이즈를 추가하거나 변형하여 손상된 문서를 만들고, 이를 원본 텍스트로 복원한다.

  • fine-tuning 단계에서는 손상되지 않은 원본 문서를 모델에 입력하고, 디코더의 최종 은닉 상태를 사용하여 모델을 정교하게 학습시킨다. 이 과정을 통해 BART는 다양한 언어 작업을 수행할 수 있다.

Model

  • BART는 denoising autoencoder의 형태를 취하며, 이는 손상된 문서를 원본 문서로 복원하는 작업을 수행한다.
  • BART는 모델에서 손상된 텍스트는 bidirectional encoder(BERT와 비슷한 방식으로 작동)에 의해 인코딩되고, 그 결과는 left-to-right autoregressive decoder(GPT와 비슷한 방식으로 작동)에 의해 디코딩된다.
  • 사전학습을 위해, 기존의 negative log lielihood를 최적화 하였다고 한다.

Architecture

  • BART는 표준 seq2seq Transformer 구조를 사용하였고, 디코더에서는 GPT에서 사용하는 ReLU 활성화 함수를 GeLU로 바꾸었고 파라미터 초기화를 N(0,0.2)로 했다.
    (N(0,0.2): 표준 정규분포를 따르는데 평균은 0, std는 0.2의 분포를 갖는다.)
  • BART역시 BERT와 마찬가지로 base와 large 크기의 모델을 구성했다.
  • base 모델은 엔코더와 디코더에 각각 6개의 레이어를 사용하였고 large 모델은 12개의 레이어를 사용하였다.
  • BERT와 다른 점은
    - 디코더의 각 레이어가 엔코더의 최종 hidden 레이어와 cross-attention을 수행한다.
    • BERT는 단어를 유추해내기 위해 추가적인 feed-forward 네트워크를 사용하지만, BART는 그렇지 않다.(인코더에서 바로 출력하지 않기 때문)
  • 디코더의 cross-attention 레이어가 추가되었기 때문에 BART는 BERT보다 약 10% 더 많은 파라미터를 가진다.

Pre-training BART

  • BART는 문서를 오염시키고 난 뒤 reconstruction loss, 즉 디코더의 output과 기준 문서와의 크로스 엔트로피 로스를 최적화하는 것으로 훈련된다.
  • 맞춤형 noising scheme을 사용하였던 denoising autoencoder와는 달리, output의 개수가 정해져 있지 않고 auto-regressive하게 생성되기 때문에 BART는 어떠한 종류의 문서 corruption이든 모두 적용할 수 있다.

    Denoising Objectives의 종류들이다.
  • Token Masking(토큰 마스킹) : BERT와 같이 임의의 토큰이 샘플되고 [MASK] 토큰으로 대체된다.
  • Token Deletion(토큰 제거) : 임의의 토큰이 입력에서 제거된다. 토큰 마스킹과는 반대로, 모델이 어떤 위치의 입력이 손실되었는지 알아내야 한다.
  • Text Infilling(텍스트 내부 삽입) : 여러 텍스트 구간이 샘플링되고, 구간 길이는 포아송 분포 (λ = 3)에서 도출된다. 각 구간은 단일 [MASK] 토큰으로 대체된다.
  • Text infilling은 SpanBERT에서 영감을 받았으며, 얼마나 많은 토큰이 한 구간에서 손실되었는지를 모델에 학습시킨다.
  • Sentence Permutation(문장 치환) : 문서가 문장 단위로 나누어지고, 이 문장들이 임의로 뒤섞인다. 이는 문장 간의 관계를 이해하는 데 도움을 준다.
  • Document Rotation(도큐먼트 순환) : 토큰이 임의로 선택되고, 문서가 그 토큰으로 시작하도록 회전한다. 이는 모델이 문서의 시작을 판단하는 능력을 향상시킨다.

Fine-tuning BART

BART가 생성해내는 representation은 여러 downstream 어플리케이션에서 다양한 방법으로 적용될 수 있다. 아래에 task별 fine tuning을 정리했다.

1. Sequence Classification Tasks

Sequence Classification Task는 어떠한 시퀀스를 분류하는 태스크이다. 대표적으로 주어진 문장이 문법적으로나 영어적으로 합당한지 분류하는 GLUE의 CoLA가 있다. 해당 태스크에서는 동일한 입력이 엔코더와 디코더에 들어가고, 마지막 decoder token의 마지막 hidden state이 새로운 multi-class 선형 분류기에 들어간다. 이 접근법은 BERT가 CLS 토큰으로 분류하는 것과 관련이 있지만, 여기에선 추가적인 토큰을 마지막에 추가하여 디코더에 있는 마지막 토큰의 representation이 전체 입력과 attention을 수행할 수 있도록 하여 마지막 output은 모든 입력을 반영할 수 있도록 한다.

2. Token Classification Tasks

Token classification Task는 토큰단위로 분류를 수행하는task이다. 대표적으로 주어진 본문 내에서 정답을 찾아야 하는 SQuAD가있다. SQuAD는 정답에 해당되는 Start Point와 End Point의 토큰을 찾아야 합니다. BART에서는 전체 문서를 엔코더와 디코더를 입력으로 하고, 디코더의 가장 위의 hidden state를 각 단어의 representation으로 사용하였다. 이 representation은 각 토큰들을 분류하는데 사용한다.

3. Sequence Generation Tasks

기존 BERT는 할 수 없었던 태스크 중 하나인 Generation Task이다. 반면 BART는 autoregressive 디코더를 가지고 있기 때문에 abstractive question answering과 summarization과 같은 sequence generation 태스크에 바로 적용 할 수 있다. 이러한 태스크들은, 입력 시퀀스가 복사되고 조절되는 특징이 있는데, 이는 denoising pre-training objective랑 밀접하게 연관되어 있다. 인코더의 입력은 입력 시퀀스가 되고, 디코더는 auto-regressive하게 출력을 생성한다.

4. Machine Translation

영어를 다른 언어로 번역하는 Machine Traslation Task 이다. 이전 연구에 따르면 모델이 사전학습된 인코더를 합치는 것으로 개선될 수 있지만, 사전학습된 디코더를 사용하는 것에 대한 이점은 제한적이었다. BART에서는 모델 전체 (인코더 및 디코더 모두)를 기계 번역에 대한 단일 사전 훈련된 디코더로 사용할 수 있음을 보여주었고, 이를 bitext로부터 학습된 새로운 엔코더 파라미터를 추가하는 것으로 해결했다.

  • 해당 작업에서는 인코더를 두 단계로 학습시킨다. 두 경우 모두 BART 모델의 출력에서 cross-entropy loss를 역전파하여 수행한다.

  • 첫 번째 단계: BART의 대부분의 파라미터를 고정(freeze)하고, 랜덤으로 초기화된 source 인코더(임베딩 레이어를 대체함), BART의 positional embeddings, 그리고 BART의 인코더 첫 번째 레이어의 self-attention input projection matrix만을 학습시킨다.

  • 두 번째 단계: 모든 모델 파라미터를 작은 수의 iteration 동안 학습시킨다.

즉, 첫 번째 단계에서는 특정 파라미터만 업데이트하며, 두 번째 단계에서는 모든 모델 파라미터를 업데이트한다. 이렇게 두 단계로 나눠서 학습을 진행함으로써, 모델이 외국어 단어를 영어로 더 효과적으로 디노이징하는 방식을 학습하게 된다.

Comparing Pre-training Objectives

BART는 이전 연구보다 pre-training단계에서 noising 방법론을 훨씬 더 다양하게 지원한다. 사전 학습 Objective 함수를 보다 더 잘 이해하기 위해 해당 챕터에서는 base 크기의 모델(768개의 hidden layer를 가진 6개 인코더와 6개 디코더 층)을 이용해 여러 denoising task에 대해 실험을 진행했다.

Comparison Objectives

  • 많은 사전학습 방법론이 제안되었지만, 훈련 데이터, 리소스, 구조적 차이가 모델에 따라 다르고, 그리고 파인 튜닝 방법론도 다르기 때문에 방법론들간의 완벽한 비교는 힘들다.
  • 따라서 이를 위해 최근에 제안된 강력한 사전학습 방법론들을 discriminative와 generation task에 맞게 재구현했다.
  • 가능한 만큼 사전 학습 목적 함수와 관계 없는 요소들을 컨트롤하려 했지만, layer normalization의 사용이나 학습률을 조금 조정하여 성능을 향상시키기도 하였다.
  • 또한 BERT에 나와있는 방법에 따라 구현 하였고, 1M step만큼 Book과 Wikipedia 데이터를 합한 데이터로 훈련시켰다(BERT가 사전 학습을 한 데이터와 동일).

1) Language Model : 훈련은 GPT모델이 훈련하는 방식으로, left-to-right 트랜스포머 언어 모델이다. 해당 모델은 cross-attention을 제외한 BART의 decoder와 동등하다.(인코더가 출력하는 representation이 없기 때문에)
2) Permuted Langauge Model : 해당 모델은 XLNet 기반 모델이며, 1/61/6 토큰만큼 샘플링하여 이를 랜덤한 순서로 auto-regressive하게 생성하는 모델이다. 다른 모델과의 동일한 비교를 위해, 기존 XLNet에서 수행하였던 relative positional embedding이나 segment간의 attention을 수행하지 않았다고 한다.(XLNet도 공부를 해봐야겠다..)
3) Masked Language Model : BERT와 같은 모델링 방법이며, 15%의 토큰을 [MASK] 토큰으로 치환하고 원본 토큰을 독립적으로 예측하기 위해 모델을 학습시킨다.
4) Multitask Masked Language Model : UniLM에서 제안한 방법으로, Masked Language Model을 additional self-attention mask로 학습시킨다. Self attention mask는 다음과 같은 비율로 랜덤하게 선택된다. : /6 left-to-right, 1/6 right-to-left, 1/3 unmasked, 1/3 에서 처음 50% 토큰은 unmasked 그리고 나머지를 left-to-right mask로 된다.
5) Masked Seq-to-Seq : MASS에 영감을 받은 모델로, 50%의 토큰을 포함하는 span을 마스크하고, seq2seq 모델로 마스크된 토큰을 예측하도록 훈련한다.

Tasks

SQuAD : Wikipedia에서 추출한 question answering Task. 위키피디아에서 따온 본문과 질문이 주어지면, 주어진 본문로부터 정답에 해당되는 text span을 찾는 문제이다. BERT와 비슷하게, BART에서는 문제와 context를 이어붙인 것을 인코더의 입력으로 하고, 디코더를 통해 예측하도록 했다. 모델은 각 토큰의 시작과 끝 인덱스을 예측하는 분류기가 포함되어 있다고 합니다. (text span을 찾으면 되기 때문에, start 토큰과 end 토큰의 위치만 예측하는 분류기 2개가 있다는 뜻입니다!)
MNLI : 두개의 문장에 대한 classification 태스크로 하나의 문장이 다른 문장을 entail, 즉 이전 문장과 이후 문장의 관계가 성립 하는지 예측하는 태스크 입니다. BART 모델은 두개의 문장을 EOS token(문장의 끝을 알리는 토큰)을 추가해 합치고, 이를 엔코더와 디코더에 넣는다. BERT와는 다르게, EOS 토큰의 표현이 문장 관계를 분류하는데 쓰인다.(BERT는 CLS토큰)
ELI5 : 긴 형식의 abstractive question answering Task. BART 모델은 문제와 추가적인 문서를 붙인 것으로 컨디션을 주어 답을 생성한다.  
XSum : 뉴스 요약 태스크로 많이 함축된 요약을 생성해야 한다.
ConvAI2 : 대화의 답변에 대한 generation 태스크로, context와 persona(화자)를 컨디션으로 줍니다.
CNN/DM : 뉴스 요약 데이터셋입니다. 이 데이터셋의 요약본은 입력 문서와 밀접하게 연관되어 있어 XSum 태스크와는 성격이 약간 다릅니다.

Results


1) 사전 학습 방법론의 성능은 태스크별로 확연한 차이가 있다.
사전학습 방법론의 효율성은 태스크에 크게 의존한다. 예를 들어, 간단한 언어 모델은 ELI5 데이터셋에 최고의 성능을 달성하였지만, SQuAD 태스크에서는 최악의 성능을 보인 것을 알 수 있다.
2) 토큰 마스킹은 아주 중요하다.
Rotating Document나 Permuting Sentences기반 사전학습 방법론은 해당 목적 함수로만 훈련시켰을 때 성능이 좋지 않았다. 성공적인 방법론은 Token Deletion이나 Token Masking, 혹은 Self-Attention Mask를 사용하는 방법이었다고 한다. 그 중 Token Deletion는 생성 태스크에서 Token Masking보다 더 좋은 성능을 보였다.
3) Left-to-right 기반 언어 모델은 생성 태스크에 효과적이다.
Masked Language Model과 Permuted Language Model은 생성 태스크에서 다른 것들보다 성능이 떨어졌고, 이 두 모델은 사전학습 단계에서 left-to-right auto-regressive 언어 모델링을 적용하지 않은 유이한 모델들이다.
4) 양방향 엔코더는 SQuAD에서 아주 중요하다.
이전 연구에서는 left-to-right 디코더가 SQuAD 태스크에서 성능이 안좋다고 밝혔다. 왜냐하면 미래의 컨텍스트가 classification 태스크에서 중요하기 때문이다. 그렇지만, BART는 절반의 양방향 레이어를 가지고도 비슷한 성능을 달성하여 BART 모델의 효과성을 보여준다고 주장하였다.
5) 사전 학습 방법론 이외에도 중요한 요소가 많다. 
저자가 실험에서 학습한 Permuted Language Model은 기존 XLNet보다 성능이 떨어졌습니다. 이에 대한 이유로 XLNet에서 제안한 relative-position embedding이나 segment-level recurrence와 같은 다른 구조적인 향상을 적용하지 않았기 때문이라고 하여, 사전 학습 방법론 이외에도 성능 향상에 중요한 요소가 많이 존재할 것이라고 주장하였다.
6) 순수한 언어 모델이 ELI5에서 최고의 성능을 보인다.
ELI5 태스크는 다른 데이터셋과 성질이 다른 Outlier(이상치) 이다. 왜냐하면 다른 태스크보다 perplexity가 아주 높았고, 다른 모델이 BART보다 성능이 더 좋았던 유일한 generation 태스크였기 때문이다. 해당 태스크에서는 순수한 언어 모델이 가장 성능이 좋았으며, BART가 느슨하게 연관되어있는 문서에 대해 출력을 내는 태스크에 덜 효과적이라는 것을 나타낸다.
7) BART가 가장 일관성 있게 강력한 성능을 달성하였다.
ELI5를 제외하면, BART를 Text Infilling으로 학습한 모델이 모든 태스크에서 좋은 성능을 보여 BART의 우수성을 주장했다.

Large-scale Pre-training Experiments

  • 최근 연구들은 큰 배치 사이즈와 방대한 데이터를 사용한 사전학습이 다운스트림 성능을 크게 향상시켰다는 것을 입증하였다.
  • BART가 이러한 체제에서 얼마나 좋은 성능을 내는지 테스트하고 다운스트림 스크에 유용한 모델을 생성하는지 테스트하기 위해, RoBERTa 모델과 동등한 스케일을 사용하여 BART를 학습시켰다.
    BART는 12층의 디코더와 인코더를 사용하고, 은닉층 크기가 1024인 대형 모델로 사전학습되었으며, 배치 사이즈 8,000으로 50,000 스텝 동안 학습되었다.
  • GPT-2와 같은 byte-pair encoding으로 토크나이징되고, text infilling과 sentence permutation 기법을 결합하여 사용하였다.
  • 비교 대상인 RoBERTa와는 달리, BART는 유사한 성능을 보였으며, 대부분의 태스크에서 두 모델 간의 차이가 미미하였다.
  • 이는 BART가 생성 태스크에 있어서의 발전이 분류 성능의 손해를 보지 않으면서 이루어졌음을 나타낸다.

Experimental Setup

Discriminative Tasks

Generation Tasks

Translation

Qualitative Analysis

Related Work

Conclusions

  • BART는 Transformer의 아키텍처와 Seq2Seq의 학습 패러다임을 결합한 것이다.
  • BART는 Discriminative Task에서 RoBERTa와 비슷한 성능을 보였으나, 여러 텍스트 생성 태스크에서 SOTA의 성능을 달성했다.
  • 큰 배치 사이즈와 방대한 데이터로 사전학습될 때 뛰어난 다운스트림 성능을 보이며, RoBERTa와 같은 기존 모델과 비교해 유사한 성능을 나타내는 것으로 확인되었다.
profile
CS&ICE, Senior in The Catholic University of Korea. welcome to my page:D http://about.minseo.me/

0개의 댓글