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

홍선재·2025년 5월 17일

Abstract

이 논문은 BART라는 denoising auto-encoder를 기반으로 한 seq-to-seq 모델 사전학습 기법을 제안했다.

BART는 두 가지 과정을 통해 학습된다.

(1) 임의의 노이징 함수로 입력 텍스트를 손상시킨다.

(2) 손상되기 전의 원본 텍스트를 복원하는 모델을 학습하는 것이다.

이 모델은 표준 Transformer 기반의 신경기계번역 아키텍처를 사용하며 구조는 단순하지만

  • 양방향 인코더를 사용하는 BERT
  • 좌에서 우로 순차적으로 생성하는 디코더를 사용하는 GPT
  • 그 외 최근 제안된 다양한 사전학습 방식들

위와 같은 여러 사전하습 방식들을 일반화했다.

논문의 연구진은 여러 노이징 방법을 실험했으며 원래 문장들의 순서를 무작위로 섞는 방식과 텍스트 일부 구간을 단일 마스크 토큰으로 대체하는 새로운 인필링(in-filling)방식을 함께 사용했을 때 가장 좋은 성능을 보였다.

BART는 특히 text generation 작업에서 파인튜닝할 경우 매우 효과적이며 comprehension task에도 잘 작동하는 것을 볼 수 있다.

GLUE 및 SQuAD 벤치마크에서는 RoBERTa와 비슷한 학습 자원 하에 동등한 성능을 달성하였고 요약, 질의응답, 대화 생성 등의 다양한 추상적 텍스트 생성(abstractive)과제에서는 최대 ROUGE 6점의 성능 향상을 보이며 새로운 SOTA를 달성했다.

또한 back-translation 시스템과 비교해 기존 target 언어만 사전학습한 조건에서도 BLUE 점수가 1.1만큼 상승했으며 BART 프ㄹㅔ임워크 안에서 다양한 사전학습 기법을 재현하는 ablation 실험을 통해 어떤 요소가 최종 과제 성능에 큰 영향을 주는지도 분석했다.


1. Introduciton

self-supvervised learning 방식은 NLP 과제에서 매우 뛰어난 성과를 보여주고 있다.

특히 가장 성공적인 접근법은 masked languaged model의 변형들로 이는 문장의 일부 단어를 무작위로 가린 후 이를 복원하는 denosing auto-encoder형태로 학습된다.

BART는 Bidirectional Transformer와 Auto-regressive Transformer를 결합한 모델로 seq-to-seq 구조의 디노이징 오토인코더를 기반으로 하며 광범위한 nlp 과제에 적용 가능하다.

사전 학습은 두 단계로 구성된다.

  1. 입력 텍스트에 임의의 노이즈를 주입한다.
  2. 손상되기 전의 원문을 복원하도록 seq2seq 모델을 학습시킨다.

이 모델은 단순하지만 강력한 Transformer 기반 신경기계번역 구조를 따른다.

위에서 말한 것과 같이 양방향 인코더 BERT 와 좌에서 우로 생성하는 디코더 GPT, 최신 사전학습들(Figure1참고)


Figure1

(a) BERT : 문장의 일부 단어들을 무작위로 마스킹하고 이를 복원하는 방식으로 학습된다. Bidirectional Encoder가 전체 문맥을 이용해 마스크된 B, D를 복원하도록 학습한다. 하지만 각 마스크 위치를 독립적으로 예측하므로, 문장 생성을 위한 디코딩에는 적합하지 않다.

(b) GPT : GPT는 텍스트를 왼쪽에서 오른쪽으로(auto-regressively) 예측하는 방식으로 학습된다. 입력 시 <'s'> 토큰 뒤에 단어들을 한 글자씩 순차적으로 예측한다.

ex) <'s'> → A → B → C → D → E

Autoregressive Decoder만 사용되며 각 시점은 이전 단어들만을 참고할 수 있다.

Unidirectional 정보만 활용되므로 Bidrectional context 학습은 어려울 수 있다.

