본문 바로가기

자연어처리(NLP)

BART: Denoising Sequence-to-Sequence Pre-training for NaturalLanguage Generation, Translation, and Comprehension 논문리뷰

반응형

 안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 'Master.M'입니다. 현재 저는 '초등학생도 이해하는 자연어 처리'라는 주제로 자연어 처리(NLP)에 대해 포스팅을 하고 있습니다. 제목처럼 진짜 핵심 내용을 쉽게 설명하는 것을 목표로 하고 있으니 자연어 처리(NLP)에 입문하고 싶은 분들은 많은 관심 부탁드립니다. 이번 시간에 알아볼 내용은 'BART: Denoising Sequence-to-Sequence Pre-training for NaturalLanguage Generation, Translation, and Comprehension'논문입니다. 

 

Abstract

  • GPT는 decoder(left-to-right decoder)로만 이루어져 있는 생성모델 
  • BERT는 encoder(bidirectional encoder)로만 이루어져 있는 언어모델
  • encoder와 decoder가 모두 있게 이 두 모델을 합치면 어떨까?

 

Introduction

  • BERT는 encoder여서 generation task에 사용불가능
  • GPT는 단방향(left-to-right) decoder여서 양방향 문맥정보 반영 불가
  • BART
    • Bidirectional(BERT)과 Auto-Regressive Transformer(GPT)를 합친 모델
    • pre-training시 text data에 임의적인 noising을 한 후, 이를 다시 원래 text data로 제조정 하며 학습
    • 일반적인 text generation 뿐만 아니라 문서를 이해(comprehension) 하는 task에서도 좋은 성능을 보임, 즉 문서를 이해하고 있음

 

Architecture

  • BART는 손상된 문서를 기존 문서로 되돌리는 "denoising autoencoder"
  • 기본적인 seq2seq transformer 구조
  • ReLU대신 GeLUs활성함수 사용
  • Base Model: 6 layer, Large Model: 12 layer로 구성
  • decoder의 각 layer가 encoder의 최종 hidden layer와 cross-attention을 수행 (기존 Transformer Decoder와 동일)
  • BERT는 단어를 유추해내기 위해 추가적인 feed-forward 네트워크를 사용하지만, BART는 이를 사용하지 않음

 

Pre-training BART

Pre-training

  • 문서를 복구하는 과정에서 decoder의 output과 원본 문서 사이의 cross-entropy를 사용
  • 기존의 특정 noise sheme에 한정되었던 denoising autoencoder들과 다르게, BART는 어떤 종류의 문서 오염방식(document corruption)이라도 가능
  • Document corruption(문서 오염) 종류
    • Token Masking
      • BERT에서 따온 방식으로, token들을 랜덤 하게 샘플링하고 이를 [MASK] token으로 치환
    • Token Deletion
      • 랜덤으로 뽑힌 token들을 지우는 방식
      • 모델이 Masking된 위치를 알 수 있는 "Token Masking"과 달리, 모델이 지워진 token의 위치 역시 알아내야 함
    • Text Infilling
      • 여러 개의 text span을 선택한 후, 이를 하나의 [MASK] token으로 치환
      • 이때 span의 길이는 푸아송 분포(람다=3)를 따름. 이 방식은 "Span-BERT"에서 영감을 받았음, 그러나 동일한 span 길이를 masking 하는 "Span-BERT"방식과 달리 "Text Infilling"방식에서는 모델이 masking 된 span의 길이도 알아내야 함
    • Sentence Permutation
      • 문서를 문장단위로 나누고, 문장들의 순서를 랜덤 하게 섞음
    • Document Rotation
      • 랜덤하게 token이 선택되고, 문서가 선택된 token부터 시작되게 함
      • 모델은 원본 문서의 시작 token을 알아내야 함

 

Fine-tuning  BART

Fine-tuning

  • Sequence  Classification  Tasks
    • 동일한 input이 encoder와 decoder에 들어가고, 마지막 decoder token의 마지막 hidden state가 새로운 multi-class linear classifier에 들어감
    • 이 방법은 BERT가 CLS token으로 분류하는 것에서 영감을 얻음
    • decoder의 token을 대표하는 token을 마지막에 추가해 전체 input에 대한 attention을 계산할 수 있도록 함
  • Token Classification Tasks
    • 토큰단위로 분류를 수행하는 task로, 주어진 본문에서 정답을 찾아야 하는 "SQuAD"가 있음
    • SQuAD는 정답에 해당되는 Start Point와 End Point의 토큰을 찾아야 함
    • 각 최상단 hidden state를 사용하여 분류를 수행
  • Sequence Generation Tasks
    • BART는 autoregressive decoder를 가지고 있기 때문에 QA나 요약과 같은 Sequence Generation task에 바로 적용 가능
    • 이들 Task들은 input에서 정보가 복사되지만 조작된다는 특징 있어 denoising pre-training objective와 밀접한 연관이 있음
    • encoder의 입력은 input sequence가 되고 decoder는 autoregressive 하게 출력
  • Machine  Translation
    • 이전 연구에 따르면 모델이 사전학습된 encoder를 합치는 것으로 개선될 수 있지만, 사전학습된 decoder를 사용하는 것에 대한 이점은 제한적임
    • BART에서는 모델 전부를 하나의 사전 학습된 기계 번역을 위한 decoder로 사용하고, bitext로부터 학습된 새로운 encoder 파라미터를 추가함으로써 사용
    • 자세한 과정
      • BART encoder의 embedding 레이어를 새롭게 초기화된 encoder로 교체
      • 모델은 end-to-end로 학습되며, 이 새로운 encoder를 학습시키는 것으로 외국어(영어가 아닌) 단어들을 영어로 매핑하여 바트가 외국어를 denoise 할 수 있도록 함
      • encoder를 2가지 스텝으로 훈련시킵니다. 두 방식 모두 BART 모델의 출력으로 cross-entropy 로스로 역전파를 적용해 수행
      • 첫 번째, BART의 대부분의 파라미터를 freeze하고 랜덤으로 초기화된 (embedding layer를 대체하는) source encoder, BART의 positional embedding, 그리고 첫번째 encoder layer의 self-attention input projection matrix만 학습
      • 두 번째, 모든 모델 파라미터를 작은 수의 iteration으로 학습

 

