[Daily morning study] LLM ํ‰๊ฐ€ ์ง€ํ‘œ (BLEU, ROUGE, BERTScore, Perplexity)

#daily morning study

Image


LLM์„ ์–ด๋–ป๊ฒŒ ํ‰๊ฐ€ํ• ๊นŒ?

LLM์ด ์ƒ์„ฑํ•œ ํ…์ŠคํŠธ๊ฐ€ โ€œ์ข‹์€์ง€โ€ ํŒ๋‹จํ•˜๋Š” ๊ฑด ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต๋‹ค. ์‚ฌ๋žŒ์ด ์ผ์ผ์ด ์ฝ์œผ๋ฉด ์ •ํ™•ํ•˜์ง€๋งŒ ๋น„์šฉ์ด ๋„ˆ๋ฌด ํฌ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋™ ํ‰๊ฐ€ ์ง€ํ‘œ๋“ค์ด ๋“ฑ์žฅํ–ˆ๋‹ค. ๊ฐ ์ง€ํ‘œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ธก๋ฉด์„ ์ธก์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜๋งŒ ์“ฐ๊ธฐ๋ณด๋‹ค ์ƒํ™ฉ์— ๋งž๊ฒŒ ์กฐํ•ฉํ•ด์„œ ์“ฐ๋Š” ๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค.


BLEU (Bilingual Evaluation Understudy)

์›๋ž˜ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ ํ’ˆ์งˆ ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด 2002๋…„์— ์ œ์•ˆ๋œ ์ง€ํ‘œ๋‹ค. ์ƒ์„ฑ๋œ ํ…์ŠคํŠธ(hypothesis)๊ฐ€ ์ฐธ์กฐ ํ…์ŠคํŠธ(reference)์™€ ์–ผ๋งˆ๋‚˜ ๊ฒน์น˜๋Š”์ง€๋ฅผ n-gram ์ •๋ฐ€๋„(precision)๋กœ ์ธก์ •ํ•œ๋‹ค.

๊ณ„์‚ฐ ๋ฐฉ์‹

n-gram precision์„ ์—ฌ๋Ÿฌ n์— ๋Œ€ํ•ด ๊ณ„์‚ฐํ•œ ๋’ค ๊ธฐํ•˜ ํ‰๊ท ์„ ๋‚ธ๋‹ค.

BLEU = BP ร— exp(ฮฃ wโ‚™ ร— log pโ‚™)
  • pโ‚™ : n-gram precision (์ƒ์„ฑ๋ฌธ์˜ n-gram ์ค‘ ์ฐธ์กฐ๋ฌธ์— ์กด์žฌํ•˜๋Š” ๋น„์œจ)
  • wโ‚™ : ๊ฐ n์˜ ๊ฐ€์ค‘์น˜ (๋ณดํ†ต ๊ท ๋“ฑํ•˜๊ฒŒ 1/N)
  • BP : Brevity Penalty โ€” ์ƒ์„ฑ ํ…์ŠคํŠธ๊ฐ€ ์ฐธ์กฐ๋ณด๋‹ค ๋„ˆ๋ฌด ์งง์„ ๋•Œ ํŒจ๋„ํ‹ฐ๋ฅผ ์คŒ
n์˜๋ฏธ
1-gram๋‹จ์–ด ๋‹จ์œ„ ์ผ์น˜
2-gram๋‘ ๋‹จ์–ด ์—ฐ์† ์ผ์น˜
3-gram์„ธ ๋‹จ์–ด ์—ฐ์† ์ผ์น˜
4-gram๋„ค ๋‹จ์–ด ์—ฐ์† ์ผ์น˜

BLEU-4๋Š” 1~4-gram์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค.

์˜ˆ์‹œ

Reference: "The cat sat on the mat"
Hypothesis: "The cat on the mat"

1-gram precision: 5/6 โ‰ˆ 0.83  (5๊ฐœ ๋‹จ์–ด ์ผ์น˜)
2-gram precision: 3/5 = 0.60  ("the cat", "on the", "the mat" ์ผ์น˜)

BLEU์˜ ํ•œ๊ณ„

  • ์˜๋ฏธ๊ฐ€ ๊ฐ™์•„๋„ ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ ์“ฐ๋ฉด ๋‚ฎ๊ฒŒ ์ธก์ •๋จ (โ€œbigโ€ vs โ€œlargeโ€)
  • ์–ด์ˆœ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ
  • recall์„ ์ธก์ •ํ•˜์ง€ ์•Š์Œ (์ค‘์š”ํ•œ ๋‚ด์šฉ์„ ๋น ๋œจ๋ ค๋„ ํŒจ๋„ํ‹ฐ ์—†์Œ)

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