(c) BART : BERT의 인코더 + GPT의 디코더를 겷합한 구조로 노이즈가 섞인 입력을 복원하는 방식으로 학습된다. 입력 ex) A_B_E (문장의 일부 span이 마스크된 손상된 문장)

  • Bidirectional Encoder로 손상된 문장을 인코딩하고
  • Autoregressive Decoder로 원래 문장 A B C D E를 재구성한다. 입력과 출력이 align되지 않아도 되므로 다양한 형태의 노이즈(문장 순서 섞기 ,span 마스킹 등)을 적용할 수 있고 텍스트 생성 및 이해 과제 모두에 적합하다.

또한 BART는 파인튜닝에 대한 새로운 관점도 제시한다. Machine Translation 작업을 위한 새로운 방식도 제안했는데

  • BART 위의 몇 개의 추가 Transformer 층을 쌓는다.
  • 이 층들이 외국어를 노이즈가 포함된 영어로 번역하는 과정을 학습하도록 구성한다.
  • 이렇게 하면 BART는 사전학습된 타깃 언어 모델처럼 동작하게 되고
  • 결과적으로 강력한 역번역 기반 기계번역 시스템보다 BLUE 점수 1.1 향상을 기록했다.

마지막으로 다양한 최근 학습 목적(objective)을 BART 프레임워크 내에서 ablation 분석을 통해 재현함으로써 데이터 양, 최적화 설정 등의 요소들이 실제로 성능에 얼마나 영향을 주는지 면밀히 분석했다. 이 실험을 통해 학습 objective 자체뿐만 아니라 외부 요인도 매우 중요하다는 점을 확인했다. 그 결과 VART는 실험한 모든 과제에서 가장 일관된 강력한 성능을 보였다.


2. Model

계속 언급하지만 BART는 디노이징 오토인코더(denosing autoencoder)로 손상된 문서를 원래의 문서(original document)로 복원하는 작업을 수행한다.

이 모델은 seq2seq 구조로 구현되며

  • encoder는 손상된 텍스트를 bidirecitional로 인코딩한다.
  • decoder는 이를 좌에서 우로 순차적으로 생성(auto-regressive)한다.

사전학습 단계에서는 원래 문서를 기준으로 negative log-likelihood를 최소화하는 방향으로 학습한다.


2.1 아키텍쳐 (Architecture)

BART는 표준 seq2seq Transformer 아키텍쳐를 기반으로 한다.

다만 GPT의 구조를 참고하여 다음과 같은 두 가지 주요 변경사항이 적용되었다.

  1. activation function은 ReLU 대신 GeLU 함수를 사용한다.
  2. 모델 파라미터는 정규분포 NN(0, 0.02)에서 초기화된다.

모델 크기 구성

  • BART-Base 모델 : 인코더 6층 / 디코더 6층
  • BART-Large 모델 : 인코더 6층 / 디코더 12층

전반적으로 BERT와 매우 유사하지만

  1. 디코더의 각 레이너는 인코더의 마지막 은닉 상태에 대해 cross-attention을 수행한다.

    이는 일반적인 Transformer 기반 seq2seq 구조에서 사용하는 방식과 동일하다. BERT는 디코더가 없기 때문에 이 구조가 존재하지 않는다.

  2. BERT는 단어 예측 전에 별도의 FFN을 추가로 사용하지만 BART는 이 구성 요소를 생략한다.

같은 크기의 BERT 모델과 비교했을때 BART가 약 10% 더 많은 파라미터 수를 가지고 있다


2.2 BART 사전학습

BART는 입력 문서에 노이즈를 가한 후 이를 복원하는 방식의 손실함수(reconstruction loss)를 학습합니다.

이 손실은 디코더의 출력과 원본 문서 간의 cross-entropy로 정의 된다.

기존의 디노이징 오토인코더들과 달리 이전 방식들이 특정한 노이즈 유형에 맞춰 설계된 반면 BART는 어떤 종류의 문서 손상(document corruption)이든 적용할 수 있다는 유연성을 가진다.

