– Self-Attention의 기반이 되는 AI 모델 구조의 모든 것 –
들어가며
현재 우리가 사용하고 있는 ChatGPT, Google Gemini, Claude, LLaMA와 같은 거대 언어 모델들은 공통적으로 Transformer라는 아키텍처를 기반으로 만들어졌습니다.
2017년, Google에서 발표한 논문 “Attention is All You Need”에서 처음 등장한 Transformer는 그 이름처럼 RNN이나 CNN 없이 오직 Attention 메커니즘만으로 문장을 처리할 수 있도록 설계된 구조입니다.
이번 글에서는 Transformer가 어떤 구조로 이루어져 있고, 어떻게 데이터를 처리하는지 예시와 함께 설명해보겠습니다.
1. Transformer란?
Transformer는 시퀀스(문장과 같이 순서가 있는 데이터)를 처리하기 위한 딥러닝 모델입니다.
기존에는 순서를 고려하기 위해 RNN, LSTM 같은 순환 신경망을 사용했지만, 병렬 처리에 한계가 있었습니다.
Transformer는 이런 문제를 해결하고자, Self-Attention 메커니즘을 기반으로 시퀀스를 처리합니다.
2. 전체 구조 개요
Transformer는 크게 두 부분으로 나뉩니다.
- Encoder: 입력 문장을 받아 의미를 요약(인코딩)
- Decoder: 인코딩된 정보를 바탕으로 새로운 문장을 생성(디코딩)
GPT는 Encoder 없이 Decoder만 사용하며, 번역기 같은 모델(BERT+Transformer)은 Encoder만 사용하기도 합니다.
3. 예시로 이해하는 Transformer
예를 들어, 영어 문장 "I am a student"을 프랑스어 "Je suis étudiant"로 번역하는 경우를 생각해봅시다.
- Encoder는 "I am a student"를 입력받아 문장의 의미를 요약한 벡터를 만듭니다.
- Decoder는 "Je"라는 단어부터 시작해서, 이전 단어들과 인코더 정보를 바탕으로 다음 단어(suis, étudiant)를 생성합니다.
- 이 과정에서 Attention 메커니즘은 단어들 사이의 관계를 고려하여 적절한 출력을 만듭니다.
4. Transformer 내부 구성
4-1. Encoder Block (입력 처리)
- Input Embedding: 단어를 숫자 벡터로 바꿈
- Positional Encoding: 단어의 위치 정보를 추가
- Multi-Head Self-Attention: 문장 내 모든 단어 관계를 계산
- Feed Forward Network (FFN): 비선형 변환
- Layer Normalization + Residual Connection: 안정적인 학습 지원
4-2. Decoder Block (출력 생성)
- 위 Encoder 구조와 거의 같지만, 인코더의 출력에 대해 Encoder-Decoder Attention이 추가됨
- 이전에 생성한 단어를 참고하기 위해 Masked Attention 사용
5. 시각 자료로 보는 Transformer 구조

위 그림은 Transformer의 전체 구조를 보여주는 도식으로, Encoder-Decoder 모델의 흐름과 각 구성 요소들의 연결 방식을 명확하게 시각화하고 있습니다. 왼쪽은 입력을 처리하는 Encoder, 오른쪽은 출력을 생성하는 Decoder 구조입니다.
출처: Vaswani et al., Attention Is All You Need, NeurIPS 2017
6. Transformer 코드 구조 예시 (PyTorch 기반 요약 버전)
import torch
import torch.nn as nn
class TransformerBlock(nn.Module):
def __init__(self, d_model, heads):
super().__init__()
self.attn = nn.MultiheadAttention(embed_dim=d_model, num_heads=heads)
self.ff = nn.Sequential(
nn.Linear(d_model, d_model * 4),
nn.ReLU(),
nn.Linear(d_model * 4, d_model)
)
self.norm1 = nn.LayerNorm(d_model)
self.norm2 = nn.LayerNorm(d_model)
def forward(self, x):
attn_output, _ = self.attn(x, x, x)
x = self.norm1(x + attn_output)
ff_output = self.ff(x)
return self.norm2(x + ff_output)
# 예시 사용
x = torch.rand(10, 5, 512) # (seq_len, batch, d_model)
block = TransformerBlock(d_model=512, heads=8)
out = block(x)
print(out.shape) # torch.Size([10, 5, 512])
이 코드는 Transformer의 핵심 구조인 Self-Attention → Feed Forward → Norm 구조를 하나의 블록으로 구현한 것입니다.
7. Transformer의 특징과 장점
- 병렬 처리 가능: RNN과 달리 모든 단어를 동시에 처리 가능
- 긴 문맥 이해: Attention을 통해 멀리 떨어진 단어 간 관계도 파악 가능
- 확장성: BERT, GPT, T5, RoBERTa 등 다양한 모델로 확장 가능
8. 실제 사용 사례
현재 사용 중인 ChatGPT(GPT-4), Google Gemini, Meta LLaMA, Anthropic Claude 등 모든 주요 LLM들은 Transformer 아키텍처를 기반으로 개발되었습니다.
그 핵심은 바로 Self-Attention을 중심으로 구성된 Encoder와 Decoder 구조입니다.
9. 참고 논문 및 자료
'Research & Paper' 카테고리의 다른 글
| Mamba: Linear-Time Sequence Modeling with Selective State Spaces (0) | 2025.09.08 |
|---|---|
| AI models collapse when trained on recursively generated data (0) | 2025.07.28 |
| "Robust Speech Recognition via Large-Scale Weak Supervision" (arXiv:2212.04356) (2) | 2025.07.26 |
| Multi-Head Attention 분석 (0) | 2025.06.14 |
| Self-Attention 매커니즘 분석 (4) | 2025.06.14 |