본문 바로가기
Natural Language Processing

NLP metrics 정리 (BLEU vs sacreBLEU vs spBLEU 란)

by 지구킹 2023. 5. 10.
728x90

BLEU

설명

  • 기계 번역 성능을 평가하기 위한 지표 중 하나이다. 기계 번역 결과와 인간이 작성한 기계 번역에 대한 기준 번역을 비교하여 점수를 산출한다. (실제론 기계번역 뿐만 아니라 Style Transfer 등 다양한 자연어처리 task에서 사용된다.)

수식

예시

예측된 sentence빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다.

true sentence빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다.

  • 먼저 문장길이에 대한 과적합 보정을 하기 위해 보정계수를 구해야 한다.

  • 이후. n-gram(1~4)을 통한 순서쌍들이 얼마나 겹치는지 측정(precision)하면 된다.
    • n-gram: 문장에서 단어를 n개의 단어 뭉치로 끊어서 다음에 나올 단어를 예측하는 원리로, 단어 갯수에 기반한 통계적 접근 방법이다.

  • 최종적으로 위 두 식을 곱해 아래와 같이 BLEU를 구하면 된다.

해석 가이드

Google Cloud에서 제공한 가이드에 따르면 각 스코어에 따라 아래와 같이 해석할 수 있다.

 

패키지: sacreBLEU

  • 기존에 BLEU 구현체로 많은 사람들이 NLTK Package에 있는 BLEU 사용했지만, NLTK에 포함된 Mertic은 Origin BLEU Paper와 비교했을 때 Tokenization등 구현 부분에 다소 차이가 있었다. 따라서 BLEU Metric은 Tokenization을 어떻게 하느냐에 따라서 크게 달라지기 때문에 현재 Machine Translation에서는 NLTK의 BLEU를 사용하지 않는다.
  • 따라서 현재 거의 모든 Language Generation Paper에서 sacreBLEU라는 구현체를 이용해 BLEU Score를 측정한다. sacreBLEU는 원본 BLEU Paper를 그대로 구현하였다.

huggingface를 활용한 사용 방법

아래의 홈페이지 참고

https://huggingface.co/spaces/evaluate-metric/sacrebleu

 

spBLEU

설명

  • 서브워드 유형의 기계번역 결과에 대한 BLEU 점수를 계산하는 방식이다.
  • 따라서 단어를 더 작은 조각으로 분할하여 토큰을 생성힌다.
  • 예를들어, SentencePiece를 사용하여 서브워드 분할을 생성할 경우 "나는 사과를 좋아합니다” 는 "▁나는", "▁사과", "를", "▁좋아", "합니다”와 같이 분할될 것 이다.
  • 각각 분할된 결과를 기반으로 BLEU 수식과 동일하게, 각 서브워드에 대한 정밀도를 계산하면 값을 구할 수 있다.

 

출처

728x90

댓글