트랜스포머(Transformer) 아키텍처 정리
ChatGPT를 써보셨나요? 그렇다면 이미 트랜스포머(Transformer)의 힘을 경험하신 겁니다.
요즘 AI 시대를 이끌고 있는 ChatGPT, Claude, Llama 같은 거대 언어 모델(LLM)의 핵심에는 바로 이 트랜스포머 아키텍처가 자리 잡고 있습니다. 오늘은 LLM이 어떻게 만들어지는지부터 트랜스포머의 핵심 작동 원리까지, 개발자라면 반드시 알아야 할 내용을 단계별로 정리해 보겠습니다.
1. LLM이 만들어지는 과정 (The Pipeline)
LLM을 만든다는 건 단순히 데이터를 넣고 학습 버튼을 누르는 게 아닙니다. 정교한 4단계 공정을 거쳐야 합니다.
1) 데이터 준비 (Data Preparation)
인터넷에 존재하는 방대한 텍스트 데이터를 수집합니다. 위키피디아, 뉴스, 책, 코드 등 다양한 소스에서 데이터를 모으고, 중복 제거와 품질 필터링을 통해 정제된 학습 데이터셋을 구축합니다.
2) 사전 학습 (Pre-training)
여기서 핵심은 "다음 단어 맞추기" 게임입니다.
"오늘 날씨가 정말 ___"
모델은 이런 빈칸을 수조 번 맞추면서 언어의 문법, 맥락, 상식까지 자연스럽게 습득합니다. 이를 자기 지도 학습(Self-supervised Learning)이라고 합니다. 별도의 정답 라벨 없이도 텍스트 자체가 학습 신호가 되는 방식이죠.
3) 미세 조정 (Fine-tuning / SFT)
사전 학습된 모델은 언어는 잘 알지만, 사용자의 질문에 적절히 대답하는 방법은 모릅니다. Supervised Fine-Tuning(SFT) 단계에서 "질문-답변" 형태의 데이터로 학습시켜 지시사항을 따르도록 가르칩니다.
4) 정렬 (Alignment / RLHF)
마지막으로 RLHF(Reinforcement Learning from Human Feedback)를 적용합니다. 인간 평가자의 피드백을 바탕으로 모델이 더 안전하고, 유익하며, 윤리적인 답변을 생성하도록 최적화하는 과정입니다.
2. 트랜스포머의 핵심 구성 요소
트랜스포머가 기존 RNN, LSTM과 다른 점은 무엇일까요? 바로 문장 전체를 한 번에 병렬 처리할 수 있다는 것입니다. 이를 가능하게 하는 핵심 메커니즘을 살펴보겠습니다.
2.1 Self-Attention과 Positional Encoding
문장을 한꺼번에 처리하면 두 가지 문제가 생깁니다.
문제 1: 단어 순서를 모른다
- "강아지가 고양이를 쫓는다" vs "고양이가 강아지를 쫓는다"
- 병렬 처리 시 두 문장의 차이를 구분할 수 없습니다.
해결책: Positional Encoding
- 사인(sin)과 코사인(cos) 함수를 활용해 각 단어의 위치 정보를 수학적으로 인코딩합니다.
- 이 값을 단어 임베딩에 더해주면 모델이 순서를 인식할 수 있게 됩니다.
Q. 단어 임베딩과 더하면 정보가 섞이지 않나요?
직관적으로 이상하게 느껴질 수 있지만, 실제로는 잘 작동합니다:
- 고차원의 여유 공간: 실제로는 512차원 이상에서 작동합니다. 고차원에서는 단어용 축과 위치용 축을 따로 쓸 공간이 충분합니다.
- 학습을 통한 분리: Self-Attention의 Q, K, V 행렬이 학습 과정에서 "더해진 벡터에서 필요한 정보를 추출하는 법"을 알아서 배웁니다.
문제 2: 단어 간 관계를 파악해야 한다
해결책: Self-Attention
- 문장 내 모든 단어들이 서로를 "바라보며" 관계를 파악합니다.
- Query, Key, Value 세 가지 벡터 연산을 통해 "어떤 단어에 집중해야 하는지" 점수를 계산합니다.
예를 들어 "그 프로그래머는 버그를 수정했다. 그는 정말 뛰어나다"에서 Self-Attention은 "그는"이 "프로그래머"를 가리킨다는 것을 파악합니다.
2.2 Feed Forward Network (FFN)와 비선형성
Self-Attention만으로는 부족합니다. 비선형성(Non-linearity)이 필요합니다.
왜 비선형성이 중요할까요?
- 선형 연산만으로는 아무리 층을 쌓아도 결국 하나의 선형 변환으로 축소됩니다.
- 활성화 함수를 통해 모델에 "곡선"을 그려 넣어야 복잡한 언어 패턴을 학습할 수 있습니다.
ReLU vs GeLU
| 활성화 함수 | 특징 | 사용 예시 |
|---|---|---|
| ReLU | 빠르고 명확 (0 이하는 0, 이상은 그대로) | 일반적인 신경망 |
| GeLU | 확률적으로 부드럽게 값을 통과 | GPT, BERT 등 최신 LLM |
GeLU는 입력값을 확률적으로 처리해 더 부드러운 학습이 가능하기 때문에, 최신 LLM에서 주로 채택됩니다.
2.3 Layer Normalization (LayerNorm)
딥러닝에서 층이 깊어질수록 학습이 불안정해지는 문제가 있습니다. LayerNorm은 이를 해결하는 정규화 기법입니다.
특히 Pre-LN 방식은 연산 직전에 정규화를 수행하여 깊은 층에서도 안정적인 학습이 가능하도록 합니다. 대부분의 현대 LLM이 이 방식을 채택하고 있습니다.
3. 문장 생성의 원리: 자기 회귀(Autoregressive)
LLM은 어떻게 긴 문장을 생성할까요? 바로 자기 회귀(Autoregressive) 방식입니다.
[입력] "오늘" -> [출력] "날씨가"
[입력] "오늘 날씨가" -> [출력] "좋습니다"
[입력] "오늘 날씨가 좋습니다" -> [출력] "."
하나의 토큰을 생성하고, 이를 다시 입력에 추가해 다음 토큰을 예측하는 과정을 반복합니다.
KV 캐싱 (Key-Value Caching)
여기서 문제가 있습니다. 매번 전체 문장에 대해 Self-Attention을 다시 계산하면 너무 느립니다.
해결책: KV 캐싱
- 이전 단계에서 계산한 Key와 Value 값을 메모리에 저장합니다.
- 새 토큰이 추가될 때 저장된 값을 재사용하여 추론 속도를 획기적으로 향상시킵니다.
ChatGPT가 실시간으로 답변을 스트리밍할 수 있는 비결이 바로 이 KV 캐싱 덕분입니다.
4. 디코딩 전략 (Decoding Strategies)
같은 모델이라도 어떻게 다음 단어를 선택하느냐에 따라 결과물이 완전히 달라집니다.
Greedy Search
- 방식: 매 단계에서 확률이 가장 높은 단어를 선택
- 장점: 빠르고 결정적(deterministic)
- 단점: 단조롭고 반복적인 문장 생성
Beam Search
- 방식: N개의 유망한 경로(beam)를 동시에 유지하며 탐색
- 장점: 전체적으로 더 논리적인 문장 생성
- 단점: 계산량 증가, 실시간 스트리밍에 부적합
Top-P Sampling (Nucleus Sampling)
- 방식: 누적 확률이 P(예: 0.9) 이내인 단어들 중에서 샘플링
- 장점: 창의적이면서도 자연스러운 결과
- 현재 가장 널리 사용되는 방식
Temperature 조절
- 낮은 Temperature (0.1~0.5): 보수적이고 정확한 답변 (코딩, 수학 등)
- 높은 Temperature (0.7~1.0): 창의적이고 다양한 답변 (글쓰기, 브레인스토밍 등)
마무리
트랜스포머는 자기 지도 학습 구조와 셀프 어텐션 메커니즘 덕분에 AI 혁명의 핵심 엔진이 되었습니다.
RNN이 순차적으로 처리하던 한계를 뛰어넘어, 문장 전체를 병렬로 처리하면서도 단어 간 관계를 정교하게 파악할 수 있게 된 것이죠.
오늘 정리한 내용이 ChatGPT 나 Gemini 등을 사용할때 AI 를 좀더 잘 이해하고 더 잘 활용할 수 있길 바랍니다.
'IT' 카테고리의 다른 글
| 앤트로픽 Claude Opus 4.6 출시 - 기존 모델과의 차이점 및 핵심 기능 총정리 (0) | 2026.02.06 |
|---|---|
| Claude Code와 AI 에이전트로 4일 만에 완성한 토정비결 운세 웹사이트 개발기 (0) | 2026.02.05 |
| OpenClaw(오픈클로) 완벽 정리 - 클로드봇에서 몰트봇, 그리고 지금까지 (0) | 2026.02.01 |
| Claude Code MAX 플랜 한달 실사용 후기 (0) | 2026.01.06 |
| Claude Code로 Sub Agent 만들어보기 (주식 분석 에이전트) (0) | 2026.01.05 |