GPT는 어떻게 학습하나요? Loss 함수부터 이해하기

Bean·2025년 6월 22일
0

인공지능

목록 보기
56/123

GPT 언어 모델은 어떻게 학습할까? — Loss 함수와 Cross Entropy 완전 이해하기

개요

GPT와 같은 언어 모델은 어떻게 "다음 단어"를 예측할 수 있을까요?
그리고 그 예측은 어떤 수학적인 방식으로 학습되는 걸까요?
오늘은 GPT의 언어 모델 학습 과정에서 사용되는 loss 함수
그것이 우리가 잘 아는 Cross Entropy Loss와 어떻게 연결되는지 쉽게 풀어보겠습니다.


GPT의 학습 방식: 두 단어 사이의 확률 예측

GPT는 문장을 한 단어씩 읽어나가며 "다음에 어떤 단어가 올까?"를 예측합니다.

예를 들어 문장이 아래와 같다면:

"I am a student"

모델은 이렇게 학습됩니다:

입력정답 (예측할 단어)
"I""am"
"I am""a"
"I am a""student"

즉, 이전까지 본 단어들을 보고 다음 단어를 맞히는 것이 GPT의 기본 원리입니다.


수식으로 표현한 Loss 함수

논문에서는 다음과 같은 수식으로 언어 모델의 학습 목표를 표현합니다:

L1(U)=ilogP(uiuik,...,ui1;Θ)\mathcal{L}_1(U) = \sum_i \log P(u_i \mid u_{i-k}, ..., u_{i-1}; \Theta)
  • uiu_i: 예측하고자 하는 단어
  • uik,...,ui1u_{i-k}, ..., u_{i-1}: 앞선 문맥
  • Θ\Theta: 모델 파라미터 (즉, Transformer의 weight 등)

이 수식의 의미는:

"앞 단어들을 보고 다음 단어가 나올 확률 P(ui)P(u_i)최대한 크게 만들자"


그런데... 이게 Cross Entropy랑 무슨 관련이죠?

이 수식은 사실 우리가 흔히 쓰는 Cross Entropy Loss와 동일한 개념입니다.
차이점은 표현 방식만 다르고, 수학적 원리는 동일합니다.

Cross Entropy는 다음과 같이 정의됩니다:

Loss=logP(정답 단어context)\text{Loss} = - \log P(\text{정답 단어} \mid \text{context})

즉, 예측한 단어 확률 분포 중에서 정답 단어의 확률을 추출한 뒤
로그를 취하고 음수로 변환해서 손실로 사용합니다.

→ 이건 결국, 위 수식의 부호를 바꾼 형태일 뿐입니다.


모델 구조 상의 흐름 요약

  1. 입력 토큰을 임베딩하고 위치 정보를 더함:

    h0=UWe+Wph_0 = U W_e + W_p
  2. Transformer Decoder가 여러 층을 거쳐 문맥 벡터 생성:

    hl=TransformerBlock(hl1)h_l = \text{TransformerBlock}(h_{l-1})
  3. 마지막 출력 hnh_n어휘 전체 단어와 비교하여 점수(logits) 계산:

    logits=hnWeT\text{logits} = h_n W_e^T
  4. softmax를 거쳐 예측 확률 분포 획득:

    P(ui)=softmax(hnWeT)P(u_i) = \text{softmax}(h_n W_e^T)
  5. 정답 단어의 위치에 있는 확률을 뽑아 Cross Entropy Loss 계산:

    Loss=logP(정답 단어context)\text{Loss} = -\log P(\text{정답 단어} \mid \text{context})

요약 한 줄

GPT는 이전 단어들을 입력으로 넣고, 다음 단어의 확률을 softmax로 계산한 뒤,
정답 단어에 가까울수록 낮은 Cross Entropy Loss를 갖도록 학습됩니다.


profile
AI developer

0개의 댓글