딥러닝/NLP

[논문] BART 리뷰

eunsour 2023. 3. 24.
반응형

 

요약 분야에서 BERT와 같은 인코더 모델은 원본 텍스트의 일부 문장을 선택하는 추출 요약에서 우수한 성능을 보이지만, 텍스트를 생성해야 하는 생성 요약에는 적합하지 않다. 반면, GPT와 같은 디코더 모델은 텍스트 생성에는 적합하지만, 학습 시 단방향의 정보만을 이용하는 단점이 있다. 

 

이러한 이유로 생성 요약과 같은 태스크에는 인코더와 디코더를 활용한 사전학습된 시퀀스 투 시퀀스 모델을 사용한다. 이러한 모델의 시초가 되는 BART에 대해 알아보자.

 

0-1. Abstract & Introduction

BART는 본질적으로 인코더와 디코더가 있는 트랜스포머 모델이다. 임의의 노이즈 함수로 손상된 텍스트를 인코더에 입력하고 인코더는 주어진 텍스트의 표현을 학습시키고 그 표현을 디코더로 보낸다. 디코더는 인코더가 생성한 표현을 가져와 손상되지 않은 원본 텍스트를 재구성하는 방식으로 훈련된다.

 

BART의 인코더는 양방향이므로 양방향으로 문장을 읽을 수 있지만 디코더는 단방향이며 왼쪽에서 오른쪽으로만 문장을 읽는다. 따라서 BART에는 양방향 인코더(양방향)와 자동 회귀 디코더(단방향)가 있다.

 

토큰 마스킹, 토큰 채우기, 문서 회전 등 다양한 노이징 기법을 도입하여 최상의 성능을 찾는다.

 

BART는 텍스트 생성에 가장 효과적이지만 번역 및 이해와 같은 종합적인 작업에도 잘 작동하며, RoBERTa와 유사한 환경에서 abstractive dialogue, QA, 요약 작업에서 SOTA를 달성하였다.

 

 

2. Model

BART는 손상된 문서를 원본 문서에 매핑하는 노이즈 제거 오토 인코더(denoising autoencoder)이다. 손상된 텍스트에 대한 양방향 인코더(BERT)와 왼쪽에서 오른쪽으로의 autoregressive 디코더(GPT)를 사용하여 seq2seq 모델로 구현된다. 사전 학습을 위해 원본 문서의 negative log-likelihood를 최적화한다.

 

그림 1 : BART와 BERT 및 GPT를 개략적으로 비교한 도식.

 

 

2.1 Architecture

BART는 표준 seq2seq 아키텍처를 사용하지만, 활성화 함수를 ReLU에서 GeLU로 변경하고 초기화 파라미터를 N(0, 0.02)로 설정하는 것을 제외하면 기본과 동일하다.

 

BART-base 모델의 경우 6개의 인코더 및 디코더 레이어, BART-large 모델의 경우 각각 12개의 레이어를 사용하였다.

 

이 아키텍처는 BERT에서 사용되는 아키텍처와 밀접한 관련이 있지만 다음과 같은 차이점이 있다.

    (1) 디코더의 각 레이어는 인코더의 마지막 hidden 레이어에 대해 추가로 cross-attention을 수행한다.

    (2) BERT는 단어 예측 전에 추가적인 피드 포워드 네트워크를 사용하지만, BART는 인코더가 마스킹된 단어를 예측하지 않기 때문에 사용하지 않는다.

 

따라서 BART는 같은 크기의 BERT 모델보다 약 10% 더 많은 파라미터를 포함하고 있다.

 

2.2 Pre-training BART

BART는 복원 손실. 즉 원본 텍스트와 디코더가 생성한 텍스트 사이의 교차 엔트로피 손실(cross-entropy loss)을 최소화하도록 학습한다.

 

BART를 사용하면 특정 노이즈 제거 방식에 맞추어진 기존의 denoising autoencoder와는 달리, 모든 유형의 문서 손상에 적용할 수 있다.

 

텍스트를 손상시키기 위해 다음과 같은 다양한 노이징 기법을 도입하였다.

 

그림 2 : 실험에 사용한 노이징 기법

 

 

