RoBERTa: 동적 마스킹 방식의 MLM
- A Robustly Optimized BERT Pretraining Approach
- BERT의 pre-training 방식의 변화를 통해 성능을 향상시킴
- MLM (Masked Language Modeling) task를 Dynamic masking 방법으로 학습
- NSP (Next Sentence Prediction) task 제거
- 더 많은 학습 데이터 + 더 큰 batch 크기로 학습 - A Robustly Optimized BERT Pretraining Approach
- BERT의 pre-training 방식의 변화를 통해 성능을 향상시킴
- MLM (Masked Language Modeling) task를 Dynamic masking 방법으로 학습
- NSP (Next Sentence Prediction) task 제거
- 더 많은 학습 데이터 + 더 큰 batch 크기로 학습 - Dynamic masking
- Dynamic masking 방식에서는 전처리 단계에서 마스킹을 미리 하지 않고, 모델에 입력할 때마다 마스킹 작업을 수행하여 매순간 새로운 마스킹 패턴이 나오게 함
- 한 문장을 여러 개로 복사한 후 랜덤하게 다른 mask를 적용
- Static masking보다 예측해야 하는 단어들이 많아지기 때문에 학습 내용이 다양해짐
- 매 epoch 마다 다른 masking을 사용하여 MLM 사전 훈련을 적용한 결과, 기존 BERT 방식보다 다양한 task에서 성능 향상을 확인 - NSP task 제거
- NSP task를 수행하지 않고 학습하는 것이 성능 향상으로 이어진다는 것을 확인
- 단일 문서에서 문장을 샘플링 한 입력을 사용하는 것이 더 좋은 성능을 가지는 것을 확인 - 더 많은 데이터
- BERT의 약 10배 수준인 160GB 크기의 5가지 학습 데이터를 사용하여 모델을 학습
- BookCorpus + Wikipedia (16GB), CC-News (76GB), OpenWebText (38GB), Stories (31GB)
- 많은 학습 데이터와 pre-training step이 최종적인 task 성능을 증가시킴 - 더 큰 batch 크기로 학습
- 기존 BERT 모델에서는 시퀀스 길이가 256인 batch를 1M step을 돌며 학습
- 이는 시퀀스 길이가 2K인 batch를 125K step으로 학습하거나 8K인 batch에 31K step으로 학습하는 것과 동일한 비용이 듦
- Batch 사이즈를 키우는 것이 데이터 학습 시 복잡도 (ppl)가 낮아지고 성능 향상에 도움이 된다는 결과를 확인 - BERT vs RoBERTa
- 기존 BERT에서 사전 학습 시 수행했던 NSP 과정을 제거하고 동적 마스킹 방식의 MLM 수행
- 더 많은 학습 데이터와 더 큰 배치로 학습하여 성능 개선
SpanBERT: Span 마스킹 방식의 MLM
- Improving Pre-training by Representing and Predicting Spans
- Span masking 방식을 통해 개별 token을 마스킹하지 않고, 연속적인 span을 마스킹함
- NSP task를 사용하지 않고 단일 시퀀스를 입력으로 한 사전 학습을 진행하여 성능을 향상시킴
- 텍스트 범위를 예측하는 질문-응답과 같은 task에서 성능 향상
- Span Masking
- 여러 단어에 걸쳐있는 연속적인 span에 무작위로 마스킹 처리
- 연속적인 [MASK] 토큰의 예측을 위해 일련의 [MASK] 토큰 양쪽 경계에 있는 문자 토큰의 임베딩 값을 예측에 활용
- 추가적으로 span 내부의 토큰들을 구분하기 위해 [MASK] 토큰의 위치 임베딩 값 부여
- 기존 BERT의 MLM loss와 더불어 SBO loss를 합하여 학습에 사용
- Span boundary token (x4, x9)의 임베딩 값을 사용하여 전체 masked span을 예측하기 때문에 학습 시 span 전체의 정보가 많이 포함되도록 학습 - Single-Sequence Training
- NSP를 제거하고, 단일 시퀀스를 입력으로 사용한 학습 방식이 성능을 향상시키는 것을 확인
- 길이가 긴 하나의 시퀀스를 입력으로 사용하는 것이 다른 document에서 추출한 두 시퀀스를 같이 사용하는 것보다 모델에 더 긍정적인 효과를 줌 - BERT vs SpanBERT
ELECTRA:판별 모델을 통해 인코더 사전 학습
- Efficiently Learning an Encoder that Classifies Token Replacements Accurately
- 기존 BERT에서 학습의 효율성에 기반하여 새로운 pre-training 방식을 제시한 버전
- MLM 대신 Replaced Token Detection (RTD) 사용
- Generator (작은 MLM)가 마스킹된 단어에 대해 단어를 생성하면, discriminator (ELECTRA)는 해당 단어가 가짜인지 판별해내는 방식 - 기존 BERT의 문제점
- 기존 MLM는 입력 토큰 중 [MASK]로 변환된 15%에서만 loss 값이 계산되기 때문에 학습의 효율이 떨어짐
- 또한, 실제 학습된 모델을 활용할 때는 입력에 [MASK] 토큰이 존재하지 않음
- 적은 수의 [MASK]로 치환된 토큰들만 가지고서 큰 언어 모델을 학습하는 방식은 비효율적임
- ELECTRA에서는 입력 토큰 전체에서 loss를 계산하기 위한 방법 제안 - Replaced Token Detection (RTD)
- Generator를 이용해 실제 입력의 일부 토큰을 그럴싸한 가짜 토큰으로 바꾸고, discriminator가 판별하는 이진 분류 문제를 통해 모델 사전 학습 수행
- 입력 문장을 부분적으로 단어가 바뀐 여러 문장으로 생성 가능
- Discriminator는 모든 토큰에 대해 판별을 진행해야 하므로 모든 토큰에 대해서 학습 가능 - Generator
- Transformer의 인코더 구조를 가지는 discriminator를 학습시키기 위한 입력을 생성하는 모델
- 기존의 MLM처럼 무작위로 [MASK] 토큰으로 대체된 입력 문장에 대해 단어 토큰 생성
- 예측된 결과 문장을 discriminator 모델에 입력 - Discriminator
- Transformer의 인코더 구조로 입력으로 받은 토큰들에 대해 각각 원래 토큰이었는지 바뀐 토큰인지 판별하는 모델
- Generator에서 변환한 문장을 입력 받아 모든 토큰에 대해 원본 토큰으로 예측했는지를 분류하며 학습 - 작은 크기에서의 학습 효율성
- BERT-Base보다 더 작은 크기로 줄인 ELECTRA-Small에서는 학습, 추론 연산량 (FLOPs)이 동일한 BERT-small보다 높은 성능을 내며, 더 많은 학습 연산량이 필요한 GPT보다 더 좋은 성능을 보여 학습이 효율적으로 진행된다는 것을 확인 - BERT vs ELECTRA
- Generator와 discriminator를 결합한 사전 학습 방식을 통해 많은 태스크에서 성능을 높일 수 있는 언어 표현 생성
- 모델의 크기가 작은 상황에서 같은 수준의 다른 모델들에 비해 학습 효율과 성능이 높은 것을 확인
ALBERT: 모델 경량화를 위한 파라미터 수 축소
- A Lite BERT For Self-Supervised Learning of Language Representations
- 모델의 효율을 높이기 위해 모델 크기를 줄이되 성능은 향상시킨 모델
- Input token embedding의 사이즈를 줄여서 파라미터를 줄임
- Transformer layer 간의 같은 파라미터를 공유하여 파라미터를 줄임
- NSP 대신 SOP (Sentence order prediction)로 학습 - 모델이 커짐에 따라 발생하는 문제 Memory Limitation
- 모델의 크기가 메모리 양에 비해 큰 경우 학습 시 OOM (Out Of Memory) 문제 발생
- BERT-Large의 경우 입력 시퀀스 길이가 384 이상이면 training은 물론 한 문장에 대한 inference도 무리
- Training Time : BERT-Base는 16개의 GPU로 5일 이상, BERT-Large는 64개의 GPU로 8일 이상 소요
- Memory Degradation : 단순히 hidden size를 증가시켜 모델의 크기를 키우면 오히려 성능이 저하된다는 것을 확인 - Factorized Embedding Parameterization
- 큰 단어 임베딩 행렬을 작은 두 행렬로 분해하고, input token embedding 크기 (E)와 hidden 크기 (H)를 각각 설정하도록 분리함
- 전체적인 파라미터의 개수가 줄어들고 학습 속도가 빨라짐 - Cross-layer parameter sharing
- Transformer의 각 layer에 포함된 학습 파라미터 (multi-head attention 및 FFNN 파라미터)를 모든 layer에 동일하게 적용
- Layer간 파라미터를 공유한다고 하더라도 성능이 크게 떨어지지 않으면서 전체 모델의 크기가 크게 감소 - Sentence Order Prediction (SOP)
- NSP에서는 첫 문장과 비교할 문장을 임의로 뽑았기 때문에 문장 순서에 초점을 맞추기 보단 비교적 쉬운 topic prediction에 가까움
- SOP는 비교할 문장을 무작위로 가져오지 않고, 실제 연속된 문장을 가져와 순서를 변경하여 원래의 순서를 예측하는 task로 변경
- SOP로 학습 시 NSP도 어느 정도 수행할 수 있음
- NSP로 학습 시 문장 간 관계를 잘 학습하지 못하기 때문에 SOP 성능이 매우 낮음
- 두 문장 이상을 입력으로 넣어 수행하는 SQuAD, MNLI, RACE 등의 task에서 SOP 적용 시 더 높은 성능을 보임 - BERT vs ALBERT
- 기존 BERT와 비슷한 성능을 유지하면서 파라미터 수를 크게 줄여 모델 효율성을 높임
- SOP task를 수행하여 문장 간의 관계를 보다 정확하게 학습
DistilBERT: 대형 모델로부터 학습 정보 전이
- A Distilled version of BERT
- Knowledge Distillation (KD) 압축 기법을 사용
- 사전 학습된 대규모 BERT 모델을 기반으로 KD를 통해 소규모 BERT 모델 학습
- 기존 BERT 대비 모델 사이즈를 40% 수준으로 줄이고, 97% 수준의 성능을 유지하면서 60% 가량 빠른 학습 속도를 보임 - Knowledge Distillation
- 사전 학습된 대형 모델 (teacher)의 동작을 재현하기 위해 소형 모델 (student)을 학습시키는 모델 압축 기술
- Teacher 모델이 학습을 통해 얻은 정보를 student 모델이 학습하는데 사용 - Teacher model
- 먼저 teacher 모델로써 사전 학습된 BERT-Base 모델을 학습시킴
- BERT는 MLM task를 사용해 사전 학습하였으므로 단어 확률 분포를 통해 마스크 된 단어를 예측할 수 있음
- 학습된 모델인 teacher 모델에 마스킹 된 문장을 입력하여 출력된 단어 확률 분포 정보를 student 모델 학습에 사용 - Soft Labels
- Teacher 모델은 MLM task의 예측 결과를 softmax-temperature 함수를 통해 나온 soft label을 student 모델에 공유
- 기존 softmax 함수에서 T (Temperature)로 나누는 과정을 추가하여 상대적으로 스무딩한 결과 분포를 예측하도록 함
- 확률이 가장 높은 단어 외에도 다른 단어에 비해 확률이 높은 나머지 단어들에 대한 분포값을 반영할 수 있음
- [MASK] 토큰의 예측 분포인 모든 레이블 (토큰)의 분포를 student 모델이 학습하도록 함 - Distillation Loss
- Student 모델은 기존 BERT보다 layer의 개수가 반으로 줄어든 모델
- Teacher 모델에 들어간 입력 데이터를 student 모델에 그대로 입력한 후 softmax-temperature 함수를 통해 soft prediction 수행
- 최종적으로 soft label과 soft prediction 사이의 cross entropy loss로 distillation loss 도출 - Student Loss
- 기존 MLM 학습 방식도 병행하여 one-hot 방식의 target label (hard label)과 softmax 간의 cross entropy loss를 도출
- Student 모델은 teacher 모델이 먼저 학습한 정보를 기반으로 더 빠르게 학습 - BERT vs DistilBERT
- 기존 BERT보다 40%의 파라미터만 사용함에도 불구하고 BERT 성능에 97% 정도로 매우 비슷한 성능을 보임
- 더 적은 파라미터를 사용하기 때문에 inference time이 빠르다는 것을 확인
'Study > 자연언어처리 NLP' 카테고리의 다른 글
NLP 대회 전략 (0) | 2025.01.17 |
---|---|
Encoder-Decoder Model (BART) (0) | 2025.01.17 |
Decoder Model (GPT) (0) | 2025.01.17 |
Encoder Model (BERT) (0) | 2025.01.17 |
자연어 처리 Task와 파이프라인 (2) | 2025.01.15 |