C.W.K.
Stream
Lesson 04 of 12 · published

Loss 함수 — cross-entropy

~8 min · loss, cross-entropy

Level 0Token
0 XP0/94 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

next-token prediction의 학습 loss는 모델의 예측된 다음 토큰 분포와 실제 다음 토큰(one-hot 벡터) 사이의 cross-entropy야.

L = − Σ_t log P(token_t | tokens_{<t})

각 위치에 대해 모델이 vocab 전체에 대한 logit 출력; softmax가 확률로 변환; cross-entropy는 모델이 정답 토큰에 할당한 음의 log 확률 보고. 위치 가로질러 합, batch 가로질러 평균 — 그게 loss.

Perplexity는 cross-entropy의 지수화 — perplexity = exp(loss). 손에 잡히는 해석 가능 — "모델이 각 위치에서 선택하는 유효 옵션 수." perplexity 100은 모델이 100개 동등 확률 옵션 중 하나 골라야 하는 만큼 불확실하다는 뜻. 모던 프론티어 LLM은 자연 영어 텍스트에서 perplexity 5-15 달성.

Code

Cross-entropy and perplexity·python
import torch
import torch.nn.functional as F

def perplexity(model, ids):
    with torch.no_grad():
        logits = model(ids)[:, :-1, :]
        target = ids[:, 1:]
        loss = F.cross_entropy(
            logits.reshape(-1, logits.size(-1)),
            target.reshape(-1),
            reduction='mean'
        )
    return torch.exp(loss).item()

# Lower is better. ~10-15 on clean English for a frontier model.
# > 100 means the model is essentially random at this content.

External links

Exercise

작은 open 모델의 perplexity를 세 텍스트 종류에서 측정 — 깨끗한 영어 위키피디아, 코드 corpus, 한국어 텍스트. 결과 정렬. 숫자가 모델의 학습 분포를 드러내야 해. 어느 slice를 가장 잘 이해하나? 가장 못?

Progress

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

댓글 0

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

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