Result

  • Pre-training 방법의 성능은 task에 크게 의존
    • Language Model의 경우 ELI5에서 가장 좋은 성능을 보였으나, SQuAD에서는 가장 나쁜 성능을 보여줬다.
  • Token Masking은 중대한 영향을 미침
    • rotating documentation이나 permuting sentences 기법의 경우 단독으로 사용하면 성능이 좋지 않음
    • token deletion이나 masking 또는 self-attention masks를 사용했을 때 좋은 성능을 보였고, 특히 token deletion의 경우 generation task에서 높은 성능을 냄
  • Left-to-Right pre-training은 generation task의 성능을 높임
    • Masked Language Model과 Permuted Language Model은 generation task에서 성능이 좋지 못함
    • 해당 모델들은 left-to-right auto-regressive 모델링이 적용되지 않았기 때문이라 추정
  • Bidirectional encoder는 SQuAD에 중대한 영향을 미침
    • left-to-right decoder는 SQuAD에서 약한 성능을 보임
    • 그 이유는 classification decision에서 future context 정보가 중요하기 때문
  • Pre-training 목표만이 중요한 요소가 아님
    • Permuted Language Model은 XLNet보다 약한 성능을 보였음
    • 그 이유로 XLNet에 적용된 relative-position embeddings 또는 segment-level recurrence와 같은 기법이 적용되지 않았기 때문
  • Pure language Model들은 ELI5에서 최고의 성능을 발휘
    • ELI5의 경우 다른 task에 비해 높은 PPL을 가지고, BART보다 다른 모델의 성능이 더 높음
    • 그 이유로 input과 output의 연관성이 적어, BART가 좋은 성능을 내지 못했기 때문
  • BART는 가장 일관되게 최고의 성능을 달성
    • Text-infilling을 사용한 BART는 ELI5를 제외한 모든 Task에서 가장 좋은 성능을 보였음

 

Large-scale Pre-training  Experiments

  • Experimental  Setup
    • 인코더와 디코더 각각 12개의 레이어인 large model을 프리트레인 시킴
    • RoBERTa처럼 배치 사이즈 8000, 500000 스텝의 학습 진행
    • 문서는 GPT-2와 동일한 BPE 방식으로 토크나이징
    • text infilling과 sentence permutation 기법 적용
    • 각 문서에 토큰의 30%를 마스킹하고, 모든 문장들을 섞음
    • 마지막 10%의 training step에서는 dropout을 적용하지 않았다.
    • CNN/DM 요약 데이터셋 사용
    • 사이즈가 큰 프리 트레인 모델이 더 성능이 좋을 것이라 가설을 세움

 

Discriminative  Tasks

  • Discriminative Tasks
    • 위의 표는 BART와 다른 모델들로 SQuAD와 GLUE 태스크를 적용한 것
    • 전체적으로 BART는 대부분의 task에서 다른 모델들과 비슷한 성능을 보이고 있음
    • 이는 BART가 generation Task에서 성능 향상을 이뤘는데, 이것이 discriminative task에는 영향을 미치지 않았다는 것을 의미

 

Summarization Task
Dialogue Task
Abstractive Q&A Task
Translation Task

  • Generation Tasks
    • Summarization, Dialogue, Abstractive Q&A, Translation task를 실험
    • BART는 모든 Generation task들에 대해 성능이 유의미하게 향상됨
    • 특히 Summarization에서 높은 성능향상을 보임

 

Conclusions

  • 연구팀은 손상된 문장을 원본으로 복구하도록 학습하는 프리트레인 방법론을 사용한 BART 모델을 제안
  • BART는 discriminative task에서 RoBERTa와 비슷한 성능을 달성.
  • Generation Task에서는 SOTA 성능을 달성
  • 추가 연구로 프리 트레인을 위해 텍스트를 손상시키는 새로운 방법을 제안

  지금 까지 저희는 'BART'에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다. 궁금한 사항 혹은 앞으로 다루어 주었으면 좋을 주제가 있으시면 댓글 남겨주시면 감사하겠습니다. 저는 '코딩 오페라'의 'Master.M'이었습니다. 감사합니다.

 

References

https://paperswithcode.com/paper/bart-denoising-sequence-to-sequence-pre

 

Papers with Code - BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehen

#2 best model for Open-Domain Question Answering on ELI5 (Rouge-L metric)

paperswithcode.com

https://chloelab.tistory.com/34

 

[논문리뷰] BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

Background Key features : NLP(Natural Language Processing), Language modeling objective, Transformer, Pre-training, Fine-tuning, Language Model, BERT, GPT, Sequence-to-Sequence(Seq2Seq), BART, Bidirectional Auto-Regressive Transformer 안녕하세요~ NLP

chloelab.tistory.com

https://facerain.club/bart-paper/

 

[논문 리뷰] BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehensio

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension 논문을 리뷰합니다.

facerain.club

 

반응형