– 예시와 함께 쉽게 이해하는 Transformer의 핵심 원리 –
들어가며
"AI가 문장을 읽고 이해한다?"
Transformer 모델이 처음 등장했을 때, 사람들은 이 모델이 단순히 왼쪽부터 오른쪽으로만 읽는 것이 아니라, 문장 전체를 한 번에 바라본다는 점에서 놀라워했습니다.
그 비결은 바로 Self-Attention이라는 메커니즘입니다.
오늘은 이 Self-Attention이 어떻게 작동하고, 왜 중요한지, 그리고 직접 구현해볼 수 있는 코드 예제까지 하나씩 설명드리겠습니다.
1. Self-Attention이란?
한 문장에서 단어들끼리 서로 얼마나 관련 있는지를 계산하는 방법입니다.
각 단어가 문장 내 다른 단어들과 얼마나 주의를 기울여야 하는지를 계산하여, 해당 단어의 의미를 더 잘 파악하게 도와줍니다.

2. 어떻게 작동하나요?
예시
"그녀는 은행에서 돈을 인출했다."
이 문장에서 "은행"이라는 단어는 문맥에 따라 금융 기관을 의미할 수도, 강가를 의미할 수도 있습니다.
그런데 "돈을 인출했다"라는 문맥을 참고하면, 금융 기관이라는 걸 알 수 있습니다.
Self-Attention은 이런 문맥을 반영합니다.
즉, "은행"이라는 단어는 자기 주변 단어들을 보면서, 어떤 의미인지 판단하는 구조입니다.

3. 작동 원리 – 쉬운 비유
Self-Attention은 이렇게 생각하시면 됩니다.
"나는 지금 내 친구들 중 누가 나와 가장 관련 있는 이야기를 하고 있는지 판단해서, 그 사람의 말에 더 집중하고 싶다."
3-1. Query, Key, Value란?
- Query: 내가 누구를 주목해야 하는지 물어보는 질문
- Key: 각 친구가 어떤 말을 하고 있는지 나타내는 정보
- Value: 그 친구가 실제로 가진 정보 (말의 내용)
즉, 내가 Query라면, 주변 친구들(Key)을 전부 살펴보면서,
"아, 지금은 이 친구(Value)가 중요하구나!" 하고 판단하는 셈입니다.
3-2. 수식으로 본 Self-Attention

- Q, K, V는 입력 문장을 각각 다른 방향에서 보는 선형 변환입니다.
- QKT는 Query와 Key 간의 유사도(연관성)를 나타냅니다.
- Softmax는 이 유사도를 확률처럼 정규화해 줍니다.
- 마지막으로 Value와 곱해 중요도에 따라 정보를 조합합니다.
4. 시각 자료로 보는 Self-Attention 흐름

위 그림처럼 각 단어(Query)가 다른 단어들(Key)과의 유사도를 구하고, 그에 따라 Value를 가중합하여 새로운 표현을 만들어냅니다.
5. 직접 구현해보는 Self-Attention (PyTorch)
import torch
import torch.nn.functional as F
def self_attention(X):
# X: (seq_len, d_model) - 입력 문장의 임베딩 벡터
d_model = X.size(1)
d_k = d_model
# 임의의 선형 변환 가중치 (Query, Key, Value용)
W_Q = torch.randn(d_model, d_model)
W_K = torch.randn(d_model, d_model)
W_V = torch.randn(d_model, d_model)
Q = X @ W_Q.t()
K = X @ W_K.t()
V = X @ W_V.t()
# 유사도 계산 (스케일된 dot product)
scores = Q @ K.t() / torch.sqrt(torch.tensor(d_k).float())
attn_weights = F.softmax(scores, dim=1)
# 가중합된 값 계산
Z = attn_weights @ V
return Z, attn_weights
# 사용 예시
seq_len, d_model = 5, 8
X = torch.randn(seq_len, d_model) # 문장의 임베딩
Z, attention_weights = self_attention(X)
print("출력 벡터 Z:", Z)
print("Attention 가중치:", attention_weights)
6. 마무리 요약
Self-Attention은 문장 내 단어들이 서로에게 주의를 기울이며 의미를 재해석하게 해주는 구조입니다.
핵심은 Query, Key, Value라는 3가지 관점에서 입력을 보고, 각 단어의 중요도를 계산하는 것입니다.
Transformer가 문장 전체를 빠르게 이해할 수 있는 비결은 바로 이 메커니즘 덕분입니다.
특히 이 Self-Attention 메커니즘은 단순한 논문 속 아이디어가 아니라, 현재 가장 강력한 인공지능 모델들에서 실질적으로 사용되고 있습니다.
예를 들어 GPT(ChatGPT), Google Gemini, Meta의 LLaMA, Anthropic Claude 등 다양한 최신 언어 모델들이 모두 Transformer 기반의 Self-Attention 구조를 중심으로 동작합니다.
이처럼 Self-Attention은 오늘날의 자연어 처리(NLP), 코드 생성, 요약, 번역, 질의응답 등 다양한 인공지능 응용 분야에서 핵심적인 역할을 하고 있습니다.
7. 참고 논문 및 자료
- Vaswani et al., Attention Is All You Need, NeurIPS 2017
논문 링크 - Jay Alammar, The Illustrated Transformer
블로그 링크 - 박상길, 파이토치로 시작하는 딥러닝 입문, 길벗출판사 – Transformer 챕터
- https://sebastianraschka.com/blog/2023/self-attention-from-scratch.html
Understanding and Coding the Self-Attention Mechanism of Large Language Models From Scratch
In this article, we are going to understand how self-attention works from scratch. This means we will code it ourselves one step at a time. Since its introdu...
sebastianraschka.com
'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 |
| Transformer 아키텍처 분석 (2) | 2025.06.14 |