[NLP] 대규모 언어모델(LLM) 구조 정리

김성윤(Jack)·2025년 8월 23일

NLP

목록 보기
1/35

1. LLM의 기본 학습 목표

  • 대규모 언어모델(LLM, Large Language Model)은 입력된 문장을 토큰 단위로 분해하고, 주어진 맥락(context)에서 다음에 올 토큰을 예측하는 것을 학습 목표로 합니다.
  • 기존 언어 모델에서는 Encoder-Decoder 구조를 활용하여 입력 문장의 의미 벡터를 생성한 뒤, 이를 디코더에서 활용해 출력 문장을 생성했습니다.
  • 반면, 현대의 GPT 계열 모델과 같은 LLM은 Decoder-only 구조를 사용하여 입력과 출력을 모두 하나의 시퀀스로 취급하고, 자기회귀(autoregressive) 방식으로 답변을 생성합니다.

2. Decoder-only 아키텍처

  • 디코더-온리 모델은 크게 다음과 같은 블록 구조를 반복하는 형태로 구성됩니다.

(1) 블록의 기본 구조

  • 각 Transformer 디코더 블록은 다음 단계를 거칩니다.
  1. Masked Multi-Head Self-Attention (MHA)

    • 입력 토큰들 사이의 의존성을 학습합니다.
    • 마스킹(masking)을 통해, 미래의 토큰은 참조할 수 없도록 제한합니다.
  2. Feed Forward Network (FFN)

    • 각 토큰의 hidden state에 대해 독립적으로 비선형 변환을 적용합니다.
  3. 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의 수식

  • 입력 XRn×dX \in \mathbb{R}^{n \times d} (n개의 토큰, d차원 벡터)에 대해,
    각각 Query, Key, Value 행렬을 다음과 같이 정의합니다.
Q=XWQ,K=XWK,V=XWVQ = XW_Q, \quad K = XW_K, \quad V = XW_V
  • Self-Attention은 다음과 같이 계산됩니다.
Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

(2) Multi-Head Attention

  • MHA는 h개의 헤드를 두고, 각 헤드에서 Self-Attention을 수행합니다.
MHA(X)=Concat(head1,,headh)WO\text{MHA}(X) = \text{Concat}(head_1, \dots, head_h)W_O
  • 여기서 각 헤드는 다음과 같이 정의됩니다.
headi=Attention(XWQ(i),XWK(i),XWV(i))head_i = \text{Attention}(XW_Q^{(i)}, XW_K^{(i)}, XW_V^{(i)})
  • 즉, MHA는 마치 여러 부서가 각각 문제를 해석한 뒤, 최종적으로 하나의 의사결정을 모으는 앙상블과 유사한 구조를 가집니다.

4. 학습 과정과 답변 생성

  • LLM은 **입력(질문) + 출력(답변)**을 하나의 긴 시퀀스로 결합하여 학습합니다.
  • 학습 시에는 답변 부분이 비어 있고, 모델이 순차적으로 답변 토큰을 생성합니다.
  1. 질문 문장 + <BOS> 토큰을 입력합니다.
  2. 첫 번째 블록에서 hidden state를 계산합니다.
  3. 마지막 블록의 hidden state를 FFN과 Softmax를 통과시켜, 첫 번째 답변 토큰을 생성합니다.
  4. 생성된 답변 토큰을 다시 입력에 붙여 넣고, 다음 토큰을 생성합니다.
  5. 이 과정을 반복하여 전체 답변 시퀀스를 완성합니다.

5. 인코더를 제거한 이유

  • 기존의 Encoder-Decoder 구조와 달리, GPT와 같은 모델들은 Decoder-only 구조를 채택했습니다. 그 이유는 다음과 같습니다.
  1. 효율성: Encoder는 입력을 의미 벡터로 변환하기 위한 별도의 모듈이지만, 실제로는 Self-Attention이 입력 의미를 충분히 인코딩할 수 있습니다.
  2. 단순화: Encoder와 Decoder 두 네트워크를 동시에 학습하는 것보다, 하나의 통일된 디코더를 학습하는 것이 구조적으로 단순합니다.
  3. 범용성: 질문-답변뿐만 아니라, 요약, 번역, 생성 등 다양한 작업을 모두 “입력 → 출력” 형태의 시퀀스 예측 문제로 통일할 수 있습니다.

6. 요약

  • 현대의 LLM은 Decoder-only Transformer 구조를 사용합니다.
  • Masked Multi-Head Self-AttentionFFN이 주요 구성 요소입니다.
  • Multi-Head Attention은 Self-Attention의 병렬 앙상블 구조입니다.
  • 출력은 자기회귀 방식으로 토큰을 하나씩 생성하며, 이전 출력은 다음 입력으로 다시 포함됩니다.
  • Encoder를 제거한 것은 단순성과 범용성을 위한 결정입니다.
profile
AI 공부합니다

0개의 댓글