반응형
1. 들어가며
앞 강의에서 BERT를 다뤘습니다. BERT가 문맥 이해(인코더 기반)에 강하다면, **GPT(Generative Pretrained Transformer)**는 **텍스트 생성(디코더 기반)**에 특화된 모델입니다.
GPT는 2018년 OpenAI에서 처음 제안된 이후, 현재의 ChatGPT, GPT-4까지 이어지는 계열의 시작점입니다.
GPT의 강점은 자연스러운 문장 생성과 다양한 작업에 대한 범용성입니다.
2. GPT의 핵심 아이디어
사전학습(Pretraining)
대규모 텍스트 데이터로 다음 단어 예측 학습 (Language Modeling)
예:
"오늘은 날씨가" → 모델은 "맑다", "좋다" 등 확률적으로 다음 단어 예측
파인튜닝(Fine-tuning)
- 특정 작업(요약, 번역, QA 등)에 맞춰 추가 학습
오토리그레시브(Auto-Regressive) 구조
- 한 번에 한 단어씩 예측하면서 문장을 확장
- 문맥을 이어가는 데 강점
3. BERT vs GPT
구분 | BERT | GPT |
---|---|---|
구조 | Transformer Encoder | Transformer Decoder |
학습 방식 | Masked Language Model + NSP | Next Token Prediction |
강점 | 문맥 이해 (분류, QA) | 문장 생성 (텍스트 생성, 대화) |
활용 분야 | 검색, QA, 분류 | 챗봇, 소설/기사 생성, 코드 생성 |
4. GPT 아키텍처
GPT는 Transformer의 디코더 블록을 기반으로 합니다.
- 마스크드(Self-Attention): 미래 단어를 보지 않고 현재까지 단어만 참고
- 포지셔널 인코딩: 단어 순서 반영
- 피드포워드 네트워크: 단어 표현 변환
- 여러 층을 쌓아 깊은 문맥 이해 및 생성 능력 확보
5. 파이썬 실습: Hugging Face GPT-2로 텍스트 생성
from transformers import GPT2Tokenizer, GPT2LMHeadModel
import torch
# 1. 토크나이저 & 모델 불러오기
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# 2. 입력 문장
input_text = "오늘은 정말"
inputs = tokenizer.encode(input_text, return_tensors="pt")
# 3. 텍스트 생성
outputs = model.generate(inputs, max_length=30, num_return_sequences=1, do_sample=True, top_k=50)
# 4. 디코딩
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
예상 출력 예시:
오늘은 정말 좋은 하루였다. 나는 친구와 함께 산책을 하며 이야기를 나누었다.
6. GPT의 활용 분야
- 챗봇(Chatbot): 대화형 응답
- 텍스트 생성: 소설, 기사, 마케팅 문구 자동 생성
- 코드 생성: 프로그래밍 보조 (예: Copilot)
- 요약/번역: 긴 문서 요약 및 언어 번역
7. 오늘의 정리
- GPT는 오토리그레시브(Next Token Prediction) 구조를 가진 Transformer 디코더 기반 모델
- BERT가 "이해"에 강하다면 GPT는 "생성"에 강점
- Hugging Face의 GPT-2 모델로 간단히 텍스트 생성 실습 가능
반응형
'개발 창고 > AI' 카테고리의 다른 글
멀티모달 AI(텍스트+이미지) 기초 (3) | 2025.08.28 |
---|---|
트랜스포머 응용 – 텍스트 요약과 번역 (3) | 2025.08.27 |
BERT 구조와 사전학습(Pretraining) 이해하기 (1) | 2025.08.25 |
트랜스포머(Transformer) 구조 이해하기 (0) | 2025.08.24 |
어텐션 메커니즘 기초 – 딥러닝에서 ‘집중하기’ 배우기 (1) | 2025.08.23 |