https://poloclub.github.io/transformer-explainer/
Transformer Explainer: LLM Transformer Model Visually Explained
An interactive visualization tool showing you how transformer models work in large language models (LLM) like GPT.
poloclub.github.io
트랜스포머 동작방식을 시각적으로 이해하기 쉽게 제공해주는 "Transformer Explainer" 를 단계적으로 진행하면 트랜스포머 아키텍처를 AI(제미나이) 도움을 받아 학습해 보겠습니다.
1. Transformer Explainer 사이트 개요
조지아 공과대학교(Georgia Tech)의 유명 연구실인 Polo Club(Polo Chau 교수 연구진)에서 개발하여 웹 기반 인터랙티브 시각화로 공개한 최첨단 교육용 도구로 대규모 언어 모델(LLM)의 근간이 되는 Decoder-Only Transformer(GPT 아키텍처)의 내부 작동 메커니즘을 브라우저 상에서 실시간 시각화하여 직관적으로 이해할 수 있도록 만든 인터랙티브 아키텍처 탐색기입니다.
- GPT-2 Small (124M 파라미터) 모델을 기반으로 구동됩니다.
- 단순한 애니메이션이 아니라, ONNX Runtime Web 기술 등을 활용하여 실제 GPT-2 모델의 가중치(Weights)와 연산 과정(Attention Matrix, MLP Logits)을 사용자 브라우저에서 100% 실시간 계산(In-Browser Inference)하여 시각화합니다.
- LLM 추론 과정의 Pre-fill(Embedding)부터 Decode(Next Token Prediction)까지의 모든 단계를 시각적 블록으로 해부해 놓았습니다.

"The weather" 를 입력하고 엔터키를 누르면 is 가 추론되는 과정을 단계별로 알아가 보겠습니다.
What is Transformer?

Transformer는 ChatGPT 및 Gemini와 같은 모델에 동력을 공급하는 현대 AI 이면의 핵심 아키텍처입니다. 2017년에 도입되어 AI가 정보를 처리하는 방식에 혁명을 일으켰습니다. 방대한 데이터셋에 대한 학습과 출력을 생성하는 추론에 동일한 아키텍처가 사용됩니다. 여기서는 최신 모델보다 간단하지만 기본을 배우기에 완벽한 GPT-2(소형)를 사용합니다.
시스템 엔지니어링 관점 분석: 왜 혁명인가?
단순히 성능이 좋아져서가 아닙니다. 하드웨어 효율성과 병렬 연산이라는 시스템적 관점에서 그 이유를 명확히 이해해야 합니다.
1. RNN의 한계: Sequential의 늪 Transformer 이전의 SOTA(State-of-the-Art)였던 RNN(Recurrent Neural Network)과 그 변종들(LSTM, GRU)은 정보를 순차적(sequential)으로 처리했습니다.
- 시스템 병목: 이전 타임스텝($t-1$)의 연산이 끝나야만 현재 타임스텝($t$)의 연산이 가능합니다. 이는 GPU의 강력한 SIMD(Single Instruction, Multiple Data) 병렬 처리 능력을 최대로 활용하지 못하게 만들었습니다.
- 메모리 병목: 긴 시퀀스를 처리할 때, 이전 정보가 점차 희석되거나(Vanishing Gradient) 초기 정보를 기억하기 위해 거대한 은닉 상태(Hidden State)를 유지해야 했습니다.
2. Transformer의 해법: Parallelism의 승리 Transformer는 Self-Attention 매커니즘을 도입하여 시퀀스 내의 모든 토큰을 한 번에 병렬로(in parallel) 처리합니다.
- 하드웨어 최적화: 더 이상 이전 타임스텝의 결과를 기다릴 필요가 없습니다. 시퀀스의 모든 토큰 간의 관계를 단 한 번의 거대한 행렬 곱셈($Q \times K^T$)으로 계산할 수 있습니다. 이는 최신 GPU의 텐서 코어(Tensor Core)를 가장 효율적으로 활용하는 구조입니다.
- 전역적 문맥 이해: 토큰들 사이의 거리에 상관없이 직접적인 관계를 계산하므로(Complexity $O(1)$) 긴 시퀀스에서도 정보를 잃지 않고 전역적인 문맥(Global Context)을 완벽하게 파악합니다.
[비교 모델 분석]: GPT-2 (Small)
이미지에서 교육용으로 제안한 GPT-2 (Small) 모델을 시스템 관점에서 해부해 보겠습니다. 최신 Llama-3 같은 모델도 기본 뼈대는 이와 동일합니다.
| Component | specification (GPT-2 Small) | Engineering Insight |
| Model Dimension ($d_{model}$) | 768 | 각 토큰이 가지는 고차원 벡터의 크기입니다. 연산량 및 KV Cache 메모리 크기와 직결됩니다. |
| Number of Layers ($N_{layer}$) | 12 | Transformer 블록이 수직으로 쌓인 개수입니다. 모델의 깊이를 결정하며 연산량($O(N)$) 및 통신 오버헤드에 영향을 줍니다. |
| Number of Heads ($N_{head}$) | 12 | $d_{model}$을 다수의 헤드로 나누어 병렬로 Attention을 수행합니다 ($d_{head} = 768 / 12 = 64$). |
| Quantization 트레이드오프 | FP16 기준 약 250MB VRAM | 교육용으로는 훌륭하지만, Llama-3-70B 같은 모델을 FP16으로 돌리려면 약 140GB VRAM이 필요합니다. 그래서 우리는 AWQ/GGUF 같은 양자화 기법을 사용하여 이를 1/4 크기로 줄여 로컬 서빙을 가능하게 만듭니다. |
한 줄 요약 비교
| 아키텍처 | 처리 방식 | 시스템 레벨 병목 | 전역 문맥 파악 능력 |
| RNN (Legacy) | Sequential (순차적) | GPU 병렬 연산 불가능 (Latency) | 거리가 먼 정보는 유실됨 |
| Transformer (Modern) | Parallel (병렬적) | $O(S^2)$ 복잡도 및 메모리 (KV Cache) | 전역 정보 완벽 파악 |
Trade Off
"비밀 무기: Transformer의 숨겨진 비용, KV Cache 복잡도"
Transformer가 병렬 연산으로 혁명을 일으켰지만, 그 "숨겨진 비용(Hidden Cost)" 에 대해 생각해 봐야 합니다.
- Transformer는 병렬 연산으로 학습 속도를 혁명적으로 단축했지만, 추론(Inference) 단계에서는 'KV Cache'라는 거대한 메모리 폭탄을 우리에게 안겨주었습니다. 토큰이 늘어날 때마다 Attention 관계를 다 저장해야 하므로, 메모리 복잡도가 Context Length의 제곱($O(S^2)$)에 비례해서 늘어납니다. 그래서 우리는 나중에 PagedAttention이나 GQA 같은 최적화 기법을 배워서 이 메모리 병목을 해결해야만 합니다."
How Transfomer Work?

