LLM 학습 기초: cross-entropy와 perplexity
·4 min read·llm-research
왜 필요한가요
논문에서 모델 성능을 비교할 때 loss, cross-entropy, perplexity가 자주 등장합니다.
이 값을 읽을 수 있어야 학습 곡선과 실험 결과를 해석할 수 있습니다.
이 노트를 읽으면 아래 문장을 만났을 때 덜 막힙니다.
We minimize the cross-entropy loss and report perplexity on the validation set.
원본 개념과 수식
정답 토큰에 모델이 준 확률을 p(correct)라고 하겠습니다.
한 토큰에 대한 cross-entropy loss는 단순화하면 다음과 같습니다.
loss = -log p(correct)
여러 토큰에 대해서는 평균을 냅니다.
cross_entropy = average(-log p(correct_token))
perplexity는 cross-entropy를 다시 해석하기 쉽게 바꾼 값입니다.
perplexity = exp(cross_entropy)
1차 해설: 수식이 말하는 것
cross-entropy는 모델이 정답에 낮은 확률을 줄수록 큰 벌점을 줍니다.
- 정답 확률이 높으면
-log p가 작아집니다. - 정답 확률이 낮으면
-log p가 커집니다.
perplexity는 모델이 평균적으로 몇 개 후보 사이에서 헷갈리는지에 가까운 감각을 줍니다.
정확한 후보 개수라고 보면 안 되지만, 낮을수록 덜 헷갈린다고 읽으면 됩니다.
쉬운 예시
다음 단어를 맞히는 문제라고 하겠습니다.
나는 아침에 ___ 을 마셨습니다.
정답이 커피인데 모델이 이렇게 예측했다고 하겠습니다.
커피: 0.80
우유: 0.15
자동차: 0.05
정답 커피에 0.80을 줬으므로 loss는 작습니다.
반대로 이렇게 예측하면 loss가 커집니다.
커피: 0.05
우유: 0.15
자동차: 0.80
정답에 낮은 확률을 줬기 때문입니다.
논문에서 다시 만났을 때 읽는 법
논문에서 validation loss가 내려간다는 말은 이렇게 읽으면 됩니다.
모델이 정답 토큰에 점점 더 높은 확률을 주고 있다.
perplexity가 낮아졌다는 말은 이렇게 읽으면 됩니다.
다음 토큰을 고를 때 모델의 혼란이 줄었다.
다만 perplexity는 주로 language modeling에서 유용합니다.
분류, 질의응답, instruction following 성능을 perplexity 하나로 판단하면 부족합니다.
자주 하는 오해
- loss가 낮다고 항상 사용자 경험이 좋은 것은 아닙니다.
- perplexity가 낮다고 항상 지시를 잘 따르는 모델은 아닙니다.
- 학습 데이터에 과적합하면 validation/test 성능은 좋아지지 않을 수 있습니다.
최소 체크포인트
- cross-entropy는 정답에 낮은 확률을 준 정도를 벌점으로 만듭니다.
- perplexity는 cross-entropy를 "헷갈림 정도"처럼 바꾼 지표입니다.
- 둘 다 낮을수록 일반적으로 좋지만, 모든 능력을 대표하지는 않습니다.