๋ฌธ์„œ ์š”์•ฝ ํ‰๊ฐ€์—์„œ ์ฃผ๋กœ ์“ฐ๋Š” ์ง€ํ‘œ๋‹ค. BLEU๊ฐ€ precision ์ค‘์‹ฌ์ธ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ROUGE๋Š” recall ์ค‘์‹ฌ์ด๋‹ค.

ROUGE-N

n-gram recall์„ ์ธก์ •ํ•œ๋‹ค.

ROUGE-N = (์ฐธ์กฐ๋ฌธ์˜ n-gram ์ค‘ ์ƒ์„ฑ๋ฌธ์— ๋‚˜ํƒ€๋‚œ ์ˆ˜) / (์ฐธ์กฐ๋ฌธ์˜ ์ „์ฒด n-gram ์ˆ˜)

ROUGE-L

์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด(LCS, Longest Common Subsequence)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ์—ฐ์†๋˜์ง€ ์•Š์•„๋„ ์ˆœ์„œ๋งŒ ๋งž์œผ๋ฉด ์ผ์น˜๋กœ ๋ณธ๋‹ค.

Reference: "The cat sat on the mat"
Hypothesis: "The cat was on a mat"

LCS: "The cat on mat" (๊ธธ์ด 4)
ROUGE-L recall = 4/6 โ‰ˆ 0.67
ROUGE-L precision = 4/7 โ‰ˆ 0.57
F1 = 2 ร— (0.67 ร— 0.57) / (0.67 + 0.57) โ‰ˆ 0.62

ROUGE ์ข…๋ฅ˜ ์š”์•ฝ

์ง€ํ‘œ๊ธฐ๋ฐ˜์ฃผ์š” ์‚ฌ์šฉ์ฒ˜
ROUGE-1๋‹จ์–ด(1-gram)๋‹จ์–ด ์ˆ˜์ค€ ๊ฒน์นจ
ROUGE-22-gram๊ตฌ๋ฌธ ์ˆ˜์ค€ ๊ฒน์นจ
ROUGE-LLCS๋ฌธ์žฅ ๊ตฌ์กฐ ๋ฐ˜์˜

์š”์•ฝ ํ’ˆ์งˆ ํ‰๊ฐ€์—์„œ๋Š” ๋ณดํ†ต ROUGE-1, ROUGE-2, ROUGE-L์„ ํ•จ๊ป˜ ๋ณด๊ณ ํ•œ๋‹ค.


BERTScore

2019๋…„์— ์ œ์•ˆ๋œ ์ง€ํ‘œ๋กœ, BLEU/ROUGE์™€ ๋‹ฌ๋ฆฌ ์˜๋ฏธ์  ์œ ์‚ฌ๋„๋ฅผ ์ธก์ •ํ•œ๋‹ค. BERT ๊ฐ™์€ ์‚ฌ์ „ ํ•™์Šต ์–ธ์–ด ๋ชจ๋ธ์˜ ๋ฌธ๋งฅ ์ž„๋ฒ ๋”ฉ์„ ํ™œ์šฉํ•ด์„œ ๋‹จ์–ด ๊ฐ„ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๊ณ„์‚ฐ ๋ฐฉ์‹

Precision: ๊ฐ ์ƒ์„ฑ ํ† ํฐ์— ๋Œ€ํ•ด ์ฐธ์กฐ ํ† ํฐ ์ค‘ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ๊ฒƒ์˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ํ‰๊ท 
Recall:    ๊ฐ ์ฐธ์กฐ ํ† ํฐ์— ๋Œ€ํ•ด ์ƒ์„ฑ ํ† ํฐ ์ค‘ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ๊ฒƒ์˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ํ‰๊ท 
F1:        Precision๊ณผ Recall์˜ ์กฐํ™” ํ‰๊ท 

์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด:

P_BERT = (1/|ลท|) ฮฃ_{ลทแตข โˆˆ ลท} max_{yโฑผ โˆˆ y} cos(ลทแตข, yโฑผ)
R_BERT = (1/|y|) ฮฃ_{yโฑผ โˆˆ y} max_{ลทแตข โˆˆ ลท} cos(ลทแตข, yโฑผ)
F_BERT = 2 ร— P_BERT ร— R_BERT / (P_BERT + R_BERT)