Token Masking

BERT(Devlin et al.,2019)에서 제시한 기법으로 무작위로 몇 개의 토큰을 [MASK]로 대체한다.

 

Token Deletion

일부 토큰을 무작위로 삭제한다. 토큰 마스킹과 달리 모델은 토큰이 무작위로 삭제된 위치를 찾아 그 위치에서 새로운 토큰을 예측한다.

 

Text Infilling

단일 [MASK] 토큰으로 연속된 토큰셋을 마스킹한다. Text Infilling은 SpanBERT에서 영감을 얻었지만, SpanBERT에서는 연속된 4개의 토큰셋을 마스킹하는 경우 이를 4개의 [MASK] 토큰으로 대체하지만, BART는 하나의 [MASK] 토큰으로 대체한다.

 

누락된 토큰의 수를 예측하도록 모델을 학습시킨다.

 

Sentence Permutation

문서는 마침표를 기준으로 문장으로 나뉘며, 문장은 무작위 순서로 섞여 있다.

 

Document Rotation

주어진 문서에서 문서의 시작이 될 수 있는 특정 단어(토큰)를 무작위로 선택한다. 선택한 단어 앞의 모든 단어가 문서 끝에 추가된다. 이 작업은 문서의 시작 부분을 식별하도록 모델을 학습시킨다.

 

e.g. Don’t worry. I am free today. Can I visit your house?

→ Free today. Can I visit your house? Don’t worry I am

 

3. Fine-tuning BART

BART에서 생성된 표현은 다운스트림 애플리케이션에서 여러 가지 방식으로 사용할 수 있다.

 

3.1 Sequence Classification Tasks

동일한 input이 인코더와 디코더에 공급되고 최종 디코더 토큰의 최종 hidden state가 multi-class linear classifier에 공급된다.

이 방식은 BERT의 CLS 토큰과 관련이 있지만, 마지막에 토큰을 추가하여 디코더의 토큰 표현이 전체 input에서 디코더의 attention을 확인할 수 있도록 한다.

 

 

 

3.2 Token Classification Tasks

전체 문서를 인코더와 디코더에 공급하고 디코더의 최상위 hidden state를 각 단어의 표현으로 사용한다.

이 표현은 토큰을 분류할 때 사용된다.

 

3.3 Sequence Generation Tasks

BART에는 autoregressive 디코더가 있으므로 QA 및 요약과 같은 시퀀스 생성 작업에 파인 튜닝이 가능하다.

이 두 태스크 모두 입력에서 정보를 복사하지만 조작하는 것으로, denoising pre-training objective와 밀접한 관련이 있다.

여기서 인코더 입력은 입력 시퀀스이며 디코더는 autoregressively하게 출력을 생성한다.

 

3.4 Machine Translation

기계 번역은 두 개의 서로 다른 언어를 다루기 때문에, 인코더와 디코더 모두 같은 언어로 사전 학습된 모델을 사용할 수 없다. 이전 연구에 따르면, 사전 학습된 인코더를 통합하여 모델을 개선할 수 있었지만, 디코더에 사전 학습된 언어 모델을 사용함으로써 얻을 수 있는 이점은 제한적이었다.

 

bitext로부터 학습된 새로운 인코더 파라미터 세트를 추가하여 전체 BART 모델(인코더와 디코더 모두)을 기계 번역을 위한 하나의 사전 학습된 디코더로 사용할 수 있음을 보여준다.

 

 

보다 정확하게는 BART 인코더의 임베딩 레이어를 무작위로 초기화된 새로운 인코더로 교체한다.

 

이 모델은 end-to-end 학습을 통해 새로운 인코더가 입력에 외국어를 매핑하여 BART가 de-noise하여 영어로 변환할 수 있도록 학습한다. 이 때 새로운 인코더는 기존 BART 모델과 별도의 vocabulary를 사용할 수 있다.

 

소스 인코더를 두 단계로 학습시키는데, 두 경우 모두 BART 모델의 출력에서 교차 엔트로피 손실(cross-entropy loss)로 역전파를 수행한다.

  1. 첫 번째 단계에서는 대부분의 BART 파라미터를 freeze하고 무작위로 초기화된 소스 인코더, BART 위치 임베딩, BART 인코더의 첫 번째 레이어의 self-attention input projection 행렬만 업데이트한다.
  2. 두 번째 단계에서는 적은 수의 iterations으로 모든 모델 파라미터를 학습한다.

 

