1. LLM의 기본 학습 목표
- 대규모 언어모델(LLM, Large Language Model)은 입력된 문장을 토큰 단위로 분해하고, 주어진 맥락(context)에서 다음에 올 토큰을 예측하는 것을 학습 목표로 합니다.
- 기존 언어 모델에서는 Encoder-Decoder 구조를 활용하여 입력 문장의 의미 벡터를 생성한 뒤, 이를 디코더에서 활용해 출력 문장을 생성했습니다.
- 반면, 현대의 GPT 계열 모델과 같은 LLM은 Decoder-only 구조를 사용하여 입력과 출력을 모두 하나의 시퀀스로 취급하고, 자기회귀(autoregressive) 방식으로 답변을 생성합니다.
2. Decoder-only 아키텍처
- 디코더-온리 모델은 크게 다음과 같은 블록 구조를 반복하는 형태로 구성됩니다.
(1) 블록의 기본 구조
- 각 Transformer 디코더 블록은 다음 단계를 거칩니다.
-
Masked Multi-Head Self-Attention (MHA)
- 입력 토큰들 사이의 의존성을 학습합니다.
- 마스킹(masking)을 통해, 미래의 토큰은 참조할 수 없도록 제한합니다.
-
Feed Forward Network (FFN)
- 각 토큰의 hidden state에 대해 독립적으로 비선형 변환을 적용합니다.
-
Residual Connection + Layer Normalization
- 학습 안정화를 위해 skip connection과 정규화를 적용합니다.
(2) 블록 구조 다이어그램
Input Embedding
│
▼
┌─────────────────────┐
│ Masked Multi-Head │
│ Self-Attention (MHA)│
└─────────────────────┘
│
Residual + LayerNorm
│
▼
┌─────────────────────┐
│ Feed Forward Network│
└─────────────────────┘
│
Residual + LayerNorm
│
▼
Hidden State
3. Self-Attention과 Multi-Head Attention
- Self-Attention은 입력된 토큰 간의 관계를 계산하여, 각 토큰이 문맥 내에서 어떤 토큰에 주목해야 하는지(attend)를 학습하는 메커니즘입니다.
- Multi-Head Attention(MHA)은 이러한 Self-Attention을 여러 개의 헤드로 병렬 실행한 뒤, 결과를 합치는 구조입니다.
(1) Self-Attention의 수식
- 입력 X∈Rn×d (n개의 토큰, d차원 벡터)에 대해,
각각 Query, Key, Value 행렬을 다음과 같이 정의합니다.
Q=XWQ,K=XWK,V=XWV
- Self-Attention은 다음과 같이 계산됩니다.
Attention(Q,K,V)=softmax(dkQKT)V
(2) Multi-Head Attention
- MHA는 h개의 헤드를 두고, 각 헤드에서 Self-Attention을 수행합니다.
MHA(X)=Concat(head1,…,headh)WO
headi=Attention(XWQ(i),XWK(i),XWV(i))
- 즉, MHA는 마치 여러 부서가 각각 문제를 해석한 뒤, 최종적으로 하나의 의사결정을 모으는 앙상블과 유사한 구조를 가집니다.
4. 학습 과정과 답변 생성
- LLM은 **입력(질문) + 출력(답변)**을 하나의 긴 시퀀스로 결합하여 학습합니다.
- 학습 시에는 답변 부분이 비어 있고, 모델이 순차적으로 답변 토큰을 생성합니다.
- 질문 문장 +
<BOS> 토큰을 입력합니다.
- 첫 번째 블록에서 hidden state를 계산합니다.
- 마지막 블록의 hidden state를 FFN과 Softmax를 통과시켜, 첫 번째 답변 토큰을 생성합니다.
- 생성된 답변 토큰을 다시 입력에 붙여 넣고, 다음 토큰을 생성합니다.
- 이 과정을 반복하여 전체 답변 시퀀스를 완성합니다.
5. 인코더를 제거한 이유
- 기존의 Encoder-Decoder 구조와 달리, GPT와 같은 모델들은 Decoder-only 구조를 채택했습니다. 그 이유는 다음과 같습니다.
- 효율성: Encoder는 입력을 의미 벡터로 변환하기 위한 별도의 모듈이지만, 실제로는 Self-Attention이 입력 의미를 충분히 인코딩할 수 있습니다.
- 단순화: Encoder와 Decoder 두 네트워크를 동시에 학습하는 것보다, 하나의 통일된 디코더를 학습하는 것이 구조적으로 단순합니다.
- 범용성: 질문-답변뿐만 아니라, 요약, 번역, 생성 등 다양한 작업을 모두 “입력 → 출력” 형태의 시퀀스 예측 문제로 통일할 수 있습니다.
6. 요약
- 현대의 LLM은 Decoder-only Transformer 구조를 사용합니다.
- Masked Multi-Head Self-Attention과 FFN이 주요 구성 요소입니다.
- Multi-Head Attention은 Self-Attention의 병렬 앙상블 구조입니다.
- 출력은 자기회귀 방식으로 토큰을 하나씩 생성하며, 이전 출력은 다음 입력으로 다시 포함됩니다.
- Encoder를 제거한 것은 단순성과 범용성을 위한 결정입니다.