대형 언어 모델(LLM)의 성능을 평가하는 것은 모델의 정확성, 신뢰성, 일관성을 파악하고 개선 방향을 모색하는 데 필수적입니다. 다양한 평가 방법론을 이해하고 적절하게 적용하는 것은 모델 개발과 활용에 있어 중요한 과정입니다. 이번 글에서는 LLM 성능 평가 방법론을 대분류와 중분류로 나누어 상세히 설명하고, 각 방법이 적합한 상황에 대해 알아보겠습니다.
LLM 평가 방법론 요약 테이블
| 1. 성능 지표 기반 평가 (Performance Metrics) | 통계적 지표 | 정량 | BLEU, ROUGE, Perplexity, METEOR | 번역, 요약 등 정답이 명확한 태스크에서 모델 출력을 빠르게 비교하고자 할 때 유용합니다. |
| 딥러닝 기반 지표 | 정량 | BERTScore, MoverScore | 생성된 텍스트의 품질을 보다 심층적으로 분석하고자 할 때 적합합니다. | |
| 2. 벤치마크 기반 평가 (Benchmarks) | 일반 벤치마크 | 정량 | ARC, HellaSwag, MMLU, TruthfulQA, Winogrande, GSM8k | 모델의 전반적인 능력을 다양한 측면에서 평가하고자 할 때 유용합니다. |
| 한국어 벤치마크 | 정량 | KorNAT, Ko-ARC, Ko-HellaSwag, Ko-MMLU, Ko-TruthfulQA | 한국어에 특화된 모델이나 한국어 지원 능력을 평가하고자 할 때 활용할 수 있습니다. | |
| 3. 인간 평가 (Human Evaluation) | 직접 평가 | 정성 | 전문가 또는 일반 사용자의 주관적 평가 | 모델의 출력이 실제 사용자 경험에 어떤 영향을 미치는지 파악하고자 할 때 유용합니다. |
| 비교 평가 | 정성 | 모델 간 출력 비교 및 선호도 평가 | 여러 모델의 성능을 비교하거나 모델 개선 전후의 성능 차이를 평가하고자 할 때 활용됩니다. | |
| 4. 모델 기반 평가 (Model-based Evaluation) | LLM의 확률을 이용 | 정량 | GPTScore | 텍스트 자체의 유창성이나 문맥과의 관련성 등 기본적인 품질을 빠르고 정량적인 확률 점수로 평가하고자 할 때 사용합니다. |
| LLM을 평가자로 활용 | 정량, 정성 | LLM-as-a-Judge, G-Eval | 인간의 복합적인 판단(선호도, 기준 부합 등)을 모방하여 응답의 질을 평가하거나 특정 기준 충족 여부를 확인하고자 할 때 사용합니다. | |
| 5. 평가 프레임워크 (Evaluation Frameworks) | LLMeBench | 정량 | 다양한 NLP 태스크와 언어 평가 지원 | 다양한 NLP 태스크에 대한 모델의 성능을 신속하게 평가하고자 할 때 유용합니다. |
| Prometheus | 정량 | 사용자 정의 평가 기준에 따른 장문 응답 평가 | 특정 기준에 따라 모델의 출력을 상세히 평가하고자 할 때 적합합니다. | |
| Evalverse | 정량 | 다양한 평가 도구 통합 및 협업 지원 | 비전문가나 다양한 팀 구성원이 모델 평가에 참여해야 하는 경우에 유용합니다. | |
| UltraEval | 정량 | 경량화된 구조의 평가 워크플로우 구성 지원 | 간편하고 효율적인 평가 워크플로우를 구축하고자 할 때 적합합니다. |
1. 성능 지표 기반 평가 (Performance Metrics)
성능 지표 기반 평가는 모델의 출력을 정량적으로 측정하여 성능을 평가하는 방법입니다. 이는 자동화된 평가를 가능하게 하며, 대규모 데이터셋에 대한 빠른 평가를 지원합니다.
1.1 통계적 지표
- BLEU (Bilingual Evaluation Understudy): 기계 번역의 품질을 평가하기 위해 사용되며, 모델의 출력과 참조 번역 간의 n-그램 중복도를 측정합니다. 주로 번역 품질 평가에 활용됩니다.
- ROUGE (Recall-Oriented Understudy for Gisting Evaluation): 요약된 텍스트의 품질을 평가하는 지표로, 생성된 요약과 참조 요약 간의 n-그램 중복도를 측정합니다. 텍스트 요약 성능 평가에 주로 사용됩니다.
- Perplexity: 언어 모델의 예측 능력을 측정하는 지표로, 낮은 퍼플렉시티 값은 모델이 다음 단어를 더 정확하게 예측함을 의미합니다. 언어 모델의 전반적인 성능 평가에 사용됩니다.
- METEOR (Metric for Evaluation of Translation with Explicit ORdering): BLEU의 한계를 보완하기 위해 개발된 지표로, 동의어와 형태소 정보를 고려하여 번역 품질을 평가합니다.
적용 상황: 이러한 통계적 지표들은 모델의 성능을 빠르게 비교하고자 할 때 유용합니다. 특히, 번역, 요약 등과 같이 정답이 명확한 태스크에서 모델의 출력을 정량적으로 평가하는 데 적합합니다.
1.2 딥러닝 기반 지표
- BERTScore: BERT 모델의 임베딩을 활용하여 생성된 텍스트와 참조 텍스트 간의 의미적 유사성을 측정합니다. 문장의 의미적 일치를 평가하는 데 사용됩니다.
- MoverScore: BERTScore를 확장한 지표로, 단어 간 이동 거리를 고려하여 텍스트 간의 유사성을 평가합니다. 보다 정교한 의미적 유사성 평가에 활용됩니다.
적용 상황: 이러한 지표들은 단순한 n-그램 매칭을 넘어 의미적 유사성을 평가할 때 유용합니다. 특히, 생성된 텍스트의 품질을 보다 심층적으로 분석하고자 할 때 적합합니다.
2. 벤치마크 기반 평가 (Benchmarks)
벤치마크는 다양한 태스크에 대한 표준화된 데이터셋을 활용하여 모델의 성능을 평가하는 방법입니다. 이는 모델 간 성능 비교와 특정 태스크에 대한 모델의 능력을 측정하는 데 활용됩니다.
2.1 일반 벤치마크
- ARC (AI2 Reasoning Challenge): 과학적 추론 능력을 평가하는 사지선다형 문제로 구성된 데이터셋입니다. 모델의 논리적 추론 능력을 측정하는 데 사용됩니다.
- HellaSwag: 일상 상식과 추론 능력을 평가하는 데이터셋으로, 문장의 일부분을 주고 이어질 내용을 선택하는 형태로 구성되어 있습니다. 모델의 상식적 이해도를 평가하는 데 활용됩니다.
- MMLU (Massive Multitask Language Understanding): 57개의 다양한 분야에 대한 사지선다형 문제로 구성되어 있으며, 모델의 범용 지식과 문제 해결 능력을 평가합니다.
- TruthfulQA: 흔히 오해하기 쉬운 상식에 대한 질문으로 구성되어 있으며, 모델의 정확한 정보 제공 능력을 평가합니다.
- Winogrande: 문맥 기반 추론 능력을 평가하는 데이터셋으로, 거의 동일한 문장 쌍의 형태 구별 능력을 측정합니다.
- GSM8k: 초등학교 수준의 수학 문제로 구성되어 있으며, 모델의 수학적 추론 능력을 평가합니다.
적용 상황: 이러한 벤치마크들은 모델의 전반적인 능력을 다양한 측면에서 평가하고자 할 때 유용합니다. 특히, 특정 분야나 태스크에 대한 모델의 성능을 비교하고자 할 때 활용됩니다.
2.2 한국어 벤치마크
- KorNAT (Korean National Alignment Test): 한국의 사회적 가치와 일반 지식에 맞춘 대형 언어 모델 정렬 벤치마크로, 한국인의 관점에서 모델의 성능을 평가합니다.
- Ko-ARC, Ko-HellaSwag, Ko-MMLU, Ko-TruthfulQA: 각각 ARC, HellaSwag, MMLU, TruthfulQA의 한국어 버전으로, 한국어 환경에서 모델의 성능을 평가합니다.
적용 상황: 한국어에 특화된 모델이나 한국어 지원 능력을 평가하고자 할 때 이러한 벤치마크들을 활용할 수 있습니다.
3. 인간 평가 (Human Evaluation)
인간 평가는 전문가나 일반 사용자가 직접 모델의 출력을 평가하는 방법으로, 모델이 생성한 응답의 품질을 심층적으로 분석할 수 있습니다. 이는 자동화된 지표나 벤치마크로는 파악하기 어려운 요소들을 평가하는 데 유용합니다.
3.1 직접 평가
정성적 분석: 전문가나 일반 사용자가 모델의 출력을 직접 검토하여 정확성, 일관성, 가독성, 문법성, 창의성 등을 평가합니다. 이를 통해 모델의 응답이 실제 사용자에게 얼마나 유용한지 판단할 수 있습니다.
적용 상황: 모델의 출력이 실제 사용자 경험에 어떤 영향을 미치는지 파악하고자 할 때 유용합니다. 특히, 자동화된 지표로 측정하기 어려운 질적인 요소를 평가할 때 적합합니다.
3.2 비교 평가
상대적 우수성 판단: 여러 모델의 출력을 비교하여 상대적인 우수성을 평가합니다. 예를 들어, 동일한 입력에 대해 두 개 이상의 모델이 생성한 응답을 비교하여 어느 쪽이 더 나은지 판단합니다.
적용 상황: 여러 모델의 성능을 비교하고자 할 때, 또는 모델 개선 전후의 성능 차이를 평가하고자 할 때 활용됩니다.
주의점: 인간 평가는 비용이 많이 들고 시간이 소요될 수 있으며, 평가자의 주관이 개입될 수 있으므로 표준화된 기준과 평가자 교육이 필요합니다.
4. 모델 기반 평가 (Model-based Evaluation)
모델 기반 평가는 다른 강력한 언어 모델(LLM)을 활용하여 평가 대상 모델의 응답 품질을 측정하는 혁신적인 방식입니다. 이는 자동화된 평가를 가능하게 하며, 대규모 데이터셋에 대한 신속한 평가가 필요하거나 시간과 비용이 많이 드는 인간 평가를 보완하고자 할 때 매우 유용합니다. LLM을 활용하는 방식은 크게 LLM을 '평가자(Judge)'로 사용하는 접근 방식과 LLM의 '확률 계산 능력'을 이용하는 접근 방식으로 나눌 수 있습니다.
4.1 LLM을 평가자(Judge)로 활용하는 방식
이 방식은 특정 LLM(주로 GPT-4와 같은 고성능 모델)에게 평가자의 역할을 부여하여, 다른 LLM의 응답을 인간의 관점에서 평가하도록 하는 프레임워크입니다. 평가의 구체적인 목표와 방식에 따라 다음과 같이 구분될 수 있습니다.
- LLM-as-a-Judge (JLaJ 접근 방식):
- 개념: 주로 두 개의 응답(A, B)을 LLM 평가자에게 제시하고, 어느 쪽이 전반적으로 더 우수한지(인간 선호도) 를 판단하도록 합니다. MT-Bench와 같이 개방적이고 복잡한 다중 턴(multi-turn) 대화 능력을 평가하는 데 효과적입니다.
- 특징: LLM 평가자는 종종 왜 특정 응답을 선호하는지에 대한 **설명(rationale)**을 함께 제공하여 평가의 투명성을 높입니다. 인간의 복합적인 선호도를 확장 가능하게 모방하는 데 중점을 둡니다.
- 적용: 인간 평가의 비용과 시간을 절감하면서도, 특히 대화형 AI의 품질을 사용자 관점에서 일관되게 평가하고자 할 때 활용됩니다.
- G-Eval 접근 방식:
- 개념: 단일 응답을 평가할 때, 명시적으로 정의된 여러 평가 기준(예: 관련성, 일관성, 유창성, 사실성 등)을 사용합니다.
- 특징: LLM 평가자에게 Chain-of-Thought (CoT) 기법을 적용하여, 각 기준에 대해 단계별로 추론하고 그 결과를 바탕으로 점수를 매기도록 유도합니다. 평가 과정을 더 구조화하고 각 기준에 따른 구체적인 점수를 얻고자 할 때 유용합니다.
- 적용: 요약, 번역 등 특정 NLG(자연어 생성) 작업의 품질을 다각도로 세밀하게 평가해야 할 때 효과적입니다.
- 공통 고려사항: 이 방식들은 인간 평가 대비 비용 효율적이고 빠르며 일관된 평가가 가능하다는 장점이 있습니다. 하지만 평가자로 사용되는 LLM 자체의 편향(예: 특정 위치의 답변 선호, 장황한 답변 선호 등)이나 특정 분야에 대한 이해 부족이 평가 결과에 영향을 미칠 수 있습니다. 따라서 결과를 해석할 때 주의가 필요하며, 다른 평가 방식과 교차 검증하는 것이 좋습니다.
4.2 LLM의 확률을 이용하는 방식 (GPTScore 등)
이 방식은 LLM을 판단 주체(평가자)로 사용하는 대신, LLM이 가진 언어 모델 본연의 확률 계산 능력을 평가 지표로 직접 활용한다는 점에서 앞선 방식들과 근본적인 차이가 있습니다.
- GPTScore:
- 개념: 대표적인 예로, GPTScore는 특정 텍스트(예: 생성된 응답)가 주어진 조건(예: 원본 프롬프트, 참조 응답) 하에서 **나타날 조건부 확률(conditional probability)**을 LLM을 이용해 계산합니다.
- 특징: 이 계산된 확률값이 높을수록 생성된 응답이 문맥에 더 적합하거나(relevance), 의미론적으로 유사하거나(semantic similarity), 자연스럽다(fluency)고 판단하여 이를 정량적인 점수로 사용합니다. LLM에게 평가자의 역할을 부여하거나 복잡한 추론을 요구하지 않고, 모델의 내부 확률 분포를 직접 점수로 활용합니다.
- 적용: 텍스트의 유창성, 프롬프트와의 관련성, 참조 응답과의 의미론적 유사성 등을 측정하는 데 사용될 수 있으며, 특히 참조(reference) 응답이 있는 경우나 생성된 텍스트 자체의 품질을 측정하는 데 유용합니다.
5. 평가 프레임워크 (Evaluation Frameworks)
5.1 DeepEval
DeepEval은 LLM의 성능을 평가하기 위한 오픈소스 프레임워크로, 다양한 평가 지표와 벤치마크를 지원합니다. 사용자는 이를 통해 모델의 출력에 대한 정량적 평가를 수행할 수 있으며, 다양한 태스크에 대한 성능 비교가 가능합니다.
활용 상황: LLM의 전반적인 성능을 다양한 지표로 평가하고자 할 때 유용합니다. 특히, 여러 모델의 성능을 비교하여 최적의 모델을 선택하려는 경우에 적합합니다.
5.2 MLflow LLM Evaluation
MLflow LLM Evaluation은 머신러닝 실험 관리 플랫폼인 MLflow에서 제공하는 LLM 평가 모듈입니다. 모델의 성능을 체계적으로 추적하고 비교할 수 있도록 지원하며, 다양한 메트릭과 시각화 도구를 제공합니다.
활용 상황: MLflow를 이미 사용하고 있는 환경에서 LLM의 성능을 관리하고자 할 때 적합합니다. 모델의 학습 과정과 평가 결과를 일관되게 관리할 수 있습니다.
5.3 RAGAs
RAGAs는 Retrieval-Augmented Generation 애플리케이션의 성능을 평가하기 위한 프레임워크입니다. 검색 기반 생성 모델의 정확성, 유용성 등을 측정하는 다양한 지표를 제공합니다.
활용 상황: 검색과 생성이 결합된 시스템의 성능을 평가하고자 할 때 유용합니다. 특히, 정보 검색과 생성이 중요한 애플리케이션에서 모델의 품질을 측정하는 데 적합합니다.
5.4 Deepchecks
Deepchecks는 머신러닝 모델의 성능과 데이터 품질을 검사하기 위한 프레임워크로, LLM의 평가에도 활용될 수 있습니다. 모델의 예측 성능, 데이터 분포, 이상치 등을 자동으로 점검하여 신뢰성을 높입니다.
활용 상황: LLM의 성능뿐만 아니라 입력 데이터의 품질까지 함께 점검하고자 할 때 적합합니다. 데이터 드리프트나 이상치를 감지하여 모델의 안정성을 유지하는 데 도움이 됩니다.
5.5 Arize AI Phoenix
Arize AI Phoenix는 LLM의 런타임 추적, 출력 결과 평가 및 분석을 위한 프레임워크입니다. LlamaIndex, LangChain 등의 프레임워크와 통합되며, 다양한 환경에서 실행 가능합니다.
활용 상황: LLM의 실시간 성능 모니터링과 디버깅이 필요한 경우에 유용합니다. 모델의 출력 품질을 지속적으로 추적하고 개선 사항을 도출하는 데 적합합니다.
5.6 opik
opik은 LLM 애플리케이션의 평가, 테스트 및 모니터링을 위한 오픈소스 플랫폼입니다. 직관적인 UI와 자동 성능 평가 기능을 제공하여 사용자가 쉽게 모델의 성능을 파악할 수 있습니다.
활용 상황: 사용자 친화적인 인터페이스를 통해 LLM의 성능을 평가하고 모니터링하고자 할 때 적합합니다. 특히, RAG 파이프라인 구성 후 추적을 위한 도구로 활용될 수 있습니다.
5.7 lm-evaluation-harness
lm-evaluation-harness는 다양한 벤치마크 데이터셋을 활용하여 LLM의 성능을 자동 평가할 수 있도록 하는 프레임워크입니다. 사용자가 특정 데이터셋과 태스크를 간단한 코드로 평가할 수 있도록 설계되었으며, 다양한 모델과 지표를 지원합니다.
활용 상황: 다양한 벤치마크를 활용하여 LLM의 성능을 신속하게 평가하고자 할 때 유용합니다. 특히, 여러 모델과 데이터셋을 동시에 비교하여 최적의 모델을 선택하려는 경우에 적합합니다.
이러한 다양한 평가 프레임워크를 적절히 활용함으로써 LLM의 성능을 다각도로 분석하고, 모델의 강점과 약점을 파악하여 개선 방향을 모색할 수 있습니다. 각 프레임워크는 고유한 특징과 장점을 지니므로, 평가 목적과 상황에 맞게 선택하여 활용하는 것이 중요합니다.
'AI' 카테고리의 다른 글
| LLM 평가 방법론 - LLM as a Judge (0) | 2025.12.10 |
|---|---|
| LLM 평가 방법론 - 벤치마크 (0) | 2025.12.10 |
| vLLM의 핵심 이해: Semantic-Aware Scheduling (0) | 2025.03.25 |
| vLLM의 핵심 이해: PagedAttention (0) | 2025.03.25 |
| vLLM 이란? (0) | 2025.03.25 |