자연어 처리(NLP) 및 대규모 언어 모델(LLM)의 성능을 평가할 때, 자동화된 평가 지표는 효율성과 일관성을 제공합니다. 그 중 하나가 ROUGE (Recall-Oriented Understudy for Gisting Evaluation) 입니다. ROUGE는 요약(Summarization) 성능 평가를 위해 고안되었지만, 최근에는 번역, 생성, 질의응답 등 다양한 LLM 태스크에 활용되고 있습니다.
ROUGE란 무엇인가?
ROUGE는 생성된 텍스트와 정답(참조) 텍스트 간의 중복 단어 또는 구의 비율을 측정하는 지표입니다. 주로 recall 기반으로 측정되지만, precision과 F1-score도 함께 사용됩니다. 이는 모델이 얼마나 많은 정답 내용을 잘 포함했는지를 측정하는 데 효과적입니다.
ROUGE의 주요 종류
ROUGE는 여러 변형이 있으며, 각각 비교 방식에 따라 측정 항목이 다릅니다.
| ROUGE-N | n-gram(예: unigram, bigram 등)의 겹치는 개수를 기반으로 평가 |
| ROUGE-L | 가장 긴 공통 부분 수열(Longest Common Subsequence, LCS)을 기반으로 평가 |
| ROUGE-W | LCS를 가중치 기반으로 평가 |
| ROUGE-S | skip-bigram (순서 보존된 단어 쌍) 기반 평가 |
가장 자주 사용되는 것은 ROUGE-1, ROUGE-2, ROUGE-L입니다.
ROUGE-N
ROUGE-N은 n-gram이 얼마나 겹치는지를 측정합니다. 예를 들어 ROUGE-1은 단어 단위, ROUGE-2는 2개의 연속된 단어 단위입니다.
Precision = (겹치는 n-gram 수) / (생성된 n-gram 수)
Recall = (겹치는 n-gram 수) / (참조 n-gram 수)
F1 = 2 * (Precision * Recall) / (Precision + Recall)
ROUGE-L
문장 간의 가장 긴 공통 부분 수열(LCS) 를 측정합니다. 문장 구조를 보존하면서 얼마나 유사한지 평가할 수 있습니다.
왜 ROUGE가 중요한가?
ROUGE는 다음과 같은 이유로 널리 사용됩니다.
- 자동 평가 가능: 인간 평가 없이 대규모 텍스트 평가 가능
- 직관적 해석: 높은 ROUGE 점수는 참조 요약과 유사하다는 의미
- 일관성: 동일 조건에서 일관된 평가 제공
그러나 의미적 유사성보다는 표현상의 유사성을 중시하므로, 의미가 같지만 표현이 다른 경우에는 평가가 부정확할 수 있다는 한계가 있습니다.
간단한 Python 코드 예제
아래는 rouge_score 라이브러리를 이용한 간단한 ROUGE 평가 예제입니다.
설치
pip install rouge-score
코드
from rouge_score import rouge_scorer
# 참조 요약과 생성된 요약
reference = "The cat sat on the mat and looked outside the window."
generated = "The cat was sitting on the mat looking out the window."
# ROUGE scorer 초기화
scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True)
# 점수 계산
scores = scorer.score(reference, generated)
# 결과 출력
for rouge_type, score in scores.items():
print(f"{rouge_type} - Precision: {score.precision:.4f}, Recall: {score.recall:.4f}, F1: {score.fmeasure:.4f}")
예상 출력
rouge1 - Precision: 0.8889, Recall: 0.8000, F1: 0.8421
rouge2 - Precision: 0.7000, Recall: 0.6364, F1: 0.6667
rougeL - Precision: 0.8148, Recall: 0.7619, F1: 0.7879
'AI' 카테고리의 다른 글
| LLM 평가 방법론 - DeepEval (0) | 2025.12.12 |
|---|---|
| LLM 평가 방법론 - BERTScore (0) | 2025.12.11 |
| LLM 평가 방법론 - GPTScore (0) | 2025.12.10 |
| LLM 평가 방법론 - G Eval (0) | 2025.12.10 |
| LLM 평가 방법론 - LLM as a Judge (0) | 2025.12.10 |