극단적으로 입력 문서의 모든 정보가 사라지는 경우에는 일반적인 LM과 동일하게 동작을 한다.

  1. Token masking
    • BERT의 방식과 유사하게 입력 문장에서 임의의 토큰들을 선택하여 [mask] 토큰으로 대체한다.
  2. Token Delection
    • 입력 문장에서 임의의 토큰들을 완전히 삭제한다.
    • 마스킹고 달리 모델은 무엇이 빠졌는지 어디가 비었는지를 직접 추론해야한다.
  3. Text Infilling (텍스트 채우기)
    • 여러 개의 텍스트 span을 샘플링한다.
    • 각 span의 길이는 Poisson 분포 (λ = 3)에서 샘플링된다.
    • 선택된 span은 하나의 [mask] 토큰으로 대체된다.
      • ex) “B C” ⇒ [mask]
      • 길이 0인 span은 단순히 [mask]를 삽입하는 효과이다.
    • 이 방식은 SpanBERT에서 영감을 받았으나 SpanBERT는 clamped geometric distribution을 사용하고 각 span은 동일 길이의 [maks] 시퀀스로 대체한다.
    • BART의 text infilling은 모델이 단지 단어를 예측하는 것뿐만 아니라 해당 위치에 몇 개의 단어가 들어가야 하는지까지도 추론하도록 훈련한다.
  4. Sentence Permuation (문장 순서 섞기)
    • 문서를 문장 단위로 나누고 문장들의 순서를 무작위로 섞는다.
    • 문맥 순서에 대한 모델의 이해 능력을 높이는데 도움된다.
  5. Document Rotation (문서 회전)
    • 문서 내에 하나의 토큰을 균등하게 무작위로 선택한다.
    • 해당 토큰을 문서의 시작점으로 회전시킨다.
    • 문서 회전은 모델이 문서의 시작 위치를 식별하는 능력을 학습하도록 유도한다.

Figure 2 :


이 변형 기법들을 조합해서 동시에 적용할 수도 있다.


3 Fine-tuning BART

The representations produced by BART can be used in several ways for downstream applications


3.1 Sequence Classification Tasks

시퀀스 분류 과제에서는 같은 입력 문장을 인코더와 디코더에 동시에 입력한다. 그리고 디코더의 마지막 토큰에 해당하는 은닉 상태를 새로운 multi-class linear classifier의 입력으로 사용한다.

이 방식은 BERT의 [CLS] 토큰 방식과 유사하지만 BART에서는 이 특수 토큰을 입력의 맨 끝에 추가한다.

→ 이렇게 하면 디코더에서 이 토큰이 전체 입력 문장에 attend 할 수 있다.


3.2 Token classification Task

토큰 분류 과제(ex : SQuAD에서 정답 구간의 시작/끝 위치 분류)에서는 전체 문서를 인코더와 디코더에 넣고 디코더의 top hidden state를 각 단어에 대한 표현으로 사용한다. 이 표현을 기반으로 각 토큰에 대해 분류 작업을 수행한다.


3.3 Sequence Generation Tasks

BART는 autoregressive decoder를 갖고 있으므로 요약이나 추상적 질문 생성 같은 시퀀스 생성 과제에 직접 파인튜닝 할 수 있다.

이러한 과제에서 일반적으로 입력에서 정보를 복사하되 변형해서 출력하기 때문에 BART의 디노이징 사전학습 목표와 매우 유사한 성질을 가진다.

  • 인코더 입력 : 원본 시퀀스
  • 디코더 출력 : auto-regressive 방식으로 순차 생성되는 결과

Figure 3 :

이 그림은 BART를 classfication과 Machine Translation task에 어떻게 파인튜닝하는지를 시각적으로 보여주는 자료이다.

(a) classificaation Task

BART를 분류 작업에 사용할땐 같은 입력 문장(ex : A B C D E)을 인코더와 디코더에 모두 넣는다.

  1. A B C D E → Pre-trained Encoder
  2. <'s'> A B C D E → Pre-trained Decoder
  3. 디코더의 hidden state를 이용해 label 예측

디코더는 전체 시퀀스를 고려할 수 있으므로 마지막 토큰의 은닉 벡터를 분류기 입력으로 사용한다. 이는 BERT의 [CLS] 토큰 방식과 유사한 효과를 갖는다.

(b) Translation Tasks

