반응형
BERT 구조와 사전학습(Pretraining) 이해하기
1. 들어가며
이제부터는 트랜스포머 기반의 대표 모델을 본격적으로 다룹니다.
그 첫 번째가 바로 **BERT(Bidirectional Encoder Representations from Transformers)**입니다.
BERT는 2018년 구글에서 발표한 모델로, 기존 자연어 처리 모델들의 성능을 크게 뛰어넘으며 다양한 벤치마크에서 새로운 기준을 세웠습니다.
2. BERT의 핵심 아이디어
양방향성(Bidirectional)
- 기존의 언어 모델은 왼쪽 → 오른쪽, 혹은 오른쪽 → 왼쪽으로만 문맥을 이해했습니다.
- BERT는 양방향으로 동시에 문맥을 파악합니다.
사전학습(Pretraining)
- 대규모 말뭉치(Corpus)에서 먼저 언어 구조를 학습
- 이후 특정 작업(분류, 질의응답 등)에 맞게 파인튜닝(Fine-tuning)
3. BERT의 주요 학습 방식
3.1 Masked Language Model (MLM)
입력 문장의 일부 단어를 [MASK] 토큰으로 가리고, 이를 예측하는 방식
예:
"나는 [MASK]를 먹었다." → "사과"
3.2 Next Sentence Prediction (NSP)
두 문장이 이어지는 관계인지 학습
예:
- A: "나는 영화를 보았다."
- B: "정말 재미있었다." → 이어짐(1)
- B: "나는 저녁을 먹었다." → 이어지지 않음(0)
이 두 가지 과제를 통해 문맥 이해력과 문장 관계 파악 능력을 동시에 얻게 됩니다.
4. BERT의 구조
- 트랜스포머 인코더(Transformer Encoder)만 사용
- 각 입력은 토큰 단위로 쪼개져 임베딩 벡터로 변환
- 포지셔널 인코딩 + 세그먼트 임베딩 추가
- 여러 층의 멀티헤드 어텐션과 피드포워드 레이어를 거쳐 깊은 문맥 표현 생성
5. 파이썬 실습: Hugging Face로 BERT 사용하기
사전학습된 BERT를 활용해 간단한 문장 분류를 수행해봅니다.
from transformers import BertTokenizer, TFBertForSequenceClassification
import tensorflow as tf
# 1. 토크나이저 불러오기
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
# 2. 입력 문장 인코딩
inputs = tokenizer("BERT is a powerful NLP model", return_tensors="tf")
# 3. 사전학습된 모델 불러오기
model = TFBertForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
# 4. 모델 예측
outputs = model(inputs)
logits = outputs.logits
print("로짓 출력:", logits)
예상 출력 (샘플):
로짓 출력: tf.Tensor([[-0.12 0.45]], shape=(1, 2), dtype=float32)
여기서 logits
값은 분류 결과에 대한 점수이며, 소프트맥스를 적용하면 확률로 해석할 수 있습니다.
6. BERT의 활용 분야
- 문장 분류 (긍정/부정 리뷰 분석)
- 질의응답(QA) (질문과 문맥을 입력하면 정답 위치 추출)
- 문장 유사도 측정
- NER(개체명 인식)
7. 오늘의 정리
- BERT는 양방향 Transformer 인코더 기반 모델
- MLM과 NSP로 사전학습 후, 다양한 작업에 파인튜닝 가능
- Hugging Face Transformers 라이브러리로 손쉽게 활용 가능
반응형
'개발 창고 > AI' 카테고리의 다른 글
트랜스포머(Transformer) 구조 이해하기 (0) | 2025.08.24 |
---|---|
어텐션 메커니즘 기초 – 딥러닝에서 ‘집중하기’ 배우기 (0) | 2025.08.23 |
GRU(Gated Recurrent Unit) 네트워크 기초 (0) | 2025.08.22 |
LSTM(Long Short-Term Memory) 네트워크 기초 (0) | 2025.08.21 |
순환 신경망(RNN, Recurrent Neural Network) 기초 (0) | 2025.08.20 |