4. Comparing Pre-training Objectives

BART는 사전 학습 시 이전 연구보다 훨씬 더 광범위한 노이즈 체계를 지원한다.

본 논문에서는 BART-base 모델을 사용하여 다양한 옵션을 비교하였다.

 

4.1 Comparison Objectives

많은 사전 학습 방법론이 제안되어 왔지만, 모델 간의 학습 데이터, 리소스, 아키텍처, fine-tuning 절차의 차이로 인해 부분적으로나마 이들 간의 공정한 비교가 어려웠다.

 

본 논문에서는 식별 및 생성 작업을 위한 강력한 사전 학습 접근법을 재구현하였다.

 

사전 학습 목적 함수와 무관한 지표들만 조정하여 최대한 원래 모델을 유지하도록 노력하였다. 그러나 성능 개선을 위해 학습 속도와 레이어 정규화 방법을 약간 변경하였다(각 목표에 따라 개별적으로 조정).

 

구현을 위해 책과 위키피디아 데이터를 조합하여 1M steps로 학습한 BERT의 수치와 비교하였다.

 

 

Language Model

GPT와 유사하게 left-to-right 트랜스포머 언어 모델을 학습한다.

이 모델은 cross-attention이 없는 BART 디코더와 동일하다.

 

Permuted Language Model

XLNet을 기반으로 토큰의 1/6을 샘플링하여 무작위 순서로 autoregressively하게 생성한다.

다른 모델과의 일관성을 위해 XLNet의 상대적 위치 임베딩이나 세그먼트 간 attention을 구현하지 않는다.

 

Masked Language Model

BERT에 따라 토큰의 15%를 [MASK]로 대체하고, 모델이 원래 토큰을 예측하도록 훈련한다.

 

Multitask Masked Language Model

UniLM에서와 마찬가지로, 추가 self-attention mask를 사용하여 MLM을 훈련한다. self-attention mask는 다음과 같은 비율로 무작위로 선택된다: 왼쪽에서 오른쪽으로 1/6, 오른쪽에서 왼쪽으로 1/6, 마스크가 없는 1/3, 토큰의 첫 50%는 마스크가 없는 1/3, 나머지는 왼쪽에서 오른쪽으로 마스크가 있는 1/3이다.

 

Masked Seq-to-Seq

MASS에서 영감을 받아 토큰의 50%를 포함하는 span을 마스킹하고, 마스킹된 토큰을 예측하기 위해 seq2seq 모델을 훈련한다.

 

Permuted LM, Masked LM, Multitask Masked LM의 경우, two-stream attention을 사용하여 시퀀스의 출력 부분의 likelihood를 효율적으로 계산한다(출력에 diagonal self-attention mask를 사용하여 단어를 왼쪽에서 오른쪽으로 예측).

 

(1) 태스크를 인코더에 입력되는 소스와 타깃이 디코더 출력인 seq2seq 문제로 처리하거나, (2) 소스를 디코더에서 타깃 prefix에 추가하고 시퀀스의 타깃 부분의 loss를 계산하는 실험을 진행해 보았다.

 

전자는 BART 모델에, 후자는 다른 모델에 더 효과적이라는 것을 알게 되었다.

 

 

4.3 Results

다음 표의 결과를 보면, 몇 가지 추세를 분명히 알 수 있다. 

 

Performance of pre-training methods varies significantly across tasks

사전 학습 방법의 효과는 태스크에 따라 크게 달라진다.

예를 들어, 단순한 언어 모델은 ELI5 성능은 최고이지만 SQUAD 결과는 최악이었다.

 

Token masking is crucial (토큰 마스킹은 중요하다.)

문서 회전 또는 문장 셔플을 기반으로 하는 사전 학습 objectives는 단독으로 사용하면 성능이 저하된다.

성공적인 방법은 토큰 삭제, 토큰 마스킹 그리고 self-attention mask를 사용하는 것이다.

