퍼플렉시티 (Perplexity)

컴퓨터과학·AI
한 줄 정의: 언어모델이 다음에 올 단어를 얼마나 헷갈려하는지를 숫자로 나타낸 지표로, 값이 낮을수록 모델이 문장을 더 자신 있게 예측한다는 뜻입니다.

쉽게 풀면

"나는 오늘 아침에 ___를 먹었다"라는 문장에서 빈칸에 들어갈 단어를 맞혀야 한다고 해봅시다. 후보가 "밥", "빵" 등 몇 개로 좁혀진다면 쉽게 맞힐 수 있지만, 후보가 수천 개나 된다면 훨씬 헷갈릴 것입니다. 퍼플렉시티는 바로 이 "헷갈리는 정도"를 숫자로 표현한 것으로, 언어모델이 실제 정답 단어에 얼마나 낮은 확률을 부여했는지를 바탕으로 계산합니다. 쉽게 말해 "평균적으로 몇 개의 후보 단어 중에서 고민하고 있는가"를 뜻하며, 퍼플렉시티가 10이면 대략 10개 후보 중 하나를 고르는 정도의 어려움을 겪는다고 이해하면 됩니다. 값이 작을수록 모델이 다음 단어를 잘 예측한다는 뜻이므로, 성능이 좋은 언어모델일수록 퍼플렉시티는 낮아집니다.

왜 중요한가

퍼플렉시티는 별도의 사람 평가 없이도 모델의 예측 품질을 하나의 숫자로 요약할 수 있어, 언어모델 학습 과정에서 성능을 빠르게 비교하고 추적하는 지표로 널리 쓰입니다. 새로운 모델 구조나 학습 방법을 제안하는 논문에서는 기존 베이스라인 대비 퍼플렉시티가 얼마나 개선되었는지를 핵심 실험 결과로 제시하는 경우가 많으며, 데이터셋이나 학습 설정을 바꿔가며 모델이 언어의 통계적 패턴을 얼마나 잘 학습했는지 확인하는 용도로도 활용됩니다. 계산이 비교적 간단하면서도 모델 간 상대적 비교에 유용하기 때문에 자연어처리 논문 전반에서 기본적인 평가 지표로 자리 잡고 있습니다.

논문에서는 이렇게 쓰입니다

"제안한 언어모델은 검증 데이터셋에서 기존 베이스라인보다 낮은 퍼플렉시티(18.3 vs 24.7)를 기록하여 더 나은 예측 성능을 보였다."

이 문장은 새로 학습시킨 모델이 다음 단어를 예측할 때 기존 모델보다 덜 헷갈려했다는 뜻이며, 이는 언어모델의 학습 품질을 비교하는 대표적인 정량 지표로 사용됩니다.

"학습 데이터의 도메인을 확장한 이후 학습 곡선 전반에 걸쳐 퍼플렉시티가 꾸준히 감소하는 경향을 보였으며, 이는 모델이 다양한 문체에 점차 적응해가고 있음을 시사한다."

모델 학습 과정을 분석하는 연구에서는 학습이 진행됨에 따라 퍼플렉시티가 어떻게 변화하는지를 관찰해, 모델이 데이터를 얼마나 안정적으로 학습해가는지를 판단하는 근거로 삼습니다.

"저자원 언어에 대한 퍼플렉시티가 고자원 언어에 비해 뚜렷하게 높게 나타나, 학습 데이터 불균형이 모델 성능 격차의 주요 원인 중 하나로 확인되었다."

다국어 모델 연구에서는 언어별 퍼플렉시티를 비교해, 데이터가 부족한 언어에서 모델의 예측 성능이 상대적으로 떨어진다는 점을 정량적으로 보여주는 데 이 지표를 사용합니다.

조금 더 깊게 보면

퍼플렉시티는 수학적으로 교차엔트로피 손실을 지수함수에 넣은 값(2의 교차엔트로피 승, 또는 자연로그 기반이면 e의 교차엔트로피 승)으로 정의되어, 손실 함수와 직접 연결되어 있습니다. 이 때문에 학습 중 모니터링하는 손실값을 그대로 지수변환해 보고하는 경우도 흔합니다. 다만 토큰화 단위(단어 단위인지 서브워드 단위인지)나 어휘 사전의 크기가 다르면 같은 텍스트에 대해서도 계산되는 퍼플렉시티 값이 달라질 수 있어, 서로 다른 논문에서 보고된 퍼플렉시티 수치를 직접 비교할 때는 이런 조건이 동일한지 확인하는 것이 일반적으로 권장됩니다.

주의할 점

퍼플렉시티가 낮다고 해서 모델이 생성하는 문장이 항상 사람이 보기에 자연스럽거나 유용하다는 뜻은 아닙니다. 이는 어디까지나 학습 데이터의 통계적 분포를 얼마나 잘 예측하는지를 보는 지표이며, 환각현상 같은 사실 오류나 실제 사용성은 별도의 평가로 확인해야 합니다. 또한 토큰화 방식이나 어휘 사전 크기가 다르면 퍼플렉시티 값을 서로 다른 모델 간에 단순 비교하기 어렵다는 점도 유의해야 합니다.

관련 용어