언어 모델의 기본: 다음 토큰 예측 · 퍼플렉서티 · 샘플링
다음 토큰 예측 · n-gram · 소프트맥스 · 퍼플렉서티 · 디코딩을 손계산으로 익히는 수업
먼저 알아야 할 것
다루는 내용
LLM의 기본 원리인 언어 모델을 다룹니다. 연쇄 법칙으로 문장 확률을 다음 토큰 확률로 쪼개고, 셈으로 만드는 n-gram과 평활을 확인합니다. 로짓 → 소프트맥스, 교차 엔트로피와 퍼플렉서티, greedy · 온도 · top-k · top-p 디코딩을 작은 숫자로 계산합니다.
해설
언어 모델의 기본: 다음 토큰 예측 · 퍼플렉서티 · 샘플링
ChatGPT · Claude 같은 LLM이 하는 일은 결국 하나, "지금까지의 글 다음에 올 토큰의 확률 분포"를 계산하는 것 입니다. 이 수업에서는 문장 확률을 쪼개는 연쇄 법칙, 세어서 만드는 n-gram 모델, 신경망의 로짓 → 소프트맥스, 학습 손실(교차 엔트로피)과 퍼플렉서티, 그리고 글을 실제로 뽑는 디코딩 방법(greedy · 온도 · top-k · top-p)을 손으로 계산합니다.
| 항목 | 내용 |
|---|---|
| 참고 출처 | Dive into Deep Learning 9.3절 「Language Models」 (d2l.ai) |
| 트랙 · 수준 | NLP·트랜스포머 · 기초 |
| 이 수업이 다루는 범위 | 연쇄 법칙, 마르코프 가정 · n-gram, 라플라스 평활, 로짓과 소프트맥스, 교차 엔트로피 · 퍼플렉서티, 디코딩 전략 |
들어가기 전에
- 토큰과 토크나이저 — 언어 모델이 예측하는 단위는 단어가 아니라 토큰입니다.
- 정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산 — 학습 손실인 교차 엔트로피와 의 뜻.
- 딥러닝 문서로 배우기 (D2L) — 소프트맥스 분류와 학습 루프. 언어 모델은 "어휘 크기만큼의 클래스로 하는 분류"입니다.
한눈에 보기
- 문장 전체의 확률을 '다음 토큰 확률의 곱'으로 쪼개는 이유와 방법을 압니다.
- n-gram 모델을 세기만으로 만들고, 왜 0 확률 문제가 생기는지 확인합니다.
- 신경망이 내놓은 로짓을 소프트맥스로 확률로 바꾸고, 온도가 분포를 어떻게 바꾸는지 계산합니다.
- 퍼플렉서티가 "모델이 평균적으로 몇 개 중에서 고민하는가"라는 뜻임을 숫자로 확인합니다.
- greedy · top-k · top-p 샘플링의 차이를 손으로 계산합니다.
1. 문장 확률을 다음 토큰 확률로 쪼개기
직관(해설용 비유). 끝말잇기처럼, 문장 하나를 "앞을 보고 다음 한 조각 고르기"의 연속으로 봅니다.
단계.
- 문장을 토큰 로 나눕니다.
- 첫 토큰의 확률, 첫 토큰이 주어졌을 때 둘째 토큰의 확률, … 을 차례로 곱합니다.
D2L이 쓰는 확률의 연쇄 법칙(chain rule)은 다음과 같습니다.
| 기호 | 뜻 |
|---|---|
| 번째 토큰 | |
| 문장 길이(토큰 수) | |
| 앞 토큰이 다 주어졌을 때 가 나올 조건부 확률 | |
| 전부 곱하기 |
이 식은 근사가 아니라 항상 성립하는 등식입니다. 그래서 "다음 토큰 확률만 잘 맞히면 문장 전체의 확률도 잘 맞힌다"가 됩니다. GPT 계열의 학습 목표가 이것이고, 강좌들은 이를 인과 언어 모델링(causal language modeling) 이라고 부릅니다.
2. 세어서 만드는 n-gram 모델
직관. 앞의 모든 토큰을 다 보기는 어려우니, 바로 앞 몇 개만 보고 다음을 맞힙니다(마르코프 가정).
바로 앞 하나만 보는 바이그램(bigram)은 이렇게 근사합니다.
| 기호 | 뜻 |
|---|---|
| 말뭉치에서 가 나온 횟수 | |
| 바로 뒤에 가 나온 횟수 | |
| 셈으로 추정한 확률 |
숫자로 해 보기(해설용 말뭉치). 세 문장 「나는 커피를 마신다」 「나는 차를 마신다」 「너는 커피를 마신다」가 있다고 합시다.
- , →
- , →
- 문장 첫 단어가 '나는'일 확률
그래서 입니다.
그런데 「너는 차를 마신다」는 이라 확률이 0 이 됩니다. 말이 되는 문장인데도 말뭉치에 없다는 이유만으로 불가능 취급을 받습니다.
고치는 법: 라플라스 평활(Laplace smoothing). D2L은 모든 셈에 작은 상수를 더해 0을 피하는 방법을 소개합니다. 예를 들어 단어 확률은 (: 전체 단어 수, : 서로 다른 단어 수) 처럼 고칩니다. 이면 평활이 없고, 클수록 균등 분포 에 가까워집니다.
왜 신경망으로 넘어갔나. n-gram은 n을 키울수록 셈표가 폭발적으로 커지고 대부분 칸이 0이 됩니다. 또 '커피'와 '녹차'가 비슷하다는 것을 모릅니다. 신경망 언어 모델은 임베딩 으로 비슷한 토큰을 비슷하게 다루고, 긴 앞 문맥도 고정된 크기의 계산으로 요약합니다.
3. 신경망 언어 모델: 로짓 → 소프트맥스
단계.
- 앞 토큰들을 모델(RNN · 트랜스포머)에 넣습니다.
- 모델은 어휘의 토큰마다 점수 하나, 즉 로짓(logit) 를 냅니다.
- 소프트맥스(softmax)로 점수를 확률로 바꿉니다.
| 기호 | 뜻 |
|---|---|
| 토큰 의 로짓(정규화 전 점수) | |
| 어휘 크기 | |
| 온도(temperature). 학습 때는 1, 생성할 때 조절 | |
| 이전의 모든 토큰 |
숫자로 해 보기(해설용). "아침에는 ___" 다음 후보 4개의 로짓이 커피 2.0, 차 1.0, 물 0.1, 돌 −1.0 이라 합시다.
| 온도 | 커피 | 차 | 물 | 돌 |
|---|---|---|---|---|
| 1 | 0.638 | 0.235 | 0.095 | 0.032 |
| 0.5 (낮춤) | 0.862 | 0.117 | 0.019 | 0.002 |
| 2 (높임) | 0.451 | 0.274 | 0.174 | 0.101 |
온도를 낮추면 1등에 몰리고(더 확실 · 덜 다양), 높이면 평평해집니다(더 다양 · 엉뚱한 답 위험). 로짓을 로 나누는 것뿐인데, 지수 함수 때문에 차이가 커지거나 작아집니다.
4. 학습 손실과 퍼플렉서티
직관. 정답 토큰에 높은 확률을 줄수록 좋은 모델입니다. 정답 확률이 낮으면 크게 벌점을 주려고 를 씁니다.
| 기호 | 뜻 |
|---|---|
| 토큰당 평균 교차 엔트로피 손실(자연로그) | |
| 평가한 토큰 수 | |
| 퍼플렉서티(perplexity) — 낮을수록 좋음 |
D2L은 퍼플렉서티를 "다음 토큰을 고를 때 실제로 고민하는 선택지 수의 기하 평균의 역수" 같은 것으로 해석하고, 세 기준점을 줍니다. 정답에 항상 확률 1을 주면 PPL = 1(최선), 정답에 확률 0을 주면 무한대(최악), 어휘 전체에 균등하게 주면 PPL = 어휘 크기 — 쓸모 있는 모델은 이 기준보다 낮아야 합니다.
숫자로 해 보기(해설용). 문장 세 토큰의 정답 확률이 0.5, 0.25, 0.8 이었다고 합시다.
- , ,
- 평균 손실
모델이 평균적으로 "약 2개 남짓의 후보 사이에서 고민한 정도"라는 뜻입니다. 확인: 로 같습니다.
왜 이렇게 재나. 손실을 문장 길이로 나눠 평균을 내야 긴 문장과 짧은 문장을 공평하게 비교할 수 있습니다. 지수를 씌우면 '선택지 개수'라는 읽기 쉬운 단위가 됩니다. 단, 토크나이저가 다른 모델끼리는 토큰 단위가 달라 PPL을 바로 비교하면 안 됩니다.
5. 디코딩: 확률에서 글 뽑기
모델은 확률 분포만 줍니다. 실제 토큰을 고르는 규칙이 디코딩(decoding)입니다. 고른 토큰을 다시 입력 끝에 붙이고 반복하면 글이 길어집니다(자기 회귀 생성).
flowchart LR
A[프롬프트 토큰] --> B[모델]
B --> C[로짓]
C --> D[온도로 나누기]
D --> E[소프트맥스 확률]
E --> F{디코딩 규칙<br/>greedy · top-k · top-p}
F --> G[다음 토큰 1개]
G --> H{끝 토큰 또는<br/>최대 길이?}
H -- 아니오 --> A
H -- 예 --> I[완성된 글]숫자로 해 보기(해설용, 온도 1의 분포: 커피 0.638 · 차 0.235 · 물 0.095 · 돌 0.032).
- greedy(탐욕): 가장 큰 '커피'를 항상 고릅니다. 같은 입력엔 같은 답, 대신 반복 · 단조로움이 생기기 쉽습니다.
- top-k (k=2): 상위 2개(커피 · 차)만 남기고 다시 정규화합니다. , 차 . '돌'은 아예 뽑힐 수 없습니다.
- top-p (p=0.9, 뉴클리어스 샘플링): 큰 것부터 누적 확률이 0.9 이상이 될 때까지 남깁니다. 누적은 커피 0.638 → +차 0.873 → +물 0.968 이므로 세 개가 남습니다. 다시 정규화하면 커피 ≈ 0.659, 차 ≈ 0.243, 물 ≈ 0.098 입니다.
왜 top-p가 많이 쓰이나. top-k는 분포가 뾰족하든 평평하든 늘 k개를 남깁니다. top-p는 모델이 확신할 때는 후보를 적게, 헷갈릴 때는 많이 남겨 상황에 맞게 조절됩니다. 실무에서는 온도와 top-p를 함께 조절하는 경우가 많고, 정답이 하나인 작업(추출 · 분류 · 코드)은 온도를 낮게 두는 편이 안전합니다.
연습 문제
- 본문 말뭉치에서 와 (바이그램)는?
- 풀이: , → 1. 문장 확률 입니다.
- 어휘가 50,000개인 모델이 모든 토큰에 균등한 확률을 주면 PPL은?
- 풀이: 정답 확률이 항상 이라 , 입니다.
- 정답 확률이 모두 0.5인 문장의 PPL은?
- 풀이: , — 매번 "둘 중 하나"를 고민한 셈입니다.
- 로짓 (3, 1)인 두 토큰을 온도 1로 소프트맥스하면?
- 풀이: , 나머지 입니다.
스스로 점검
- 연쇄 법칙 분해는 근사인가요?
- 답: 아닙니다. 항상 성립하는 등식입니다. 근사가 들어가는 것은 n-gram처럼 앞 문맥을 잘라낼 때입니다.
- 온도를 0에 가깝게 낮추면 샘플링은 무엇과 같아지나요?
- 답: 가장 큰 로짓에 확률이 거의 다 몰려 greedy 디코딩과 같아집니다.
- 토크나이저가 다른 두 모델의 PPL을 바로 비교하면 안 되는 이유는?
- 답: PPL은 '토큰당' 값인데, 같은 글이라도 토큰 수와 단위가 달라지기 때문입니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 언어 모델(language model) | 글의 확률, 특히 다음 토큰 확률을 계산하는 모델 |
| 연쇄 법칙(chain rule) | 결합 확률을 조건부 확률의 곱으로 쪼개는 규칙 |
| 마르코프 가정 | 바로 앞 몇 개만 보면 충분하다고 보는 단순화 |
| n-gram | 앞 n−1개 토큰으로 다음을 예측하는 셈 기반 모델 |
| 평활(smoothing) | 셈이 0인 경우에도 작은 확률을 주는 보정 |
| 로짓(logit) | 소프트맥스 전의 점수 |
| 소프트맥스(softmax) | 점수들을 합이 1인 확률로 바꾸는 함수 |
| 교차 엔트로피(cross-entropy) | 정답 토큰 확률의 평균, 학습 손실 |
| 퍼플렉서티(perplexity) | 교차 엔트로피의 지수, 평균 고민 선택지 수 |
| 온도(temperature) | 분포를 뾰족하게 또는 평평하게 만드는 조절값 |
| top-k / top-p | 상위 k개 / 누적 확률 p까지만 남기고 뽑는 방법 |
더 깊이 보려면
- 생성적 사전학습으로 언어 이해 높이기 (GPT-1) — 다음 토큰 예측으로 트랜스포머를 사전학습
- 언어 모델은 퓨샷 학습자다 (GPT-3) — 같은 목표를 크게 키웠을 때 생기는 일
- 신경망 언어 모델의 스케일링 법칙 — 손실(교차 엔트로피)이 모델 · 데이터 크기에 따라 어떻게 줄어드는가
- D2L 9.3절(언어 모델) · 9.5절 이후(RNN으로 언어 모델 구현)
다음에 볼 것
- 디코딩 전략: 탐욕 · 빔 · 온도 · top-k · top-p — 오늘 배운 샘플링을 탐욕 · 빔 · top-k · top-p까지 넓혀 비교
- 순환 신경망(RNN)과 LSTM 직관 — 앞 문맥 전체를 '은닉 상태'로 요약해 다음 토큰을 예측하는 첫 신경망 구조
- 생성적 사전학습으로 언어 이해 높이기 (GPT-1) — 오늘의 목표 함수로 트랜스포머를 학습한 출발점
라이선스
본문은 KAITABASE 자체 해설입니다. 참고 자료 Dive into Deep Learning은 CC BY-SA 4.0으로 공개되어 있습니다. 말뭉치 · 로짓 · 확률 숫자는 모두 이 수업을 위해 만든 해설용 예입니다.
출처
- Dive into Deep Learning 9.3 Language Models: https://d2l.ai/chapter_recurrent-neural-networks/language-model.html
AI 원리부터 이해하기 · NLP·트랜스포머 모듈
NLP·트랜스포머 모듈 학습
이 글은 NLP·트랜스포머 모듈의 학습 자료입니다. 전체 23개 자료 중 4번째입니다.
출처·원문
원문 보기요약만