Transformer는 마술이 아닙니다. 이들은 다음과 같은 질문을 던지며 한 단계씩 차례대로 텍스트를 만들어 나갑니다: "이 입력 뒤에 올 가장 확률이 높은 다음 단어는 무엇인가?"
여기서는 학습된 모델이 텍스트를 어떻게 생성하는지 탐구합니다. 본인만의 텍스트를 작성하거나 예시를 사용한 후, **Generate(생성)**를 클릭하여 실제 작동하는 모습을 확인해 보세요. 모델이 아직 준비되지 않았다면 다른 **Example(예시)**을 시도해 보세요.
Transformer Architecture


Embedding

Transformer가 텍스트를 사용하기 전에, 먼저 텍스트를 작은 단위로 분할하고 각각을 숫자 목록(벡터)으로 표현합니다. 이 과정을 **임베딩(embedding)**이라고 하며, 이 용어는 정제 과정 자체와 그 결과로 나온 벡터 모두를 가리킬 수 있습니다.
이 툴에서 각 벡터는 사각형으로 표시되며, 마우스를 올리면 해당 크기가 표시됩니다.
(참고) 용어 정의
https://developers.openai.com/api/docs/concepts
Key concepts | OpenAI API
At OpenAI, protecting user data is fundamental to our mission. We do not train our models on inputs and outputs through our API. Learn more on our API data privacy page. Text generation models OpenAI’s text generation models (often referred to as generat
developers.openai.com
Embeddings
임베딩이란, 특정 데이터(예: 텍스트)를 벡터 형태로 표현하는 방식으로, 해당 데이터의 내용이나 의미를 그대로 유지하도록 설계됩니다. 어떤 면에서 서로 유사한 데이터들은, 서로 관련이 없는 데이터들에 비해 더 가까운 위치에 있는 임베딩 값을 갖게 됩니다. OpenAI는 텍스트 스트링을 입력으로 받아 임베딩 벡터를 출력하는 텍스트 임베딩 모델을 제공합니다. 임베딩은 검색, 클러스터링, 추천 시스템, 이상 징후 감지, 분류 등 다양한 용도로 활용됩니다.
Tokens
텍스트 생성 및 엠베딩 모델들은 텍스트를 “토큰”이라고 불리는 단위들로 나누어 처리합니다. 토큰이란, 자주 등장하는 문자들의 연속을 의미합니다. 예를 들어, “tokenization”이라는 단어는 “token”과 “ization”이라는 두 토큰으로 나뉩니다. 반면, “the”와 같이 짧고 흔한 단어들은 하나의 토큰으로 표현됩니다. 문장 내에서 각 단어의 첫 번째 토큰은 보통 공백 문자로 시작합니다. 특정 단어들이 어떻게 토큰으로 변환되는지 확인하려면, 저희의 토큰화 도구를 사용해 보세요. 대략적으로, 영어 텍스트의 경우 1개의 토큰은 약 4개의 문자 또는 0.75개의 단어에 해당합니다.
https://platform.openai.com/tokenizer
OpenAI Platform
platform.openai.com
Token Embedding


토큰화(Tokenization)는 입력 텍스트를 단어나 단어의 일부와 같은 작은 단위인 토큰으로 분할합니다. GPT-2(소형)는 50,257개의 토큰 어휘 사전을 가지고 있으며, 각 토큰은 고유한 ID를 갖습니다.
토큰 임베딩 단계에서는 모든 토큰이 대형 룩업 테이블(Lookup Table)에서 가져온 768개 숫자로 구성된 벡터에 매핑됩니다. 이 벡터들은 학습 과정에서 각 토큰의 의미를 가장 잘 표현하도록 학습됩니다.
시스템 및 아키텍처 관점에서의 상세 분석
① Lookup Table 연산의 실체: O(1) Memory Access
토큰 임베딩 단계는 행렬 곱셈 연산이 아닙니다. 컴퓨터 시스템 관점에서는 단순 Index 기반의 Lookup 연산입니다.
[Token ID: 2834] ───> [ Embedding Matrix (50,257 × 768) ] ───> [ 768-dim Vector ]
└── Index Row 2834 ──┘
- Tokenization: 텍스트 → Token ID (i ∈ [0, V-1])
- 연산 복잡도: 행렬 곱셈(O(V·dmodel))을 하지 않고 메모리 주소 참조(O(1))로 수행되므로 GPU 통신 오버헤드가 적고 매우 빠릅니다.
② VRAM 점유율 및 파라미터 수치 기반 비교 분석
Vocabulary Size(V)와 Hidden Dimension(d model)은 모델 전체 파라미터 수 및 VRAM 사용량에 직결됩니다. GPT-2 Small과 최신 SOTA 모델인 Llama-3-8B를 정밀 비교해 보겠습니다.
| 모델 명 | Vocabulary Size (V) | Hidden Dim (dmodel) | 임베딩 파라미터 수 (V×dmodel) | FP16 기준 VRAM 점유량 |
| GPT-2 (Small) | 50,257 | 768 | 약 3,859만 개 (≒ 38.6 M) | 약 77.2 MB |
| Llama-3 (8B) | 128,256 | 4,096 | 약 5억 2,533만 개 ( ≒ 525.3M) | 약 1,050.6 MB (약 1.05 GB) |
💡 System & Optimization Insight
Llama-3는 다국어 처리 효율성 및 토큰 압축률을 높이기 위해 Vocabulary Size를 $128,256으로 4배 가량 늘렸습니다. 이에 따라 단순 토큰 임베딩 레이어 하나가 차지하는 VRAM만 1GB를 초과하게 됩니다.
서빙 환경에서 AWQ/GPTQ 4-bit 양자화를 적용할 때, 모델 레이어 가중치는 4-bit로 압축하더라도 **embed_tokens 레이어는 FP16/BF16 정밀도를 유지(Keep FP16)**하는 경우가 많습니다. 임베딩이 4-bit로 지나치게 정밀도가 떨어지면 고차원 공간에서의 의미론적 거리(Semantic Distance)가 훼손되어 전체 출력 품질이 급격히 저하되기 때문입니다.
한 줄 요약 비교
개념 Tokenization (토큰화) Token Embedding (토큰 임베딩) 변환 흐름 Raw Text → Integer Token ID (1D) Integer Token ID → Continuous Vector (2D/ 3D Tensor) 특성 Rule-based / BPE 알고리즘 (비학습) Trainable Weight Matrix Wemb (학습 파라미터) 비유 단어에 번호표(ID)를 붙이는 과정 번호표를 고차원 의미 공간의 지도 좌표로 바꾸는 과정
Positional Encoding


위치 인코딩 (Positional Encoding)
언어에서는 단어의 순서가 중요합니다. 위치 인코딩은 시퀀스 내에서 각 토큰에게 자신의 위치에 대한 정보를 부여합니다.
GPT-2는 토큰의 임베딩에 학습된 위치 임베딩(Learned Positional Embedding)을 더함으로써 이 작업을 수행하지만, 최신 모델들은 특정 벡터를 회전시켜 위치를 인코딩하는 RoPE와 같은 다른 방식을 사용할 수 있습니다. 이 모든 방식의 목적은 모델이 텍스트 내의 순서를 이해하도록 돕는 것입니다.
[아키텍처 관점에서의 위치 인코딩 심층 분석]
1. 왜 위치 인코딩이 필수적인가? (Permutation Invariance)
Transformer의 핵심 연산인 Self-Attention은 모든 토큰 쌍(Pair) 사이의 Dot-Product(Q K^T)를 기반으로 합니다.

2. 위치 인코딩 발전사: Absolute vs. Relative vs. RoPE
① Absolute Learned Positional Embedding (GPT-2, BERT)
- 원리: 위치 $m \in [0, L_{max}-1]$에 해당하는 파라미터 $W_{pos} \in \mathbb{R}^{L_{max} \times d_{model}}$를 두고, 입력 임베딩에 단순히 가산(Addition)합니다.

- 한계: 학습 시 정의된 최대 길이(L_max, 예: GPT-2의 1024 토큰)를 초과하는 위치는 아예 처리할 수 없으며, 두 토큰 간의 상대적 거리(Relative Distance) 표현력이 떨어집니다.
② Relative Positional Encoding (T5, ALiBi)
토큰의 절대 위치 대신, 두 토큰 간의 거리를 Attention Score 계산 과정에 직접 가산($QK^T + R_{m-n}$)하거나 편향(Bias)으로 주입합니다.
③ RoPE (Rotary Position Embedding - Llama-2/3, Qwen-2.5 표준)
- 원리: Absolute의 간결함과 Relative의 유연함을 결합한 기법입니다. 입력 임베딩 단계가 아닌, Multi-Head Attention 내부의 Query(Q) 및 Key(K) 벡터를 복소수 평면에서 2D 짝(Pair) 단위로 회전시킵니다.
- 수학적 메커니즘:
- 2D 공간 상의 쿼리 벡터 $q = [q_1, q_2]^T에 위치 m에 비례하는 회전 각도 $m\theta$를 갖는 회전 행렬 $R_{\Theta, m}^d$를 곱합니다.

- RoPE의 핵심 성질:
- 위치 $m$의 Query와 위치 $n$의 Key 내적을 계산하면, 절대 위치 정보는 지워지고 두 위치의 차이($m-n$, 상대적 거리)만 남게 됩니다!

3. Context Length 확장을 위한 RoPE Scaling 기법
프로덕션 환경에서 모델의 문맥 길이를 8K → 32K → 128K 이상으로 확장할 때 RoPE 파라미터 재조정이 이루어집니다.
- Linear Scaling: 회전 각도 계산 시 위치 $m$ 대신 $m / s$ ($s$: 확장 비율)를 적용합니다. 구현이 매우 간단하지만 외삽(Extrapolation) 시 Perplexity 저하가 존재합니다.
- NTK-Aware Scaling: 고주파성(짧은 거리) 정보는 유지하고 저주파성(긴 거리) 정보만 회전 주기 Base 값($\theta_0 = 10000 \to 500000$)을 크게 넓혀 다차원 진동수를 조정합니다. (Llama-3에서 대용량 문맥 처리 시 채택)
한줄 요약

Repetitive Transformer Blocks

반복되는 트랜스포머 블록 (Repetitive Transformer Blocks)
트랜스포머 블록(Transformer block)은 모델 내 연산 처리의 핵심 단위입니다. 이는 두 가지 부분으로 구성됩니다:
멀티 헤드 셀프 어텐션 (Multi-head self-attention) – 토큰들이 정보를 서로 공유하도록 합니다.
MLP – 각 토큰의 세부 정보를 정제합니다.
모델은 수많은 블록을 수직으로 쌓아 올려, 토큰 표현(Representation)이 블록을 통과할수록 더욱 풍부해지도록 만듭니다. GPT-2(소형)는 이러한 블록을 12개 가집니다.

(참고) Query, Key, Value 벡터 →→→→→ 어텐션
'LLM' 카테고리의 다른 글
| (LLMSO 3주차) [KodeKloud] vLLM을 사용하여 LLM 추론서버 운영 (0) | 2026.08.22 |
|---|---|
| (LLMSO 2주차) K8S 환경에서 로컬 LLM 서빙 (0) | 2026.08.13 |