Study/자연언어처리 NLP

Encoder-Decoder Model (BART)

김 도경 2025. 1. 17. 18:18
Encoder
  • Encoder : source 문장의 정보를 압축
  • Encoder는 주어진 문장을 분류하는 Task에서 좋은 성능을 보임. (ex. 감정 분석)

  • Masked Language Modeling : 문장 중 빈칸을 임의로 만들어 해당 앞/뒤 문맥에서 어떤 단어가 와야 가장 적절한지를 맞추는 방식으로 학습 -> 양방향(Bidirectional) 성격
    - 예) 우리는 지금 어렵지만 열심히 “공부를” 하는 중이야. ○ 예) 우리는 지금 어렵지만 열심히 [MASK] 하는 중이야.
Decoder
  • Decoder : source 문장의 정보를 받아서 target 문장을 생성
  • Decoder는 다음 단어를 생성하는 task에서 좋은 성능을 보임. (ex. 요약, 번역)
  • Causal Language Modeling : 문장의 흐름대로, “앞” 의 문맥이 주어졌을 때 다음으로 오는 단어를 맞추는 방식으로 학습 -> 단방향(Unidirectional) 성격 
    - 예) 우리는 어렵지만 열심히 “공부를” ○ 예) 우리는 어렵지만 열심히 ______
Encoder-Decoder
  • Encoder와 Decoder를 동시에 사용하는 구조
  • Sequence-To-Sequence task 수행에 특화된 모델 구조
    - Sequence-To-Sequence는 source 문장을 target 문장으로 변환하는 작업
  • Encoder-Decoder는 source 문장과 target 문장의 속성이 다르고 이를 변환하는 task에서 좋은 성능 (ex. 요약, 번역)
  • source 문장과 target 문장의 길이가 다르더라도 이 부분을 반영하여 task 를 수행 가능

  • Encoder-Decoder 구조를 사용해 번역 task를 해결하는 예시
    - Source sequence : this is a sentence
    - Target sequence : 이것은 문장이다
BART

(Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension)

  • Encoder-Decoder 구조의 효과적인 활용을 위해 새로운 학습 방식 제안
    - Encoder-Decoder 구조는 생성을 위해 Fine-Tuned 될 때 특히 효과적.
  • 임의로 Noise를 다양한 방식으로 추가하여 원본 문장을 손상시키고 복원시킴으로써 Pretraining 진행
    - 원본 문장 중 연속된 여러 개의 단어 쌍(span)을 mask 하는 등 5개의 다양한 Noise 추가 방식 제안.
    - Noise 를 추가하는 Pretraining 방식으로 포괄적인 task 에도 잘 작동

  • BART 구조
    - BART는 Transformer와 같은 구조를 사용
    - 입력 문장에 다양한 방식의 Noise를 추가.

  • BART Pre-training
    - BART는 총 5개의 다양한 유형의 noise 추가 방법을 사용.
    - 다양한 task 에도 적용 가능.

    1) Token Masking
    - BERT(Devlin et al., 2019)와 같이 임의의 token 을 샘플링하여 [MASK] token 으로 대체한 문장을 Encoder에 입력
    - Decoder에서는 원래 문장을 생성

    2) Token Deletion
    - Token Masking과는 대조적으로, 임의의 token 을 원본 문장에서 삭제한 뒤 Encoder에 입력
    - Decoder에서는 원래 문장을 생성

    3) Text Infilling
    - 각각의 Token을 Masking 하지 않고, 연속된 0 ~ N개의 token으로 이루어진 다수의 span을 마스킹 한 뒤, Encoder에 입력 
    - Decoder에서는 원래 문장을 생성

    4) Sentence Permutation
    - 문서를 마침표 (.)를 기준으로 여러 문장들로 나누고, 이 문장들은 임의의 순서로 섞은 뒤, Encoder에 입력.
    - Decoder에서는 원래 문장을 생성

    5) Document Rotation
    - 전체 문서에서 임의로 선택된 token이 시작 token이 되도록 회전한 문장을 Encoder에 입력.
    - Decoder에서는 원래 문장을 생성

  • BART Fine-tuning
    - Source 문장을 Encoder에 넣고, Decoder가 target 문장을 생성하는 방식으로 Fine-tuning 진행
    - 생성 Task에서 Fine-tuning 될 때 특히 효과적
    - 기계번역에서는 Pre-training 학습하지 않은 언어도 번역할 수 있도록 Randomly Initialized Encoder 를 추가하는 새로운 방식 제시.

  • BART로 풀 수 있는 downstream task

    1) Sequence Classification Tasks 
    - 문장의 class 을 분류하는 task ○ 예) 감정분석 (NSMC) 
    - 동일한 입력이 Encoder 및 Decoder에 입력되고 최종 Decoder 토큰이 Classifier를 통과하여 Classification
    - BERT에서는 [CLS] 토큰으로 분류를 수행하지만, 이에 Decoder 가 추가되기에, 토큰에 대한 Representation이 전체 입력으로부터 Decoder 에 반영될 수 있도록 Decoder 에 토큰 을 추가

    2) Token Classification Tasks
    - 문장의 각 토큰을 분류하는 task ○ 예) 개체명 인식(NER : Named Entity Recognition), 품사 구분(POS : Part-Of-Speech Tagging)
    - 전체 문서를 Encoder와 Decoder에 입력하고 Decoder 의 마지막 layer 결과를 각 단어에 대한 Representation으로 사용해서 토큰을 분류.

    3) Sequence Generation Tasks
    - 주어진 문장의 이후 토큰을 생성하는 task ○ 예) 요약
    - Autoregressive 구조의 Decoder를 가지고 있기 때문에 질의 응답, 요약과 같은 Sequence 생성 task 수행가능
    - Encoder에 Input Sequence가 입력되면, Decoder는 출력을 Autoregressive하게 생성

    4) Machine Translation
    - Source 언어로 작성된 문장을 Target 언어로 번역하는 task ○ 예) “Hi” 영어 문장을 한국어로 번역하면 “안녕”
    - 기존에 학습되지 않은 언어도 번역 가능하도록 Randomly Initialized Encoder 도입
    - 새로운 언어로 학습된 새로운 Encoder를 추가
    - 기존 BART 모델과는 별도의 Vocab를 사용 가능.

  • BART 실험 결과
    - Encoder-Decoder 구조로 인해, 요약, 번역과 같은 seq2seq task 에 대해 높은 성능
    - 5개의 Noise 추가 방식 중, 전반적으로 Text-Infilling 이 가장 효과적.
       - Token Deletion 또는 Masking 사용시 성능 향상.
       - Deletion는 생성 Task(요약, QA)에서 Masking을 능가

    - 다중 문장 Task(예 : SQuAD 1.1, CNN/DM)에서는 Text-Infilling 과 Sentence Shuffling 을 결합하는 방식이 가장 좋은 성능.
       -  Document Rotation이나 Sentence Shuffling 방식은 단독으로 사용했을 때 상대적으로 효과가 적음.
       - 단순한 Task 인 ELI5를 제외한 모든 작업에서 Text-Infilling를 사용하는 BART 모델이 좋은 성과를 보임.
       - Text-Infilling 과 Sentence Shuffling 을 결합한 방식에서 최고의 성능을 달성하는 Task 도 존재

'Study > 자연언어처리 NLP' 카테고리의 다른 글

NLP 대회 전략  (0) 2025.01.17
BERT 이후의 모델  (0) 2025.01.17
Decoder Model (GPT)  (0) 2025.01.17
Encoder Model (BERT)  (0) 2025.01.17
자연어 처리 Task와 파이프라인  (2) 2025.01.15