반응형
트랜스포머(Transformer) 구조 이해하기
1. 들어가며
앞 강의에서 어텐션 메커니즘을 배웠습니다.
트랜스포머(Transformer)는 이 어텐션 개념을 기반으로 만들어진 모델로, 현재의 GPT, BERT, LLaMA와 같은 최신 언어 모델의 뼈대가 됩니다.
트랜스포머는 RNN이나 LSTM처럼 순차적으로 데이터를 처리하지 않고, 병렬적으로 문장을 한 번에 학습할 수 있어 속도와 성능 면에서 혁신을 가져왔습니다.
2. 트랜스포머의 기본 아이디어
트랜스포머는 크게 두 가지 블록으로 구성됩니다.
- 인코더(Encoder) – 입력 문장의 의미를 추출
- 디코더(Decoder) – 의미를 바탕으로 출력 문장을 생성
하지만 번역과 같은 작업이 아니고 분류, 문서 임베딩 같은 경우에는 인코더만 사용하기도 합니다.
3. 트랜스포머의 핵심 구성 요소
Self-Attention (자기 어텐션)
- 문장 안의 각 단어가 다른 단어와의 관계를 학습
- 예: “The cat sat on the mat because it was tired.” → “it”이 “cat”을 가리킨다는 맥락 이해
멀티헤드 어텐션 (Multi-Head Attention)
- 여러 개의 어텐션을 동시에 계산하여 서로 다른 관점에서 단어 관계를 학습
- 예: 하나의 헤드는 "문법 관계", 다른 헤드는 "의미 관계"에 집중
포지셔널 인코딩 (Positional Encoding)
- RNN처럼 순서를 고려하지 않는 트랜스포머에 위치 정보를 추가
- 단어 벡터에 위치별 사인/코사인 값을 더해 순서 개념을 반영
피드포워드 네트워크 (Feed-Forward Network)
- 어텐션의 결과를 다시 한번 비선형 변환해 표현력을 강화
잔차 연결 + Layer Normalization
- 학습이 안정되도록 돕는 장치
4. 직관적 이해
트랜스포머는 마치 회의 중에 여러 명이 동시에 발언을 듣고, 각자 중요한 내용을 기록한 뒤, 그 정보를 종합해 정리하는 과정과 비슷합니다.
- 어텐션은 “누구의 발언에 집중할지”를 결정
- 멀티헤드 어텐션은 여러 사람이 동시에 기록하는 것
- 포지셔널 인코딩은 “발언 순서”를 표시하는 역할
5. 파이썬 실습: 간단한 트랜스포머 인코더
TensorFlow/Keras에서 제공하는 MultiHeadAttention
레이어를 사용해 간단한 인코더 블록을 구현해봅니다.
import tensorflow as tf
from tensorflow.keras import layers
# 입력 (batch=1, 단어=5, 차원=16)
x = tf.random.normal((1, 5, 16))
# 멀티헤드 어텐션
attn = layers.MultiHeadAttention(num_heads=2, key_dim=16)
out1 = attn(x, x) # Self-Attention
# 잔차 연결 + LayerNorm
out1 = layers.LayerNormalization()(x + out1)
# 피드포워드 네트워크
ffn = tf.keras.Sequential([
layers.Dense(64, activation="relu"),
layers.Dense(16)
])
out2 = ffn(out1)
# 잔차 연결 + LayerNorm
encoder_output = layers.LayerNormalization()(out1 + out2)
print("Encoder output shape:", encoder_output.shape)
출력 예시:
Encoder output shape: (1, 5, 16)
6. 트랜스포머의 장점
- 병렬 학습 가능 → RNN보다 훨씬 빠름
- 긴 문맥 처리 → 어텐션으로 멀리 떨어진 단어도 연결 가능
- 범용성 → NLP뿐 아니라 이미지, 음성 등 다양한 분야에서 활용
7. 오늘의 정리
- 트랜스포머는 어텐션 기반의 병렬 처리 모델
- 인코더-디코더 구조로 되어 있으며, 번역, 분류, 생성 등 다양한 분야에서 성능이 우수
- GPT, BERT 등 최신 모델의 근간이 되는 핵심 구조
반응형
'개발 창고 > AI' 카테고리의 다른 글
BERT 구조와 사전학습(Pretraining) 이해하기 (0) | 2025.08.25 |
---|---|
어텐션 메커니즘 기초 – 딥러닝에서 ‘집중하기’ 배우기 (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 |