본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

언어 모델의 다음 토큰 분포와 디코딩

~8 min · language-models, sampling, temperature

Level 0수학 초심자
0 XP0/59 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete

분포를 만드는 모델, 토큰을 고르는 디코더

언어 모델은 현재 문맥을 Transformer 같은 신경망으로 처리해서 어휘의 각 토큰에 logit을 내. softmax를 씌우면 다음 토큰의 조건부 확률분포. 디코더가 그중 하나를 골라 문맥에 붙여. 반복. 문장 탄생.

  1. 네 문맥을 신경망에 통과시켜 다음 토큰 logits 계산.
  2. 온도나 반복 페널티를 적용하고 top-k·top-p 같은 후보 제한 선택.
  3. greedy argmax, 표본추출, beam search 중 목적에 맞는 규칙으로 하나 고르기.
  4. 고른 토큰을 문맥에 붙이고 모델 다시 실행. 루프.

이 반복이 생성의 바깥 고리야. 끝. 하지만 추론, 도구 호출, 긴 문맥의 표현까지 전부 ‘표본추출 한 번’은 아님. 토큰 분포를 만드는 신경망 계산과 학습된 표현이 먼저 있고, 디코더는 마지막 선택을 맡아. 바깥 고리와 그 안의 거대한 계산, 둘 다 봐.

분포를 조절하는 손잡이

  • 온도 : logits를 로 나눠. 1보다 작으면 뾰족, 1보다 크면 평평. 0은 수식에 욱여넣지 말고 보통 greedy 선택으로 별도 처리.
  • top-k: 점수 높은 k개 후보만 남기고 다시 정규화.
  • top-p: 확률을 큰 순서로 더해 누적합이 p에 이르는 최소 후보 집합만 남기기.

이 손잡이들은 학습된 logits를 바꾸거나 후보를 잘라 출력의 다양성과 안정성을 조절해. 그렇다고 네가 만나는 ‘성격’ 전부가 온도 하나에서 나오진 않아. 시스템 지시, 문맥, 모델 학습, 도구 결과가 같이 답을 만들어. 온도한테 인격 전체 뒤집어씌우지 마.

모델은 분포를 만들고 디코더는 경로를 골라. 네가 두 층을 가르면 temperature와 top-p가 바꾸는 것, 못 바꾸는 것이 선명해져.

트랙을 닫으며

확률은 불확실성을 다루는 문법. 표본이 모집단을 대표하는 조건, 확률과 우도의 시선 차이, 베이즈 갱신, 다음 토큰 디코딩이 한 언어로 연결됐어. 이제 ‘확률적’이라는 말을 만나면 물어봐. 어떤 분포를 누가 만들고, 어떤 규칙으로 고르는데?

Code

온도가 토큰 분포를 바꾸는 방식·python
import numpy as np

# 5 토큰 vocab logits
logits = np.array([2.5, 1.0, 0.5, -0.5, -1.5])

def sample_with_temperature(logits, T):
    scaled = logits / T
    probs = np.exp(scaled - scaled.max())
    probs = probs / probs.sum()
    return np.random.choice(len(probs), p=probs)

np.random.seed(0)
for T in [0.1, 1.0, 2.0]:
    picks = [sample_with_temperature(logits, T) for _ in range(20)]
    print(f"T={T}: {picks}")
# 낮은 T: 거의 늘 0. 높은 T: vocab 가로질러 분산.

External links

Exercise

위 코드에서 온도 T=0.1, 1.0, 2.0으로 각각 1,000번 표본을 뽑아 히스토그램을 그려. 표본 빈도를 이론적 softmax 확률과 비교해.
Hint
낮은 온도에서는 최고 logit에 질량이 모이고 높은 온도에서는 분포가 평평해져. 유한 표본의 빈도는 이론적 확률과 정확히 같지 않다는 점도 표시해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.