BLEU/ROUGE์™€์˜ ์ฐจ์ด

Reference: "The vehicle moved rapidly"
Hypothesis: "The car drove fast"

BLEU: ๊ฑฐ์˜ 0  (๊ฒน์น˜๋Š” n-gram ์—†์Œ)
BERTScore: ๋†’์Œ  ("vehicle"โ‰ˆ"car", "moved rapidly"โ‰ˆ"drove fast" ์˜๋ฏธ ์œ ์‚ฌ)

์žฅ๋‹จ์ 

์žฅ์ 

  • ๋™์˜์–ด, ํŒจ๋Ÿฌํ”„๋ ˆ์ด์ง•์— ๊ฐ•ํ•จ
  • ์‚ฌ๋žŒ์˜ ํ‰๊ฐ€์™€ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ BLEU๋ณด๋‹ค ๋†’์Œ

๋‹จ์ 

  • BERT ์ถ”๋ก  ๋น„์šฉ์ด ๋ฐœ์ƒ
  • ์ ์ˆ˜ ํ•ด์„์ด ์ง๊ด€์ ์ด์ง€ ์•Š์Œ (0~1 ๋ฒ”์œ„์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” 0.8 ์ด์ƒ์— ๋ชฐ๋ฆผ)
  • ์‚ฌ์šฉ ๋ชจ๋ธ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง

Perplexity (PPL)

์–ธ์–ด ๋ชจ๋ธ ์ž์ฒด์˜ ๋ถˆํ™•์‹ค์„ฑ์„ ์ธก์ •ํ•˜๋Š” ์ง€ํ‘œ๋‹ค. ๋ชจ๋ธ์ด ์ฃผ์–ด์ง„ ํ…์ŠคํŠธ๋ฅผ ์–ผ๋งˆ๋‚˜ โ€œ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์›Œํ•˜๋Š”์ง€โ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ˆ˜์‹

PPL(W) = exp( -(1/N) ฮฃ log P(wแตข | wโ‚, ..., wแตขโ‚‹โ‚) )
  • N : ํ† ํฐ ์ˆ˜
  • log P : ๊ฐ ํ† ํฐ์˜ ๋กœ๊ทธ ํ™•๋ฅ 

์ง๊ด€์ ์œผ๋กœ PPL์€ ํ‰๊ท ์ ์œผ๋กœ ๋‹ค์Œ ํ† ํฐ์„ ๋ช‡ ๊ฐœ ์ค‘์—์„œ ๊ณ ๋ฅด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ถˆํ™•์‹ค์„ฑ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

PPLํ•ด์„
๋‚ฎ์Œ๋ชจ๋ธ์ด ํ…์ŠคํŠธ๋ฅผ ์ž˜ ์˜ˆ์ธกํ•จ (ํ›ˆ๋ จ ๋„๋ฉ”์ธ๊ณผ ์œ ์‚ฌ)
๋†’์Œ๋ชจ๋ธ์ด ํ…์ŠคํŠธ๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์›Œํ•จ (๋‚ฏ์„  ๋„๋ฉ”์ธ)

์‚ฌ์šฉ ์˜ˆ์‹œ

from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch

model = GPT2LMHeadModel.from_pretrained("gpt2")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")

text = "The quick brown fox jumps over the lazy dog"
inputs = tokenizer(text, return_tensors="pt")

with torch.no_grad():
    outputs = model(**inputs, labels=inputs["input_ids"])
    loss = outputs.loss
    ppl = torch.exp(loss)

print(f"Perplexity: {ppl.item():.2f}")

ํ•œ๊ณ„

  • ์ƒ์„ฑ ํ’ˆ์งˆ์ด ์•„๋‹Œ ์–ธ์–ด ๋ชจ๋ธ์˜ ํ™•๋ฅ  ์ถ”์ • ๋Šฅ๋ ฅ์„ ์ธก์ •
  • ๋‚ฎ์€ PPL์ด ํ•ญ์ƒ ์ข‹์€ ์ƒ์„ฑ ํ’ˆ์งˆ์„ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š์Œ (๋ฐ˜๋ณต๋œ ํ…์ŠคํŠธ๋„ PPL์ด ๋‚ฎ์„ ์ˆ˜ ์žˆ์Œ)
  • ๋ชจ๋ธ ๋น„๊ต ์‹œ ๊ฐ™์€ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ์จ์•ผ ์˜๋ฏธ ์žˆ์Œ

