[논문] BART : Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation and Comprehension
https://arxiv.org/abs/1910.13461
Abstract
BART는 사전학습된 seq2seq 모델인 Denosing auto-encoder 입니다. 임의의 노이즈 함수로 Text들을 손상시킨뒤 원본 text를 복구하는 과정으로 학습됩니다. Transformer구조를 사용하며, 이는 BERT와 GPT구조를 일반화 시켜 사용하였습니다.
Instruction
자기지도 학습법(self-supervised methods)은 NLP에서 여러 성공을 거두었는데, 가장 성공적인 방법은 일부 단어를 마스킹 하고 이를 복원하도록 훈련된 denosing auto-encoder입니다. 최근연구에선 마스킹된 토큰의 분포, 마스킹된 토큰을 예측하는 순서, 마스킹된 토큰을 대체하는데 사용할 수 있는 문맥을 개선하여 성능향상을 이뤘습니다. 하지만 이런 방법들은 일반적으로 span 예측, span 생성에 초점을 맞췄기 때문에 적용범위가 제한적입니다.
이 논문에서는 bidirectional auto-regressive Transformer를 결합한 BART를 제한합니다.
BERT,GPT와 비교한 BART구조 입니다. BERT는 랜덤 토큰들이 mask로 대체되고, 양방향으로 인코딩됩니다. 토큰들은 독립적으로 예측되기 때문에 생성에는 사용되기 힘듭니다. GPT는 반대로 토큰들이 auto-regressively(출력이 다음입력으로 사용됨)하게 예측하므로 생성에 어울립니다. 하지만 왼쪽에서 오른쪽으로 방향이 정해져있기 때문에 양방향으로 학습될 수 없습니다.
BART에서는 인코더로 들어가는 입력이 디코더 출력괴 정렬될 필요가 없으므로 임의의 노이즈 변환(일부 텍스트를 마스크로 대체)이 가능합니다. 손상된 문서는 양방향 모델로 인코딩 되고 , 원본문서는 디코더를 통해 계산됩니다. fine-tuning을 위해 손상되지 않은 문서를 인코더와 디코더에 모두 입력하며, 디코더의 마지막 hidden state의 representation을 사용합니다.
Model
BART의 모델구조는 우리가 흔히 알고있는 Transformer의 아키텍쳐를 기반으로 합니다. 이때 활성화 함수 ReLU는 GPT와 같이 GeLU로 수정하고 파라미터는 N(0,0.02)에서 초기화합니다.
기본 모델에서는 인코더와 디코더에 각각 6개의 레이어를, 대형모델에서는 각각 12개의 레이어를 사용합니다. BERT는 단어 예측전에 추가적인 feed-forward 네트워크를 사용하지만 Bart는 decoder에서 그 작업을 하기에 존재하지 않습니다.
Pre-training BART
BART는 문서를 손상시키고, 디코더의 출력과 원본 문서 간의 cross-entropy를 최적화 하며 학습됩니다. 기존의 특정 노이즈 처리 방식에 맞춘 디노이징 오토 인코더와 달리(예를들어 BERT에서는 마스킹된 단어어를 예측하는 방식으로 학습함, decoder가 없기 때문에 입력의 변형을 처리하거나, 생성할 수 없기 때문에, 문장 순서 섞기 , 텍스트 삭제등은 제한됨 ), BART는 어떤형태의 문서손상도 적용할 수 있고, 극단적으로 pret-trained이 없는 상황에선, BART가 언어 모델(다음에 올 단어나 구를 예측하는)과 동일하게 작동합니다.(BART의 디코더는 pre-trained이 없다면 노이즈 복구 기능을 가지고 있지 않으므로, 단순히 입력된 텍스트의 문맥을 기반으로 다음단어를 예측하려함(언어모델))
Token Masking : BERT와 같이, 랜덤으로 선택된 토큰이 [MASK] 요소로 대체됩니다.
Token Deletion : 입력에서 랜덤으로 토큰이 삭제됩니다. 토큰 마스킹과 달리 모델은 어떤 이치의 입력이 누락되었는지 결정해야합니다.
Token Infiling : 텍스트에서 포아송 분포(λ = 3)에서 추출된 길이로 여러 span이 선택되며 각 스팬은 단일 [MASK] 토큰으로 대체됩니다. 길이가 0인 스팬은 [MASK] 토큰의 삽입에 해당됩니다. 이는 SpanBERT 논문에서 영감을 받았지만, SpanBERT는 다른 분포에서 스팬 길이를 선택합니다. 또한 SpanBERT는 각 스팬을 동일한 길이의 [MASK]토큰으로 대체합니다. BART에서는 누락된 토큰의 개수를 예측하도록 가르칩니다.
Sentence Permutation : 문서는 마침표를 기준으로 문장단위로 나뉘며, 문장들이 랜덤하게 섞입니다.
Document Rotation: 랜덤으로 하나의 토큰이 선택되고, 문서는 그 토큰으로 시작되도록 회전됩니다. 이 작업은 모델이 문서의 시작을 식별하도록 훈련합니다.
Fine-tuning
BART가 생성한 epresentations으로 여러 downstream 에 적용시킬수있습니다.
1.시퀸스 분류 작업
시퀸스 분류 작업에서는 인코더와 디코더에 동일한 입력을 넣고, 최종 디코더 토큰의 마지막 hidden state가 다중클래스 선형 분류기가 됩니다. 디코더의 토큰이 전체 입력의 디코더에 집중할 수 있도록 끝에 추가합니다.
2.토큰 분류 작업
SQuAD(Standford Question Answering Dataset)와 같은 개체명 인식(NER), 품사 태깅(Pos tagging), 문장 경계 식별 등 각 토큰이 어느 클래스에 속하는지 예측하는 작업에서는 전체 문서를 인코더와 디코더에 입력하고 디코더의 최상위 은닉 상태를 각 단어의 representation으로 사용합니다. 이 representation은 토큰을 분류하는데 사용됩니다.
3.시퀸스 생성작업
auto-regressive decoder를 가지고 있기 때문에 , 추상적 질문 응답 및 요약과 같은 시퀸스 생성작업에 fine-tuning할 수 있습니다. 이 두 작업 모두 입력에서 정보를 복사하지만 노이즈 제거 pre-training처럼 조작됩니다. 인코더 입력은 입력 시퀸스이고 디코더는 출력결과를 auto-regressive하게 생성합니다.
4. 기계 번역
이전 연구들에선 디코더에서 pre-trained 언어모델을 사용할때 장점이 제한적이었지만, BART에선 기존 인코더 임베딩 레이어를 무작위로 초기화된 새로운 인코더로 교체한후 외국어 단어를 BART가 영어로 번역할수 있는 입력으로 매핑하는 역할을 합니다. source encoder는 2단계로 학습하는데 둘 모두에서 BART 모델의 출력의 cross-entropy loss를 backpropagate합니다.
Comparing Pre-training objectives
모든 모델들은 크기가 비슷하며, 위키피디어 데이터를 종합하여 100만스텝동안 훈련됐습니다.
성능은 작업에 따라 상당히 자르지만 Text-Infinling을 사용한 BART모델이 가장 일관되게 강한 성능을 보여줍니다.(맨아래)
Large-scale Pre-training Experiments
모델 크기가 클수록 성능이 좋아지므로, RoBERTa와 같은 크기로 마주어 실험하였습니다.
BART의 성능이 전반적으로 RoBERTa와 비슷합니다.
생성task에 CNN/DailyMail에선 조금더 우세하지만 XSUM과 같은 data에선 크게 앞서는걸 확인할 수 있었습니다.
Conclusions
손상된 문서를 원본으로 매핑하는 Pre-training 접근법인 BART였습니다. 분별 작업에서는 RoBERTa와 유사한 성능을 달성했고, 여러 생성 작업에서는 SOTA결과를 달성했습니다. 사전 훈련을 위한 문서 손상방법을 탐색해봐야함, 특정 작업에 맞게 파인튜닝하는것을 찾아봐야합니다
[논문]INTERGER QUANTIZATION FOR DEEP LEARNING INFERENCE: PRINCIPLES AND EMPRICAL EVALUATION (2) | 2024.10.10 |
---|---|
[논문] RAG(Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(2020)) (2) | 2024.10.06 |
[논문] LoRA : Low-Rank Adaptation of Large Language Models(2021) (1) | 2024.07.28 |
[논문] GPT 논문 정리 (0) | 2024.07.15 |
[논문] GPT 이전 까지의 NLP 주요 논문 정리 (0) | 2024.06.04 |