IT

트랜스포머(Transformer) 아키텍처 정리

ylood 2026. 1. 7. 23:11
반응형

트랜스포머(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. 단어 임베딩과 더하면 정보가 섞이지 않나요?

직관적으로 이상하게 느껴질 수 있지만, 실제로는 잘 작동합니다:

  1. 고차원의 여유 공간: 실제로는 512차원 이상에서 작동합니다. 고차원에서는 단어용 축과 위치용 축을 따로 쓸 공간이 충분합니다.
  2. 학습을 통한 분리: 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 를 좀더 잘 이해하고 더 잘 활용할 수 있길 바랍니다. 


반응형