본문 바로가기
논문리뷰

[논문리뷰] BART

by 단깅수 2024. 5. 15.
728x90

자, 오늘은 X:AI Seminar 2024에서 진행한 BART 논문 리뷰를 가져왔습니다.

해당 논문은 2019년에 발표된 논문입니다.

 

NLP 모델계의 중추 역할을 담당하고 있는 BERT와 GPT-1 의 두 모델의 각각 문제점을 짚고 이를 해결하려는 방향으로 BART 모델을 구현했다고 시사하고 있습니다.

 

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

저자 : Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov, Luke Zettlemoyer

[1]  Background

 BART는 NLP 분야의 중추가 되는 BERT, GPT-1의 특징을 먼저 짚고 시작합니다. 모델 학습을 할 때 보통 사전학습 단계, 파인튜닝 단계로 나누어 진행하는데 이 사전학습 부분에서 대표적인 Task로 Auto Encoding과 Auto Regressive가 있습니다.

 

pre-training의 대표적인 objective 두 가지 AE, AR

 

  • Auto Encoding
    • 대표적인 예시로 BERT가 있음
    • 입력 토큰 중 일부분을 마스킹 처리하고 마스킹된 부분을 예측하는 과정
    • Mask Token이 뭔지 독립적으로 예측하기 때문에 Mask Token들 사이의 관계와 의존성은 학습할 수 없고 사전학습 시에만 Mask Token이 등장하기 때문에 Pre-training과 Fine-tuning 사이에 mismatch가 발생한다는 문제가 있음
  • Auto Regressive
    • 대표적인 예시로 GPT가 있음
    • 앞의 토큰을 토대로 뒤에 나올 내용(토큰)이 뭔지 예측하는 과정
    • 단방향으로만 학습한다는 문제가 있음

 그래서 이 각 방식에 대해 문제점이 있기 때문에 이를 해결하기 위해서 XLNet, MASS, BART 등의 논문이 나왔고 이번 포스팅에서는 BART를 자세히 볼 예정입니다.


[2] Introduction

 최근 Self-Supervised 방법론들은 NLP Task에서 엄청난 성과를 거둬왔습니다. Self-Supervised 방법론이란 비지도 학습과 같은 의미라고 생각하면 되겠고, 그 중에서 눈여겨봐야 하는 점은 MLM, Masked Language Model입니다. BERT에서도 사용한 이 MLM 방식은 NLP 분야에서 특히 번뜩이는 아이디어였던 거죠. BERT에서 사용했던 또 다른 학습법인 NSP는 성능이 잘 나오지도 않고 오히려 학습에 방해된다고 여겨져 안쓰이는 추세가 됐다고 합니다. 그래서 이러한 기존의 방법론들은 아래 예시처럼 특정 Task에 집중했기 때문에 모든 방법론에 적용할 수 없다는 점이 문제였는데요. 따라서 모든 Task에 적용할 수 있는 범용적이고 성능 좋은 모델을 만들고자 고안된 것이 BART라고 할 수 있겠습니다.

 

인코더 - 디코더 구조의 BART 모델

 

 BART 모델은 기본적으로 인코더 – 디코더 구조를 따릅니다. 임의의 Denoising 함수를 통해 손상된 Input이 Encoder에 입력되고 이를 디코더에서 원래의 텍스트로 복원하기 위해 학습을 진행합니다. 여기서 핵심은 Denoising 방법의 유연성인데요. BART에서는 5가지 Denoising 방법을 사용했고 이 중에서 어떤 방법이 가장 성능이 좋을지 평가하는 식으로 연구를 이어나갔다고 합니다.


[3] Model Architecture

 디코더에서 GPT와는 다르게 활성화함수로 ReLU 함수가 아닌 GeLU 함수를 사용했다고 하구요. 파라미터는 평균이 0, 분산이 0.2인 정규분포를 따르도록 설정했다고 합니다. BART base 모델은 각각 6개의 Layer로 구성된 Encoder, Decoder를 사용했다고 하고, Large 모델은 각각 12개의 Layer로 사용했다고 합니다. 그리고 디코더의 각 Layer들은 Transformer처럼 Encoder의 마지막 Hidden Vector와 Cross-attention을 수행했고 BERT에서는 마스킹된 단어를 예측하기 위해 Feed-Forward Network를 사용했지만 BART에서는 Encoder에서 Masking 부분을 예측하지 않고 Decoder에서 문장을 재구성하는 방식으로 학습하기 때문에 FFNN을 사용하지 않는 점이 또 하나의 특징입니다.

 

BART에서 사용한 5가지 Noise 방법론

 

 자 그러면 BART에서 5가지 Noise 방법론을 사용했다고 앞에서 언급드렸는데 뭐뭐가 있는지 하나씩 살펴보겠습니다. 먼저 두 개의 문장 ABC와 DE가 입력되었다고 가정하겠습니다.

 

  • 1번 Token Masking
    • BERT에서 사용한 방식과 동일
    • 임의의 토큰을 마스크 토큰으로 바꾸고 그 마스크 토큰이 뭔지 예측하는 방식
  • 2번 Token Deletion
    • 임의의 토큰을 삭제하고 삭제한 토큰의 위치를 찾도록 학습하는 방식
  • 3번 Text Infilling
    • 람다가 3인 포아송 분포를 따르도록 설정 후 한 부분을 Span Length의 Mask 토큰으로 대체
    • Span length라고 언급한 이유는 그 길이가 0이 될수도 있고 K개의 토큰이 있다면 K개 전부 마스킹 될 수도 있기 때문
    • 한 구간에 해당하는 마스크 토큰 안에 몇 개의 토큰이 존재할지 예측하도록 학습하는 방식이 Text Infilling
  • 4Sentence Permutation
    • 문장의 순서를 랜덤으로 섞는 방식
  • 5Document Rotation
    • 하나의 토큰을 임의로 뽑고 그 토큰을 시작점으로 해서 회전하도록 Denosing을 주는 방식
    • 그래서 모델로 하여금 문서의 시작점을 찾도록 학습시키는 방식

 

