지난 글에서 Attention 메커니즘이 Seq2Seq의 병목을 해결했지만, 인코더와 디코더 자체는 여전히 RNN이었다. 2017년 이전까지 NLP 커뮤니티는 RNN 계열이 갖는 세 가지 본질적 한계를 해결하지 못하고 있었다. 이 한계들이 무엇이고, Transformer가 어떻게 동시에 해결했는지 총정리한다.
한계 1: 기울기 소실 (Vanishing Gradient)
BPTT에서 기울기는 타임스텝 수만큼 행렬 곱을 통과한다.
∂L/∂h_1 = ∂L/∂h_T · ∏_{t=2}^{T} W_h · diag(σ'(·))
W_h의 특잇값이 1보다 작으면 기울기는 기하급수적으로 0으로 수렴한다. LSTM/GRU는 이를 완화했지만 완전히 해결하지 못했다—매우 긴 시퀀스(T>1000)에서는 여전히 초기 토큰의 기울기가 소실된다.
한계 2: 순차 처리 — 병렬화 불가
h_t는 반드시 h_{t-1}이 계산된 후에 구할 수 있다. 이는 GPU 병렬화의 근본적 장벽이다.
# RNN: T 스텝을 순서대로 처리 — GPU 활용 불가
for t in range(T):
h_t = rnn_cell(x_t, h_{t-1}) # h_{t-1} 완료 전까지 대기
# Transformer: 모든 위치를 동시에 처리
out = attention(Q, K, V) # (B, T, d) 한 번에 계산
길이 1000 토큰 시퀀스를 처리할 때, RNN은 1000번의 직렬 연산이 필요하지만 Transformer는 단 하나의 행렬 곱으로 모든 위치를 동시에 처리한다. 이것이 Transformer가 동등한 하드웨어에서 수십 배 빨리 학습하는 이유다.
한계 3: 장거리 의존성 (Long-Range Dependency)
단방향 RNN에서 t=1 토큰이 t=500 토큰에 영향을 미치려면 498번의 중간 상태를 거쳐야 한다. 각 단계에서 정보가 변형되므로 t=1의 정보가 희석된다.
# 장거리 의존성 문제를 실험적으로 확인
import torch
# 500토큰 시퀀스에서 첫 토큰과 마지막 토큰의 코사인 유사도
def check_long_range(model, seq_len=500):
x = torch.randn(1, seq_len, 64)
out, _ = model(x)
first = out[0, 0, :] # t=1 출력
last = out[0, -1, :] # t=500 출력
cos_sim = torch.cosine_similarity(first.unsqueeze(0),
last.unsqueeze(0))
return cos_sim.item()
# RNN: 낮은 유사도, Transformer Self-Attention: O(1) 직접 연결
Transformer의 Self-Attention은 모든 토큰 쌍을 직접 연결한다. t=1과 t=500 사이의 경로 길이가 O(1)이다.
RNN vs LSTM vs Transformer 종합 비교
Transformer가 모두 해결하는 방법
| 한계 | RNN/LSTM 대응 | Transformer 해결책 |
|---|---|---|
| 기울기 소실 | LSTM 게이트 (완화) | Residual + LayerNorm (완전 해결) |
| 순차 처리 | 해결 불가 | Self-Attention (완전 병렬) |
| 장거리 의존성 | 완화 | O(1) 직접 연결 |
| 계산 복잡도 | O(n) | O(n²) — 단점 |
Transformer의 유일한 약점은 시퀀스 길이 n에 대한 O(n²) 메모리/계산 복잡도다. 이를 해결하기 위해 FlashAttention, Sliding Window Attention, Linear Attention 등 다양한 효율화 기법이 등장했다.
역사적 맥락
2013: Word2Vec (정적 임베딩)
2014: Seq2Seq (RNN + 인코더-디코더)
2015: Attention (Bahdanau, Luong)
2017: Transformer "Attention Is All You Need"
2018: BERT (양방향 Transformer 사전학습)
2019: GPT-2 (대규모 Transformer 언어모델)
2020~: GPT-3, PaLM, LLaMA...
RNN은 완전히 사라진 것이 아니다. 2023년 이후 Mamba(S4/SSM 계열)처럼 RNN의 O(1) 추론 메모리와 Transformer의 병렬 학습 장점을 결합하려는 시도가 이어지고 있다. RNN을 이해하는 것은 여전히 중요한 기반 지식이다.
지난 글: Attention 메커니즘: Seq2Seq 병목을 극복하다
다음 글: Transformer 기초: Attention Is All You Need
읽어주셔서 감사합니다. 😊