BART를 영어 타깃 기계번역 모델로 활용하는 구조이다.

  • Randomly Initialized Encoder 새로운 외국어를 입력으로 받아 BART의 입력 형식에 맞게 변환하는 작은 인코더 → 완전히 새로 초기화됨, 원래 BART의 vacabulary와 달라도 됨
  • Pre-trained Encoder 실제로는 단어 임베딩 레이어의 역할만 수행
  • Pre-trained Decoder Bart의 디코더는 autoregressive 방식으로 영어 문장 생성
  1. 외국어 입력(α β γ δ ε) ⇒ Random Encoder
  2. 그 결과 → Pre-trained Encode (BART 입력 수준의 벡터로 변환)
  3. <'s'> A B C D → Pre-trained Decoder → 영어 문장 생성

전체 BART 모델을 타깃 언어(영어)의 사전학습 디코더처럼 사용

새로운 소스 인코더만 훈련해도 BART 디코더가 잘 작동함


4.Comparing Pre-training Objectives

BART는 기존 방식보다 훨씬 더 다양한 형태의 노이즈 기법을 사전학습에 활용할 수 있다.

이 절에서는 base 모델(인코더 6층, 디코더 6층, hidden size 768)을 기준으로 다양한 사전학습 objective를 비교한다.


4.1 Comparison Objectives

사용한 학습데이터, 리소스, 모델 구조, 파인튜닝 방식이 서로 달랐기 때문에 공정하게 비교하기 어려웠다.

이를 해결하기 위해 이 논문은 최근 제안된 대표적인 idscriminative/generative 사전학습 방식들을 직접 다시 구현했고 가능한 objective 외의 변수는 동일하게 유지하려고 했다.

비교한 사전학습 방식들:

  1. Language Model
    • GPT와 동일한 좌→우 단방향 언어모델
    • BART 디코더에서 cross-attention을 제거한 구조와 동일
  2. Permuted Language Model
    • XLNet 방식 기반
    • 전체 토큰의 1/6을 샘플링하여 랜덤 순서로 autoregressive하게 생성
    • 단 XLNet 고유의 상대 위치 임베딩, segment attention 등은 구현하지 않음
  3. Masked Language Model
    • BERT 방식
    • 전체 입력의 15% 토큰을 [mask]로 바꾸고 마스킹된 토큰을 독립적으로 예측
  4. UniLM에서 착안
    • BERT-style 마스킹에 더해 자기어텐션 마스크를 추가함
    • 마스크 비율
      • 1/6 : 좌→우
      • 1/6 : 우→좌
      • 1/3 : 마스크 없음 (양방향)
      • 1/3 : 앞 50%는 마스크 없음, 나머지 50%는 좌→우
  5. Masked Seq2Seq
    • MASS에서 영감
    • 전체 입력의 50%를 span 단위로 마스킹
    • Seq2Seq 모델을 학습시켜 해당 span을 복원하게 함

추가 세부사항

  • Permuted LM, Masked LM, Multitask LM에서는 two-steam attention을 활용
    • 출력 시퀀스의 확률을 효율적으로 계산
    • 디코더는 대각선 self-attention 마스크를 통해 좌→우로 예측
  • 두가지 방식으로 실험
    1. 표준 Seq2Seq 학습 :

      인코더에 source, 디코더에 target 입력

    2. prefix 방식을 사용하는 디코더 only 학습

      디코더 입력에 source + target을 함께 넣고 loss는 target 부분에만 적용

BART 모델은 1. 표준 Seq2Se1 방식이 더 잘 작용했고 다른 모델들은 2. prefix 방식이 더 잘 작동했다.

평가방식은 각 모델이 fine-tuning 시 목표인 인간 언어 텍스트를 얼마나 잘 모델링하는지 직접 비교하기위해 perplexity를 table에서 보자


table 1

Table 1: Comparison of pre-training objectives.

모든 모델은 동일한 크기이며, 책과 위키피디아 데이터를 조합한 코퍼스에서 100만 스텝 동안 학습되었습니다.위쪽 두 블록(기존 방식들)의 항목들은 이전 연구에서 제안된 사전학습 objective를 기반으로 하며,같은 코드 베이스와 동일한 파인튜닝 절차로 다시 학습시켰습니다.아래쪽 두 블록(BART의 노이즈 기법)의 항목들도