생성 작업에서는 토큰 삭제가 토큰 마스킹보다 성능이 뛰어난 것으로 나타났다.

 

Left-to-right pre-training improves generation (left-to-right 사전 학습은 생성 성능을 향상시킨다.)

Masked Language Model과 Permuted Language Model은 다른 모델보다 생성 성능이 떨어지며, 사전 학습 중에 left-to-right auto-regressive 언어 모델링을 사용하지 않은 유일한 모델이다.

 

Bidirectional encoders are crucial for SQuAD (양방향 인코더는 SQuAD에서 중요하다.)

이전 연구에서 언급했듯이, Classification에서는 미래의 컨텍스트가 중요하기 때문에 left-to-right 디코더를 사용하는 것은 SQuAD에서 성능이 좋지 않다.

그러나 BART는 양방향 레이어 수의 절반만으로 비슷한 성능을 달성하였다.

 

The pre-training objective is not the only important factor (사전 학습 objective만이 중요한 요소인 것은 아니다.)

우리의 Permuted Language Model은 XLNet보다 성능이 떨어진다. 이러한 차이의 일부는 relative-position embedding이나 segment-level recurrence와 같은 다른 구조적 개선 사항을 포함하지 않았기 때문일 수 있다.

 

Pure language models perform best on ELI5

ELI5 데이터 세트는 다른 작업보다 훨씬 더 높은 복잡성을 가진 outlier이며, 다른 모델이 BART를 능가하는 유일한 생성 작업이다.

순수한 언어 모델이 가장 잘 수행되며, 이는 출력이 입력에 의해 느슨하게만 제약될 때 BART의 효율성이 떨어진다는 것을 의미한다.

 

BART achieves the most consistently strong performance. (BART는 일관성 있고 강력한 성능을 보인다.)

ELI5를 제외한 토큰 채우기를 사용하는 BART 모델은 모든 태스크에서 우수한 성능을 발휘하였다.

 

 

5. Large-scale Pre-training Experiments

최근 연구에 따르면, 대규모 배치 사이즈와 말뭉치를 이용한 사전 학습은 다운스트림 태스크의 성능을 크게 향상시킬 수 있다는 것이 밝혀졌다.

 

이에 따라, BART 모델이 이러한 체제에서 얼마나 잘 작동하는지를 테스트하고, RoBERTa 모델과 동일한 척도를 사용하여 BART를 학습하여 다운스트림 태스크에 유용한 모델을 만들어 보았다.

 

5.1 Experimental Setup

12개의 인코더 및 디코더 레이어를 사용하고 hidden size가 1024인 BART-large 모델을 사전 학습한다. RoBERTa를 계승하여 배치 사이즈는 8,000이며 500,000 step 동안 모델을 학습한다.

문서는 GPT-2와 동일한 byte-pair encoding으로 토큰화된다. 섹션 4의 결과를 기반으로 토큰 채우기와 문장 셔플의 조합을 사용한다. 각 문서에서는 토큰의 30%를 마스킹하고 모든 문장을 셔플한다.

 

모델이 데이터에 더 잘 학습되도록, 훈련 스텝의 마지막 10%에서 드롭아웃을 비활성화하였다.

이 모델은 RoBERTa와 동일한 사전 학습 데이터를 사용하며, 160GB의 뉴스, 책, 이야기, 웹 텍스트로 구성되어 있다.

 

대체로 BART는 대부분의 태스크에서 RoBERTa와 거의 비슷한 성능을 보인다. 이는 BART의 생성 태스크 개선이 분류 성능에 영향을 미치지 않는다는 것을 보여준다.

 

 

8 Conclusions

BART는 손상된 문서를 기존 문서로 복구하는 방법을 학습하는 사전 학습 방법론이다. 이 방식은, discriminative 태스크에서 RoBERTa와 유사한 수준의 성능을 보여주면서도, 여러 텍스트 생성 작업에서 SOTA를 달성하였다.

 

향후 작업에서는 사전 학습을 위해 문서를 손상시키는 새로운 방법을 모색해야 하며, 특정 태스크에 맞게 조정할 수도 있어야한다.

반응형

댓글