🤖 LLM 성능 평가 방법 정리
📌 개요
LLM의 성능을 제대로 측정하는 작업은 모델의 개발 과정뿐만 아니라 수많은 LLM 중 어떤 모델을 선택할 것인지 결정하는 상황에서도 매우 중요하다. 즉, LLM 평가는 개발과 사용 측면에서 모두 중요한 작업이므로 이번 포스팅에서는 LLM 성능 평가 방법에 대하여 포괄적으로 정리해보고자 한다.
이 때, LLM 성능 평가 방식을 크게 Performance Metrics, Benchmarks, Human Evaluation , Model-based Evaluation, Evaluation Frameworks 5가지로 나누어 살펴볼 것이다.
📌 목차
1. LLM 성능 평가 방식(1) : Performance Metrics
1) 통계적인 방식: BLEU, ROUGE, Perplexity, METEOR, Classification metrics (precision, recall, accuracy, F1 score, etc.)
2) 딥러닝 방식: BERTscore, MoverScore 등
2. LLM 성능 평가 방식(2) : Benchmarks
1) 대표적인 벤치마크: ARC, HellaSwag, MMLU (MMLU Pro), TruthfulQA, Winogrande, GSM8k
2) 한국어 대표적인 벤치마크: Ko-ARC, Ko-HellaSwag, Ko-MMLU, Ko-TruthfulQA, Ko-CommonGen V2
3. LLM 성능 평가 방식(3) : Human Evaluation
1) 사람이 직접 태스크에 맞는 기준을 세워서 LLM 출력을 평가하는 방식
2) LMSYS Chatbot Arena를 통한 비교 평가하는 방식
4. LLM 성능 평가 방식(4) : Model-based Evaluation
1) LLM 측정 metric 방식: G-Eval, GPTScore 등
2) LLM 모델이 LLM 성능을 평가 (LLM-as-a-judge) : MT-bench, Chatbot Arena, Prometheus2
5. LLM 성능 평가 방식(5) : Evaluation Frameworks
📌 LLM 성능 평가 방식(1) : Performance Metrics
✔ 통계적인 방식의 Metrics
BLEU(BiLingual evaluation understudy) Score
주로 기계 번역 품질을 평가하기 위해 사용되며, LLM이 출력한 번역 결과와 레퍼런스 번역(대체로 사람이 직접 번역한 문장)이 얼마나 일치하는지를 평가하는 지표이다. BLEU Score가 높을수록 모델이 출력이 레퍼런스 번역과 유사한 정도가 높으므로 생성 품질이 더 좋다는 것을 의미한다. 하지만 BLEU Score는 단어의 표면적 일치 여부만 보기 때문에, 실제 번역의 의미나 문맥을 잘 반영하지 못한다는 한계가 있다.
c.f. https://huggingface.co/spaces/evaluate-metric/bleu
ROUGE(Recall-Oriented Understudy for Gisting Evaluation) Score
주로 텍스트 요약을 평가할 때 사용되며, LLM이 출력한 요약 결과가 레퍼런스 요약(대체로 사람이 직접 요약한 문장)의 정보를 얼마나 충실히 반영하는지를 평가하는 지표이다.
ROUGE Score가 높을수록 요약 결과가 레퍼런스 요약의 중요한 키워드를 잘 반영한다고 볼 수 있지만, BLEU Score와 마찬가지로 이 지표는 LLM 출력의 의미나 문맥을 잘 반영하지 못한다는 한계가 있다.
c.f. https://huggingface.co/spaces/evaluate-metric/rouge
Perplexity (PPL)
LLM이 텍스트의 샘플을 예측할 때 얼마나 잘 예측하는지를 측정하는 지표이다. 직관적으로는 LLM이 예측을 할 때 얼마나 혼동을 겪는지를 측정하는 것이다. Perplexity는 모델이 텍스트의 흐름을 얼마나 잘 따라가고 이해하는지를 정량적으로 측정하는 좋은 방법이지만 전체적인 텍스트의 질적인 측면은 평가하지 못한다는 한계가 있다.
c.f. https://huggingface.co/spaces/evaluate-metric/perplexity
그 외
1. METEOR Score
c.f. https://huggingface.co/spaces/evaluate-metric/meteor
2. Classification metrics (precision, recall, accuracy, F1 score, etc.)
3. Levenshtein distance (Edit Distance)
통계적인 방식의 Metrics의 한계
위에서 언급한 통계적인 방식의 metrics는 단어나 토큰에 내재된 의미(meaning-preserving lexical)와 통사구조의 다양성(compositional diversity)을 제대로 평가하지 못한다는 한계가 있다. (c.f. BERTScore: Evaluating Text Generation with BERT)
쉽게 말하면, 통계적인 방식의 metrics는 LLM 출력결과와 레퍼런스 문장 사이의 표면적인 비교를 하기 때문에, 텍스트의 전체적인 문맥이나 의미, 구성 등을 잘 고려하지 못한다. 그래서 딥러닝 방식의 metrics가 등장한다.
✔ 딥러닝 방식의 Metrics
BERTScore
BERT의 Contextual Embedding을 활용하여 모델이 생성한 후보 문장과 사람이 직접 만든 레퍼런스 문장 간의 의미적 유사성을 평가하는 지표이다. 문장 수준과 시스템 수준의 평가에서 인간의 판단과 높은 상관관계를 보이며, 텍스트 생성의 품질을 평가하기 위해 사용된다.
c.f. BERTScore: Evaluating Text Generation with BERT https://arxiv.org/abs/1904.09675
MoverScore
BERTScore와 비슷하지만, 각 토큰 사이에 soft alignment를 사용하여 더 유연하게 토큰간 유사성을 평가할 수 있고, Earth Mover’s Distance(EMD) 알고리즘을 변형 사용하여 후보 문장과 레퍼런스 문장 사이의 의미적 거리를 계산하여 좀 더 정교하게 유사도 측정이 가능하다.
c.f. MoverScore: Text Generation Evaluating with Contextualized Embeddings and Earth Mover Distance https://arxiv.org/abs/1909.02622
📌 LLM 성능 평가 방식(2) : Benchmarks
✔ 대표적인 벤치마크
ARC (AI2 Reasoning Challenge) 벤치마크
ARC는 과학 문제를 통해 모델의 '지식과 추론' 능력을 평가하는 데이터셋이다. 초등학교에서 중학교 수준의 다양한 과학 주제를 포함하여, 문제 해결 능력을 종합적으로 측정한다.
c.f. Think you have Solved Question Answering? Try ARC, the AI2 Reasoning Challenge https://arxiv.org/abs/1803.05457
HellaSwag 벤치마크
HellaSwag는 미완성된 문장 완성 작업을 통해 모델의 ‘문맥 이해력’을 테스트하여 ‘상식 추론’ 능력을 평가하는 데이터셋이다. 인과관계 추론, 상황 예측, 구체적 지식 활용, 시간적 추론 등 다양한 추론 능력이 요구되며, WikiHow와 ActivityNet에서 수집된 문서의 일부가 주어지면 이어질 가장 적절한 문장을 선택하는 능력을 측정한다.
c.f. HellaSwag: Can a Machine Really Finish Your Sentence? https://arxiv.org/abs/1905.07830
MMLU (Massive Multitask Language Understanding) 벤치마크
MMLU는 57가지 태스크를 통해 다양한 주제에 대한 모델의 ‘광범위한 지식과 추론’ 능력을 평가하기 위한 데이터셋이다. 문제의 난이도는 초등학교 수준부터 전문가 수준까지 다양하게 분포되어 있으며, 다방면의 도메인(기초수학, 역사, 컴퓨터 과학, 법률 등) 지식에 대한 모델의 성능을 측정한다.
c.f. Measuring Massive Multitask Language Understanding https://arxiv.org/abs/2009.03300
MMLU Pro 벤치마크
참고로 MMLU 벤치마크는 얼마전에 업그레이드된 버전인 MMLU Pro가 나왔다.
기존 MMLU와의 차이점 : 기존 MMLU 데이터셋은 4개의 선택지를 포함하고 있지만, MMLU Pro는 이를 10개의 선택지로 늘렸다. 또한 기존엔 지식 기반 질문들로 구성되어 있었지만 MMLU Pro에서는 문제 난이도를 높이고 추론 중심의 문제들을 늘렸다.
TruthfulQA 벤치마크
TruthfulQA는 모델이 얼마나 정확하고 진실된 답변을 제공하는지를 측정하여 ‘진실성’과 오류 구별’ 능력을 평가하는 데이터셋이다. 건강, 법률, 금융, 정치 등 38개 카테고리에 걸쳐 인간이 잘못된 믿음이나 오해로 인해 거짓으로 답할 수 있는 내용들로 구성되어 있으며, 모델이 인간 텍스트를 모방하는 과정에서 학습한 거짓 답변을 생성하지 않도록 평가한다.
c.f. TruthfulQA: Measuring How Models Mimic Human Falsehoods https://arxiv.org/abs/2109.07958
Winogrande 벤치마크
Winogrande는 대명사 해석을 통해 모델의 ‘문맥 기반 추론’ 능력을 평가하는 데이터셋이다. 문제는 두가지 질문 쌍으로 구성되며, 각 질문 쌍에는 두개의 답변 선택지가 있는데 트리거 단어에 따라 정답이 달라진다. 주어진 문맥에서 선택지 중 트리거 단어가 지칭하는 대상을 정확히 이해하고 맥락에 맞게 해석하는 능력을 측정한다.
c.f. WINOGRANDE : An Adversarial Winograd Schema Challenge at Scale https://arxiv.org/abs/1907.10641
GSM8k (Grade School Math 8K) 벤치마크
GSM8k는 초등학교 수준의 수학 문제를 통해 모델의 ‘수학적 추론’ 능력을 평가하는 데이터셋이다. 문제를 풀기 위해서는 기본적인 산술 연산을 순차적으로 2~8단계 수행해야 하며 다양한 수학 문제를 해결하여 정답을 제시하는 과정을 통해 논리적 사고와 계산 능력을 평가한다.
c.f. Training Verifiers to Solve Math Word Problems https://arxiv.org/abs/2110.14168
✔ 한국어 대표적인 벤치마크
대표적인 한국어 벤치마크로는 Ko-ARC, Ko-HellaSwag, Ko-MMLU, Ko-TruthfulQA, Ko-CommonGen V2 등이 있다.
Ko-ARC, Ko-HellaSwag, Ko-MMLU, Ko-TruthfulQA는 기존의 대표적인 벤치마크 데이터셋을 업스테이지에서 번역하여 제공하고 있다. Ko-CommonGen V2 데이터는 고려대학교 NLP&AI연구실에서 구축한 데이터로, 일반상식을 판단하는 성능을 측정한다.
📌 LLM 성능 평가 방식(3) : Human Evaluation
사람이 직접 태스크에 맞는 기준을 세워서 LLM 출력을 평가하는 방식
1. golden dataset 준비 : 사람이 직접 질문-답변을 검증한 골든 데이터셋을 준비한다. LLM 출력 결과와 비교하여 성능을 측정하기 위한 레퍼런스로 사용하게 된다.
2. 점수화 기준 세우기 : 태스크에 따라 점수화 기준을 정한다. 예를 들어 특정 태스크에 대하여 정확성, 유창성, 일관성 등 다양한 기준을 세우고, 이에 대한 가이드라인을 마련한다.
3. 점수화 및 평가 : golden dataset을 바탕으로 기준에 따라 LLM 출력의 품질을 정성적으로 판단한다. 이 때 LLM과 같은 생성형 AI는 항상 일관된 결과를 내는 것이 목표가 아닌, 다양하고 예측 불가하면서도 고품질의 결과를 생성하는 것이 목적이라는 그 본연의 특성 때문에 정량적인 평가방식보다는 인간의 판단에 의한 정성적인 평가방식이 더 LLM 성능과 align되는 편이다. 그러나 비용과 시간 소모가 크고 평가자마다 성능 판단이 일관적이지 않으며 동일한 판단을 재현하기가 어렵다는 단점이 있다.
LMSYS Chatbot Arena를 통한 비교 평가하는 방식
LMSYS Chatbot Arena는 블라인드 상태에서 LLM 성능을 상대적으로 비교, 평가하기 위한 크라우드소싱 방식의 벤치마크 플랫폼이다. 사용자는 블라인드 상태에서 두가지 다른 LLM 출력 결과 중 더 성능이 좋다고 판단되는 LLM에게 투표를 하며, 사용자 투표를 통해 축적된 점수를 통해 LLM의 순위가 산정된다. 이 방식을 통해 다양한 human feedback 바탕의 평가가 가능하다는 장점이 있다.
c.f. Chatbot Arena https://chat.lmsys.org/ 여기에서 직접 사용해볼 수 있다.
📌 LLM 성능 평가 방식(4) : Model-based Evaluation
✔ LLM 측정 방식의 Metrics
GPTScore
GPTScore란 Generative Pre-training Score의 약자로, 사전학습된 생성모델을 기반으로 하여 LLM 출력을 평가하는 방법이다. 평가 aspect에 대한 설명을 프롬프트에 포함하고, 모델에게 직접 점수를 판단하게 한 것이 아니라 모델이 각 토큰을 생성할 때의 로그 확률을 계산하여 평가한다는 특징이 있다.
c.f. GPTScore: Evaluate as You Desire https://arxiv.org/abs/2302.04166
G-Eval
LLM의 Chain-Of-Thought (CoT)와 form-filling(양식 채우기) 기법을 활용하여 사용자가 정의한 기준에 따라 LLM의 생성 결과물의 품질을 평가하는 프레임워크이다. 이 방법은 프롬프팅 기법이 중요하게 작용하기 때문에, CoT를 통해 사용자 기준에 대한 가이드 및 evaluation steps 등의 컨텍스트를 더 정교하게 제공할수록 평가 품질을 향상시킬 수 있다.
c.f. G-Eval: NLG Evaluation using GPT-4 with Better Human Alignment https://arxiv.org/abs/2303.16634
✔ LLM 모델이 LLM 성능을 평가 (LLM-as-a-judge)
MT-bench
MT-bench는 총 80개의 고품질 multi-turn 질문으로 구성되어 LLM의 ‘대화 및 추론’ 능력을 종합적으로 평가하는 데이터셋이다. writing, roleplay, extraction, reasoning, math, coding, knowledge I (STEM), and knowledge II (humanities/social science)라는 8가지의 주제에 대하여 각각 10개씩 멀티턴 질문셋으로 구성되어 있다.
이 때 MT-bench는 주관식이고 패턴화하기 어려운 답변들이기 때문에 그 결과를 평가할 때 GPT4와 같이 고성능의 LLM을 Evaluator, 즉 LLM-as-a-judge의 역할로 사용한다. LLM을 통해 LLM의 성능을 평가하는 방식을 통해 인간이 직접 평가할 때보다 빠르고 확장 가능하다.
LLM-as-a-judge로 Chatbot Arena, MT-bench 방식으로 LLM 평가 결과
논문에 따르면 MT-bench의 전문가 투표와 Chatbot Arena에서 수집된 크라우드 투표 결과를 비교했을 때 GPT-4 judge와 사람의 선호의 일치도가 80% 이상으로, 사람간의 평가의 일치도와 유사한 성능을 보이며 유의미한 결과를 내었다.
c.f. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena https://arxiv.org/abs/2306.05685
LLM-as-a-judge 역할을 위해 파인튜닝된 오픈소스 모델
GPT4를 LLM-as-a-judge로 사용하는 것이 성능이 좋지만 투명성, 제어 가능성, 경제성 문제로 인해, 평가용으로 파인튜닝된 오픈소스 모델 Prometheus2를 고려하는 방법도 있다. Prometheus2는 direct assessment(instruction과 LLM 출력을 바탕으로 단일적으로 점수 도출하여 평가)와 pairwise ranking(instruction과 2개의 LLM 출력 결과 쌍이 주어졌을 때 더 나은 결과를 선택하여 평가) 방식 각각에 대하여 학습한 두가지 모델을 병합해서 평가의 신뢰도를 높였다고 한다.
c.f. Prometheus 2: An Open Source Language Model Specialized in Evaluating Other Language Models https://arxiv.org/abs/2405.01535
📌 LLM 성능 평가 방식(5) : Evaluation Frameworks
현재 모델 평가를 위한 프레임워크가 다양하게 나와있는데, 이러한 오픈소스 평가용 프레임워크 중 일부를 소개하고자 한다.
DeepEval
G-Eval, Summarization, Answer Relevancy, Faithfulness 등 다양한 LLM 평가 지표를 사용할 수 있고, 간단한 코드로 벤치마크 평가도 가능하다. Pytest와 유사하지만, LLM 출력을 유닛 테스트하기에 최적화되어 있는 프레임워크이다.
c.f. https://github.com/confident-ai/deepeval
Phoenix
Phoenix는 실험, 평가, 트러블슈팅 등을 위하여 고안된 프레임워크로, LLM 런타임을 추적하거나 LLM 출력 결과를 평가하고 분석할 수 있는 툴을 제공한다. 또한 LlamaIndex, LangChain 등의 프레임워크 및 OpenAI, Bedrock 등을 지원하며 주피터 노트북, 로컬, 컨테이너, 클라우드 등 다양한 환경에서 실행 가능하다.
c.f. https://github.com/Arize-ai/phoenix
RAGAs
RAG(Retrieval Augmented Generation) 파이프라인 평가를 위해 개발되었으며, Faithfulness, Answer Relevance, Context Precision, Context Relevancy, Context Recall, Answer semantic similarity, Answer Correctness, Aspect Critique 등 핵심 지표들을 제공한다.
c.f. https://github.com/explodinggradients/ragas
📌 참고 자료
Metrics
1. https://huggingface.co/spaces/evaluate-metric/
2. https://www.turing.com/resources/understanding-llm-evaluation-and-benchmarks
3. https://medium.com/@kbdhunga/nlp-model-evaluation-understanding-bleu-rouge-meteor-and-bertscore-9bad7db71170
4. BERTScore: Evaluating Text Generation with BERT https://arxiv.org/abs/1904.09675
5. MoverScore: Text Generation Evaluating with Contextualized Embeddings and Earth Mover Distance https://arxiv.org/abs/1909.02622
Benchmarks
1. Think you have Solved Question Answering? Try ARC, the AI2 Reasoning Challenge https://arxiv.org/abs/1803.05457
2. HellaSwag: Can a Machine Really Finish Your Sentence? https://arxiv.org/abs/1905.07830
3. Measuring Massive Multitask Language Understanding https://arxiv.org/abs/2009.03300
4. TruthfulQA: Measuring How Models Mimic Human Falsehoods https://arxiv.org/abs/2109.07958
5. WINOGRANDE : An Adversarial Winograd Schema Challenge at Scale https://arxiv.org/abs/1907.10641
6. Training Verifiers to Solve Math Word Problems https://arxiv.org/abs/2110.14168
Model-based Evaluation
1. Chatbot Arena https://chat.lmsys.org/
2. GPTScore: Evaluate as You Desire https://arxiv.org/abs/2302.04166
3. G-Eval: NLG Evaluation using GPT-4 with Better Human Alignment https://arxiv.org/abs/2303.16634
4. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena https://arxiv.org/abs/2306.05685
5. Prometheus 2: An Open Source Language Model Specialized in Evaluating Other Language Models https://arxiv.org/abs/2405.01535
Evaluation Frameworks
1. DeepEval https://github.com/confident-ai/deepeval
2. Phoenix https://github.com/Arize-ai/phoenix
3. RAGAs https://github.com/explodinggradients/ragas
내용이 도움이 되셨다면 댓글 또는 좋아요 부탁드립니다. 감사합니다. 😀
'공부 > AI' 카테고리의 다른 글
[LLM] 다양한 LLM Provider 정리 및 선택 가이드 (ChatGPT, Claude, Gemini, HyperCLOVA, LLaMA 등) (2) | 2024.07.06 |
---|---|
[회고] 글또 9기 : 개발자 글쓰기 모임을 통해 어떤 것을 얻었을까? (5) | 2024.05.12 |
[Project] 프롬프트 엔지니어링 사이드 프로젝트 개발기 (6) | 2024.04.04 |
[논문리뷰] Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4 (2024) (6) | 2024.03.11 |
[Prompt] 프롬프트 엔지니어는 어떤 일을 할까? 나의 업무 소개 (6) | 2024.02.18 |