BART의 Fine-tuning

 

 다음으로 BART의 Fine tuning 부분을 보겠습니다. 위에 두 예시처럼 Sequence 혹은 Token을 분류하는 문제에서 적용될 수 있습니다. 특히 Sequence 분류의 경우 BERT의 CLS 토큰으로 분류 태스크를 수행하는 점에서 영감을 얻었다고 언급하고 있고 더코더의 마지막에 토큰을 추가하고 해당 토큰을 Multi class linear classifier에 입력해서 분류 태스크를 수행한다고 합니다. 그 외에 BART는 auto-regressive 한 디코더를 사용하기 때문에 Q&A나 요약과 같은 문장 생성 Task도 수행할 수 있으며 번역 Task도 수행할 수 있다고 합니다. BART는 단일 언어로 학습했기 때문에 다른 언어의 텍스트가 들어오면 원래는 처리할 수 없지만 그림과 같이 새로운 인코더를 추가해줌으로써 이를 해결했다고 합니다.


[4] Experiments & Results

 다음으로 여러 실험과 결과 부분 보겠습니다. 여기 아래 보이는 5가지 모델들과 비교해서 여러 Downstream Task 성능을 비교해 본 지표입니다. 각각의 모델들은 Task에 따라 성능이 좋고 나쁨이 확실하게 갈리는데 특히 앞에서 설명드렸던 Text Infilling Denoising 방식을 사용한 BART가 대부분의 Task에서 일관적으로 뛰어난 성능을 보였습니다.

 

Experiments 1

 

  • Language Model : GPT와 유사한 Left - to - Right Transformer 모델
  • Permuted Language Model : XLNet 기반, 1/6 의 토큰만 샘플링 후 무작위로 토큰을 생성하는 모델
  • Masked Language Model : BERT와 같은 방법론 적용, 15% 토큰을 마스크 토큰으로 대체 후 예측
  • Multitask Masked Language Model : MLM에 self-attention mask를 추가해서 학습
  • Masked S2S : MASS 에서 영감을 받아 토큰의 50%를 마스킹 후 마스킹 된 부분 예측
    --> Task 별로 성능이 좋고 나쁨이 확실한데 BART는 대부분의 Task에서 일관적으로 뛰어난 성능을 보임

Experiments 2

 

 다음은 모델 크기를 키워서 성능이 좋게 만든 후에 다른 모델과 성능을 비교한 내용입니다. 먼저 1번으로 분류 Task인데요. RoBERTa 모델과 성능이 대부분 비슷한 경향을 보이는 걸 알 수 있습니다. 하지만 BART는 요약과 번역 분야에서 뛰어난 성능을 보였는데요. 2번을 보시면 CNN/DaliyMail dataset과 Xsum dataset에 대해서 각각 Text Summerization Task를 진행한 결과입니다. 두 Task 모두 BART가 큰 성능 향상을 보였고 Xsum에서는 성능 차이가 좀 많이 두드러지게 나는 걸 확인할 수 있습니다. 3번 번역 Task에서는 루마니아어를 영어로 번역하는 Task를 진행했다고 하는데 기존 Transformer 모델보다 성능이 향상된 걸 볼 수 있습니다. 그래서 이를 통해 BART가 요약, 번역 등의 Task에서 도드라지게 우수한 모델이지만 기존 분류 Task에 있어서도 RoBERTa와 별반 차이 없이 우수한 성능을 보인 것에 의의가 있다고 하고 처음에 언급드렸던 대부분의 NLP Task에 적용할 수 있는 모델을 만들고자 했던 목표를 달성했다고 볼 수 있겠습니다.

 

 

추가적으로 BART가 특히 요약 분야에 강점이 있고, 수치적 지표 향상뿐만 아니라 질적인 측면에서도 우수하다는 점을 시사하고 있습니다.


[5] Conclusion

  • BART는 AutoEncoding (Encoder) + AutoRegression (Decoder)을 결합한 모델
  • 문장 이해, 분석뿐만 아니라 생성, 요약, 번역 등 다양한 Task에 모두 잘 적용될 수 있도록 학습하는 것이 목표
  • 5가지 Denoising 방식을 사용했는데 그 중 Span Mask에 몇 개의 Token이 들어 있는지 예측하는 Text Infilling 방식을 채택한 BART 모델이 가장 성능이 뛰어났음
  • 특히 문장 요약, 생성 등의 분야에서 성능이 뛰어났으며 이러한 분야에서 특출남에도 기존 분류 Task에서도 RoBERTa와 비슷한 성능을 보여주어 여러 Task에서 SOTA 달성

[6] Reference

https://www.youtube.com/watch?v=v7diENO2mEA

https://www.youtube.com/watch?v=VmYMnpDLPEo&t=1332s

https://chloelab.tistory.com/34

https://velog.io/@choonsik_mom/BART-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

https://westshine-data-analysis.tistory.com/152

728x90

'논문리뷰' 카테고리의 다른 글

[논문리뷰] XL-Net  (0) 2024.07.03
[논문리뷰] Transformer  (0) 2024.06.26
[논문리뷰] MT-DNN  (0) 2024.05.23
[논문리뷰] BERT  (0) 2024.04.30
[논문리뷰] Sequence to Sequence Model  (0) 2024.03.19