์ตœ์‹  LLM ํ‰๊ฐ€ ๋ฐฉ๋ฒ•

์ž๋™ ์ง€ํ‘œ์˜ ํ•œ๊ณ„๋กœ ์ธํ•ด ์ตœ๊ทผ์—๋Š” ๋‹ค์–‘ํ•œ ํ‰๊ฐ€ ๋ฐฉ์‹์ด ํ•จ๊ป˜ ์“ฐ์ธ๋‹ค.

LLM-as-Judge

GPT-4 ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ LLM์„ ์‹ฌ์‚ฌ์œ„์›์œผ๋กœ ํ™œ์šฉํ•ด์„œ ์ƒ์„ฑ ๊ฒฐ๊ณผ๋ฅผ ์ ์ˆ˜ํ™”ํ•œ๋‹ค.

ํ”„๋กฌํ”„ํŠธ: "๋‹ค์Œ ๋‹ต๋ณ€์„ ์ •ํ™•์„ฑ, ์œ ์ฐฝ์„ฑ, ์œ ์šฉ์„ฑ ๊ธฐ์ค€์œผ๋กœ 1~10์ ์œผ๋กœ ํ‰๊ฐ€ํ•ด:"
         "[์ƒ์„ฑ๋œ ํ…์ŠคํŠธ]"

MT-Bench, AlpacaEval ๋“ฑ์˜ ๋ฒค์น˜๋งˆํฌ๊ฐ€ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

Benchmark Suite

ํŠน์ • ํƒœ์Šคํฌ์—์„œ์˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•˜๋Š” ๋ฒค์น˜๋งˆํฌ ๋ชจ์Œ:

๋ฒค์น˜๋งˆํฌ์ธก์ • ํ•ญ๋ชฉ
MMLU57๊ฐœ ๋ถ„์•ผ ์ง€์‹ (๋‹ค์ง€์„ ๋‹ค)
HellaSwag์ƒ์‹ ์ถ”๋ก 
HumanEval์ฝ”๋“œ ์ƒ์„ฑ
TruthfulQA์‚ฌ์‹ค ์ •ํ™•์„ฑ
GSM8K์ˆ˜ํ•™ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ง€ํ‘œ ์„ ํƒ ๊ฐ€์ด๋“œ

๋ฒˆ์—ญ ํ’ˆ์งˆ ํ‰๊ฐ€       โ†’ BLEU
๋ฌธ์„œ ์š”์•ฝ ํ‰๊ฐ€       โ†’ ROUGE-1, ROUGE-2, ROUGE-L
์˜๋ฏธ ๋ณด์กด ํ‰๊ฐ€       โ†’ BERTScore
์–ธ์–ด ๋ชจ๋ธ ์ž์ฒด ํ‰๊ฐ€  โ†’ Perplexity
์˜คํ”ˆ์—”๋””๋“œ ์ƒ์„ฑ ํ‰๊ฐ€ โ†’ LLM-as-Judge, ์ธ๊ฐ„ ํ‰๊ฐ€

์ •๋ฆฌ

์ง€ํ‘œ์ธก์ • ๋Œ€์ƒ๊ธฐ๋ฐ˜์ฃผ์š” ์‚ฌ์šฉ์ฒ˜
BLEUn-gram ์ •๋ฐ€๋„ํ‘œ๋ฉด ํ˜•ํƒœ๊ธฐ๊ณ„ ๋ฒˆ์—ญ
ROUGEn-gram/LCS ์žฌํ˜„์œจํ‘œ๋ฉด ํ˜•ํƒœ์š”์•ฝ
BERTScore์˜๋ฏธ์  ์œ ์‚ฌ๋„์–ธ์–ด ๋ชจ๋ธ ์ž„๋ฒ ๋”ฉ๋ฒˆ์—ญ, ์ƒ์„ฑ
Perplexity๋‹ค์Œ ํ† ํฐ ์˜ˆ์ธก ๋ถˆํ™•์‹ค์„ฑ์–ธ์–ด ๋ชจ๋ธ ํ™•๋ฅ ์–ธ์–ด ๋ชจ๋ธ ๋น„๊ต

๊ฐ ์ง€ํ‘œ๋Š” ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ํ‰๊ฐ€์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ง€ํ‘œ๋ฅผ ํ•จ๊ป˜ ์“ฐ๊ณ , ๊ฐ€๋Šฅํ•˜๋ฉด ์ธ๊ฐ„ ํ‰๊ฐ€๋„ ๋ณ‘ํ–‰ํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค.