BART 모델은 원본 텍스트에 임의의 방식으로 노이즈를 추가하거나 변형하여 손상된 문서를 만들고, 이를 원본 텍스트로 복원한다.
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 동안 학습시킨다.
즉, 첫 번째 단계에서는 특정 파라미터만 업데이트하며, 두 번째 단계에서는 모든 모델 파라미터를 업데이트한다. 이렇게 두 단계로 나눠서 학습을 진행함으로써, 모델이 외국어 단어를 영어로 더 효과적으로 디노이징하는 방식을 학습하게 된다.
BART는 이전 연구보다 pre-training단계에서 noising 방법론을 훨씬 더 다양하게 지원한다. 사전 학습 Objective 함수를 보다 더 잘 이해하기 위해 해당 챕터에서는 base 크기의 모델(768개의 hidden layer를 가진 6개 인코더와 6개 디코더 층)을 이용해 여러 denoising task에 대해 실험을 진행했다.
1) Language Model : 훈련은 GPT모델이 훈련하는 방식으로, left-to-right 트랜스포머 언어 모델이다. 해당 모델은 cross-attention을 제외한 BART의 decoder와 동등하다.(인코더가 출력하는 representation이 없기 때문에)
2) Permuted Langauge Model : 해당 모델은 XLNet 기반 모델이며, 토큰만큼 샘플링하여 이를 랜덤한 순서로 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 모델로 마스크된 토큰을 예측하도록 훈련한다.
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 태스크와는 성격이 약간 다릅니다.
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의 우수성을 주장했다.