1. Pretraining 개요
Pretraining(사전 훈련) 은 대량의 텍스트 데이터를 기반으로 모델이 언어 패턴을 학습하는 초기 단계입니다. 이 과정에서 모델은 특정 작업에 최적화되지 않은 일반적인 언어 이해 능력을 습득합니다. (GPT에서 P)
- 사전 학습(Pretraining)은 대량의 텍스트 데이터에서 언어 모델을 훈련하는 과정
- 이후 특정 태스크에 맞게 미세 조정(Fine-Tuning)하여 활용
- 대표적인 사전 학습 모델: BERT, GPT, T5, RoBERTa, DistilBERT
2. Pretraining의 필요성
- 대량의 데이터 활용 가능: 사람이 직접 레이블링하지 않아도 모델을 훈련 가능
- 전이 학습(Transfer Learning) 적용: 적은 양의 데이터만으로도 높은 성능 달성 가능
- 언어의 일반적 패턴 학습: 특정 태스크(Fine-Tuning) 전에 기본적인 언어 구조 이해
3. Pretraining 방식
사전 학습 모델은 크게 Language Understanding 와 Language Generation 으로 나뉨.
1) Masked Language Model (MLM)
-
일부 단어를 [MASK]로 가린 후 이를 예측하는 방식
-
BERT가 대표적인 모델
from transformers import pipeline fill_mask = pipeline("fill-mask", model="bert-base-uncased") print(fill_mask("Hugging Face is a [MASK] platform."))
2) Causal Language Model (CLM)
-
이전 단어들을 기반으로 다음 단어를 예측
-
GPT 시리즈가 대표적인 모델
generator = pipeline("text-generation", model="gpt2") print(generator("Once upon a time", max_length=30))
3) Seq2Seq Pretraining
-
입력과 출력이 있는 텍스트 변환 방식
-
T5, BART 등이 대표적
translator = pipeline("translation_en_to_fr", model="t5-small") print(translator("Hello, how are you?"))
4. 주요 사전 학습 모델
모델 | 학습 방식 | 특징 |
---|---|---|
BERT | Masked Language Model (MLM) | 문장 이해, 양방향 학습 |
GPT-2 | Causal Language Model (CLM) | 텍스트 생성에 특화 |
T5 | Text-to-Text Model | 모든 NLP 태스크를 텍스트 변환 방식으로 통합 |
RoBERTa | MLM (BERT 변형) | 더 많은 데이터를 활용하여 BERT 개선 |
DistilBERT | 경량화된 BERT | 연산량 감소, 속도 향상 |
5. Pretraining 데이터셋
- 사전 학습 모델들은 대량의 공개 데이터셋을 활용하여 학습됨
- 대표적인 데이터셋:
- BooksCorpus: 11,000여 개의 책에서 추출한 텍스트 데이터
- Wikipedia: 다양한 분야의 문서를 포함하는 백과사전 데이터
- Common Crawl: 인터넷에서 수집한 대규모 텍스트 데이터
- OpenWebText: Reddit에서 고품질 문서만 필터링한 데이터
6. Pretraining 구현 (Keras)
import tensorflow as tf
from transformers import TFAutoModelForMaskedLM, AutoTokenizer
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = TFAutoModelForMaskedLM.from_pretrained(model_name)
text = "Hugging Face is a [MASK] platform for NLP."
tokens = tokenizer(text, return_tensors="tf")
output = model(**tokens)
print(output.logits.shape) # (batch_size, sequence_length, vocab_size)
7. Pretraining의 한계
- 막대한 계산량 필요 → TPU, GPU 등 고성능 연산 장비 요구
- 일반성 문제 → 특정 도메인에 대한 Fine-Tuning 필요
- 문맥 한계 → 긴 문맥을 처리하는 데 제약 있음
8. 결론
- Pretraining은 NLP 모델 성능을 극대화하는 핵심 기술
- 다양한 Pretrained 모델을 활용하여 특정 태스크에 Fine-Tuning 가능
- BERT, GPT, T5 등 모델에 따라 다양한 Pretraining 방식 존재