AI

BLEU (Bilingual Evaluation Understudy) Score - LLM Evaluation

pullwall 2024. 12. 5. 13:53
728x90

LLM이 생성한 (예측한) 결과를 평가하기 위해 PPL (Perplexity) 도 쓰이지만, 그보다 BLEU Score를 더 많이 사용한다. 

 

PPL은 쉽게 말해 모델이 정답을 예측할 때 헷갈려하는 정도이다. 따라서 작으면 작을수록 좋다.

 

5개의 선택지 중 고민하는 것 보다, 2개의 선택지 중 고민하는게 모델이 그만큼 똑똑하다는 것이니까.

 

하지만, 번역 작업을 예로 들면, 우리는 문장의 맥락을 고려해서 번역이 잘 되었는지를 평가하고 싶어 한다.

 

해당 평가에 BLEU Score를 사용한다.

 


 

BLEU란?

$BLEU = BP\cdot \prod_{n=1}^{N}p_{n}^{w_{n}}$

로 계산되는 Evaluation Score이다.

 

  • $p_{n}$ : n-gram precision
  • $w_{n}$ : weight, 합=1
  • $BP$ : Brevity (짧음) penalty

 

n-gram 이란 무엇인가?

 

정답 : "나는 정말로 훌륭한 학생 일까요"

예측 : "나는 정말 훌륭한 학생 입니다"

라는 문장을 예로 들어 보자.

 

1-gram : 나는 / 정말 / 훌륭한 / 학생 / 입니다

2-gram : 나는 정말 / 정말 훌륭한 / 훌륭한 학생 / 학생 입니다

3-gram : 나는 정말 훌륭한 / 정말 훌륭한 학생 / 훌륭한 학생 입니다

4-gram : 나는 정말 훌륭한 학생 / 정말 훌륭한 학생 입니다

 

이런 식으로 문장 안에서 n개의 연속된 단어 쌍을 의미한다.

 

n-gram precision은 아래와 같은 수식으로 나타낼 수 있다.

 

$\frac{정답 문장에 존재하는지 여부의 합계}{예측 문장의 n-gram 개수}$

 

위 문장에서 1-gram precision은 $\frac{3}{5}$ 이 된다.

 

하지만,

정답 : "훌륭한 나는 정말로 훌륭한 학생 일까요"

예측 : "훌륭한 나는 정말로 훌륭하게 훌륭한 학생 입니다"

 

위와 같은 경우 분명 이상한 문장인데, 점수가 높게 나올 수 있다.

 

 

Clipping

이를 예방하기 위해 Clipping이 필요하다. Clipping은 "훌륭한" 이라는 단어가 정답에 두번만 나오니, 1-gram precision을 할 때 해당 단어는 두번 까지만 count하여 점수를 보정한다.

 

 

BP

마지막으로 BP (Brevity penalty) 즉, 짧음 패널티를 곱해줘야 한다.

 

정답 : "훌륭한 나는 정말로 훌륭한 학생 입니다"

예측 : "학생 입니다"

 

위와 같은 경우 BP를 제외하고 계산하면 점수는 1이 나온다. 분명 예측은 잘못되었지만 말이다.

 

BP는 아래와 같이 계산한다.

 

 

  • r : 정답 문장 길이
  • c : 예측 문장 길이

 

여러 문장에 대해 BLEU Score를 계산할 때는 아래와 같이 계산하면 된다.

$p_{n}=\frac{\sum_{sentence}^{}정답 문장에 존재하는지 여부의 합계}{\sum_{sentence}^{}예측 문장의 n-gram 개수}$

728x90