언어 모델 평가 지표 PPL 알아보기

언어 모델 평가 지표 PPL 알아보기
Photo by Rex / Unsplash

이번 시간에는 언어 모델을 평가할 때 사용하는 지표인 PPL(Perplexity) 에 대해서 알아봅니다.

PPL의 의미

A와 B 두가지 언어 모델이 있다고 가정해봅시다. 두가지 중 어떤 언어 모델의 성능이 더 좋다고 말할 수 있을까요?
모델 간 성능 비교를 위해서는 평가 지표라는 것이 필요합니다. 언어 모델(Language Model)을 평가할 때 사용하는 지표 중 하나가 바로 PPL 입니다. PPL은 테스트 문장을 이용하여 빠르고 간단하게 모델을 평가할 수 있다는 것이 특징입니다.

PPL(Perplexity)는 perplexed라는 영어 단어에서 의미를 따왔습니다. perplexed는 한국어로 헷갈리는 이라는 의미를 가지고 있습니다. PPL이란 언어 모델이 문장을 생성할 때 헷갈리는 정도를 의미합니다.
PPL이 낮다는 것은 그만큼 언어 모델이 문장을 생성할 때 덜 헷갈린다는 뜻입니다. 즉, PPL이 낮을수록 대체로 성능이 좋은 언어모델을 뜻합니다.
하지만 여기서 주의할 점은 PPL이 낮다고 무조건 좋은 언어 모델은 아니라는 것입니다. PPL이 낮은 모델에서 생성한 문장이라도 사람 입장에서는 어색한 문장일수 있습니다. 따라서 PPL을 측정할 때는 많은 양의 그리고 도메인에 알맞는 테스트 문장들을 이용했는지 확인해야합니다.

PPL 어떻게 구할까요?

PPL은 아래와 같은 수식으로 구할 수 있습니다.

위 식에서 P(w1​,w2​,w3​,...,wN​) 은 언어 모델에서 주어진 문장이 나타날 확률을 의미합니다. 확률값들의 기하 평균을 구하고, 역수를 취한 것이 바로 PPL입니다. 이때 N은 문장의 길이를 의미합니다. 만약 언어 모델이 주어진 문장을 생성할 확률이 높다면 PPL이 낮아지게 됩니다. 여기서 PPL을 측정할 때는 미리 준비한 테스트 문장들을 사용합니다.

Q. 확률값들의 기하평균을 취해주는 이유는 무엇인가요?
A. 문장을 생성할 확률인 P(w1​,w2​,w3​,...,wN​) 은 문장이 길어질수록 매우 작은 확률값을 가지게 됩니다. 왜냐하면 조건부확률의 연쇄법칙에 의해 1보다 작은 확률값들을 계속 곱해주기 때문입니다. 이를 방지하기 위해 곱의 평균을 의미하는 기하 평균을 취해주게 되는 것입니다.

위 식을 n-gram 에 대해서도 적용할 수 있습니다.
연쇄 법칙 을 이용하면 아래와 같이 나타낼 수 있습니다.

여기에 n-gram을 적용하면 아래와 같습니다.

PPL과 분기(Branch)

PPL은 모델이 단어를 선택할 때 가지는 분기(branch)의 개수를 의미하기도 합니다.

한가지 예제를 들어보겠습니다. 1부터 6가지의 숫자가 쓰인 주사위가 있습니다. 이 주사위를 N번 던졌을 때 얻는 수열에 대한 PPL은 아래와 같이 6이 나오게 됩니다.

이는 매 time-step마다 6가지의 분기가 있음이라고 해석할 수 있습니다.

마찬가지로 어떤 언어 모델의 PPL이 10이라면 해당 언어 모델은 다음 단어를 선택할 때 평균 10개의 단어 후보 중에서 선택한다고 볼 수 있습니다. 즉, PPL이 높을수록 단어 선택의 후보군이 많다는 의미로, 모델이 단어 선택을 헷갈리고 있다는 뜻입니다.

PPL과 엔트로피

PPL을 엔트로피 개념에 접목시키면 아래와 같은 수식을 얻을 수 있습니다.

CrossEntropy의 확률값에 지수 함수를 취해주면 간단하게 PPL을 구할 수 있습니다. 이러한 성질덕분에 모델 학습시 PPL을 유용하게 사용할 수 있습니다.

자세한 유도 과정은 링크를 참고해주시기 바랍니다.

Reference

Read more

[논문 리뷰] Search-R1: Training LLMs to Reason and Leverage Search Engines with Reinforcement Learning

[논문 리뷰] Search-R1: Training LLMs to Reason and Leverage Search Engines with Reinforcement Learning

들어가며 이번 시간에는 LLM이 검색 엔진과 상호작용하며 추론(Reasoning)을 수행할 수 있는 강화 학습 프레임워크 Search-R1을 소개합니다. 최근 OpenAI의 Deep Research나 여러 최신 연구에서 알 수 있듯, LLM의 추론 능력뿐 아니라 실시간 검색과 결합된 Reasoning이 큰 주목을 받고 있습니다. 하지만 기존의 RAG(Retrieval-Augmented Generation)이나 Tool-Use 방식은 * 복잡한 다단계

By Yongwoo Song
Python은 인터프리터 언어인가?

Python은 인터프리터 언어인가?

파이썬은 흔히 '인터프리터 언어'라고 불린다. 🤔: "파이썬은 코드를 한 줄씩 읽고 실행하는 인터프리터 언어이다." C++이나 Go 같은 언어는 소스 코드를 기계어로 번역하는 컴파일 과정을 거치지만, 파이썬은 코드를 한 줄씩 읽어 실행된다는 설명이다. 하지만 과연 Python을 단순히 "인터프리터 언어"라고 정의할 수 있을까? 이

By Yongwoo Song
[독서] 게으른 완벽주의자를 위한 심리학

[독서] 게으른 완벽주의자를 위한 심리학

✒️일을 시작할 수 있는 비결은 그것이 쉽지 않을 것임을 인정하는 것이다. 운이 좋게도 침실을 만드는 일 외에 아무런 할 일도 없는 날은 오지 않는다. 솔직하게 인정하자. 그리고 어려운 일을 할 때 떠오르는 생각과 감정을 통제할 수 있는 전략을 짜자. 시작을 어려워하는 이유는 힘든 감정과 생각에 대응할 전략을 구상하는 대신 이를

By Yongwoo Song