Search

AIKU 25-1 DeepIntoDeep 7회 : 딥러닝 입문하기 - Transformer in NLP (BERT, GPT, T5)

분류
AIKU
세부 분류
DeepIntoDeep
게시일
2025/02/13 04:11
발표일
작성자
작성 완료

Subword Tokenization

Tokenizer: Input text를 모델에서 처리할 수 있는 데이터로 변환
Word 단위로 tokenize하면 문제 생김 (vocab 개수 유한성, 오탈자 등 인지 불가능 [OOV problem])
따라서 Subword 단위로 tokenize → BPE Algorithm

BPE (Byte-pair encoding) Algorithm

모든 단위를 문자 단위로 분할하여 자주 등장하는 문자 쌍을 병합

이 외

WordPiece
SentencePiece

Pretraining - Decoder-only model

Two-stage training

1.
Language modeling objective를 unlabeled data에 적용하여 init param 학습
2.
Supervised data와 objective로 fine-tune

How to do it? → AR (Auto-Regressive)

이전 단어들을 기반으로 다음 단어를 1개씩 예측하여 생성
1.
입력 토큰 input → 다음 토큰 예측
2.
예측된 토큰 다시 입력에 추가하고 다시 다음 토큰 예측
이전 Token들이 주어졌을 때 그 다음 단어 w가 올 확률을 최대화

How to fine-tune?

downstream task dataset에 맞게 pθ(wtw1:t1)p_\theta(w_t|w_{1:t-1}) 을 최대화하게끔 훈련
Pretrained 모델이 예측하는 마지막 토큰 위에 head를 올린다
이 Head를 포함하여 downstream task에 맞게 학습시킨다

Example - GPT (Generative Pretrained Transformer)

Encoder가 없으므로 cross attention layer 제거됨

Pretraining - Encoder-only model

Decoder와 달리 bidirection context 얻을 수 있음 → 미래 단어 볼 수 있음 → Casual LM으로 학습 불가

Example: BERT

Pretrain 방법 1: MLM (Masked Language Modeling)

Token의 일부를 마스킹한 후 ([MASK] 토큰으로 치환), 마스킹된 부분을 예측
랜덤하게 전체 15%의 token 택해서 예측
선택된 token 중
80% = [MASK]
10% = 엉뚱한 다른 token
10% = 그대로
왜 그대로 둔 token도 예측? → non-masked token에 대해서도 representation을 얻기 위해
h1,...,hT=Encoder(w1,...,wT)yi=Awi+bh_1,...,h_T=\text{Encoder}(w_1,...,w_T)\\ y_i=Aw_i+b
문제점: pretraining과 finetuning 간의 불일치 (fine-tuning에는 masking 없음)

Pretrain 방법 2: NSP (Next Sentence Prediction)

두 문장 A,B를 [SEP] token으로 구분해서 넣음
50% - A,B는 이어지는 문장 (label = IsNext)
50% - A,B는 이어지지 않는 (label = NotNext)
[CLS] token에서 나온 representation을 classifier에 태워 prediction
[SEP] token 외에도 segment embedding을 추가하여 A,B가 확실히 분리되게끔 함

한계점

Encoder는 generation에 특화되지 않음 → Autoregressive Generation에서 좋은 성능 X

Pretraining: Encoder-Decoder models (Full Transformer)

T5 model

Denoising span corruption task

BART

Corrupted document = Encoded with bidirectional model
Predict original document in an Autoregressive Decoder
5 Pretraining tasks

NO fine-tuning

Text-to-text framework

모든 NLP task를 text 입력 → text 출력 형식으로 변환
Task 상관 없이 동일한 training objective 적용 가능
모든 task를 생성문제로 변환했기 때문에 처음보는 task에도 대처 가능

Scaling law

Language modeling performance improves smoothly as we increase the model size, datasetset size, and amount of compute used for training