같은 환경에서 학습 및 파인튜닝되었으며,사전학습 목적 외의 요소들은 가능한 한 통제하고평가 대상인 사전학습 objective 자체에만 집중할 수 있도록 간소화되었습니다

결과적으로 과제마다 성능 차이는 있지만,Text Infilling 기반의 BART 모델들이 가장 일관되고 강력한 성능을 보여주었습니다.


4.2 Downstream Tasks 요약

  1. SQuAD (질의응답)
    • 위키피디아 문단 기반의 추출형 QA 과제
    • 정답은 문서 내 span으로 존재
    • BART는 질문 + 문맥을 인코더와 디코더에 모두 입력
    • 토큰별 시작/끝 위치를 분류기(classifier)로 예측
  2. MNLI (자연어 추론)
    • 두 문장의 관계(함의/중립/모순)를 예측하는 분류 과제
    • 두 문장을 [EOS]로 연결해 인코더와 디코더에 입력
    • BERT와 달리, EOS 토큰의 표현을 사용해 분류 수행
  3. ELI5 (장문 생성형 QA)
    • 질문 + 여러 문서들을 조건으로
    • 긴 정답 문장 생성
    • 생성형 학습 과제
  4. XSum (뉴스 요약)
    • 매우 추상적인 한 줄 요약 생성
    • 입력 뉴스와 요약 사이의 표현 차이가 큼
  5. ConvAI2 (대화 응답 생성)
    • 문맥 + 사용자 프로필(persona)을 조건으로
    • 적절한 대화 응답 생성
  6. CNN/DM (뉴스 요약)
    • 비교적 본문에 가까운 요약 생성 과제
    • XSum보다 덜 추상적

4.3 Results

Table 1에서 나타난 결과로부터 몇가지 경향성을 확인할 수 있다.

사전학습 방식의 성능을 과제별로 크게 다름

  • 사전학습 objective의 효과는 과제에 따라 매우 다르게 나타난다.
  • ex)
    • 단순한 언어모델(GPT 방식)은 ELI5 과제에서는 최고 성능을 내지만 SQuAD 과제에서는 최악의 성능을 보임
  1. Token 마스킹은 핵심 요소

    • 문서를 회전하거나 문장 순서를 섞는 방식을 단독으로는 성능이 매우 낮음
    • 반면 성능이 좋은 방법들은 대부분 token masking, token deletion 혹은 self-attention 마스크를 사용
    • 특히 token deletion은 생성 과제에서 masking보다 더 효과적일 수 있다.
  2. 좌→우 사전학습은 생성 과제에 유리

    • Masked LM, Permuted LM은 생성 과제에서 상대적으로 낮은 성능을 보임
    • 이들은 유일하게 사전학습 시 auto-regressive 언어 모델링이 포함되지 않은 구조이기 때문
  3. SQuAD 성능에는 양방향 인코더가 중요

    • Devlin et al. (2019)에서도 지적했듯이 좌→우 디코더만 사용하는 모델은 SQuAD에서 성능이 낮음. 미래 문맥 정보가 분류 결정에 중요하기 때문.
    • 그러나 BART는 절반의 양방향 층 수만으로도 유사한 성능을 달성함.
  4. 사전학습 objective 외의 요소도 성능에 영향

    • Permuted Language Model은 XLNet보다 낮은 성능을 보임.
    • 이는 상대 위치 임베딩, segment recurrence 등 아키텍처 차이 때문일 가능성이 높음.
  5. ELI5 과제에서는 순수 언어모델이 가장 뛰어남

    • ELI5는 다른 과제들보다 PPL(Perplexity)이 훨씬 높고, 입력과 출력의 연결이 느슨한 특징을 가짐.
    • BART보다 GPT 스타일의 순수 언어모델이 더 효과적임을 보여줌.
  6. BART는 가장 일관되게 강력한 성능을 보임

    • ELI5를 제외하면 Text Infilling 방식의 BART 모델은 모든 과제에서 안정적이고 우수한 성능을 기록함.

0개의 댓글