평소 LLM 애플리케이션을 개발하였지만, 의도대로 답변인 나오는지를 눈대중으로만 확인하다가 신뢰성 확보 및 객관적인 지표를 통한 성능 고도화를 위해 LLM의 성능을 평가해야겠다는 생각이 들었고, 이에 LLM의 성능 평가에 대한 내용을 정리해보고자 합니다.
1. LLM 평가 배경
LLM평가는 모델 자체의 전반적인 성능을 객관적으로 측정하고, 이를 통해 실제 환경에서의 효용성을 예측하는 데 초점을 둡니다. 신뢰할 수 있는 평가 체계를 갖추는 것은 LLM 개발과 응용에서 필수적인 과정입니다. 이러한 LLM 평가는 크게 모델 자체를 평가하는 것과 LLM 애플리케이션을 평가하는 두 가지로 구분됩니다. 이번 글에서는 모델 자체 평가에 대해 다뤄보도록 하겠습니다.
1) LLM 평가의 주요 접근법
LLM 평가는 크게 세 가지 관점에서 이루어집니다.
- 일반적 성능 측정
- 언어를 얼마나 잘 이해하고 자연스럽게 구사할 수 있는지를 평가합니다.
- 문장의 의미 파악, 번역, 독해, 질문-답변 등 다양한 언어 응용 분야에서의 성능을 측정합니다. - 도메인 특화 성능 측정
- 법률, 의료, 금융 등 특정 도메인에 대해 파인튜닝된 모델의 성능을 평가합니다.
- 각 분야에 맞게 훈련된 모델이 얼마나 정확한 결과를 도출하는지 측정합니다. - 얼라인먼트(Alignment) 성능 측정
- 모델이 편향성, 유해성, 윤리적 이슈에 대해 인간의 보편적 기준에 얼마나 부합하는지를 평가합니다.
- 이는 모델이 사회적, 윤리적 기준을 어느 정도 따르는지에 중점을 둡니다.
2) LLM 평가가 어려운 이유
자세한 설명에 앞서 LLM 평가가 다른 모델에비해 왜 어려운가를 간단하게 설명하고 넘어가겠습니다. 언어 모델의 평가가 어려운 가장 큰 이유는 언어 자체가 지닌 복잡성과 다양성 때문입니다.
- 언어의 복잡성: 언어는 문맥, 뉘앙스, 함축적 의미를 포함하는 복잡한 시스템입니다.
- 평가 기준의 다양성: 단순히 정답을 맞히는 것을 넘어 창의성, 유용성, 적절성 등 다양한 측면에서 평가가 필요합니다.
- 주관성: 특히 창의적 텍스트 생성에서는 '좋은' 결과에 대한 정의가 주관적일 수 있습니다.
- 일관성: 모델의 성능은 태스크, 도메인, 입력 프롬프트의 형식에 따라 크게 달라질 수 있습니다.
이러한 이유로, LLM 평가에서는 다양한 방법론이 병행되어 사용되며, 그중 대표적인 평가 접근법을 아래와 같이 정리할 수 있습니다.
2. LLM 정량적 평가
정량적 평가는 수치적 지표를 통해 모델의 성능을 객관적으로 측정하는 접근법입니다. 주요 평가 지표는 다음과 같습니다.
1) Accuracy
전체 예측 중 정답으로 판단된 비율입니다. 정형 데이터에 대한 분류 문제에 가장 널리 사용됩니다.
2) F1 Score
Precision(정밀도)과 Recall(재현율)의 조화 평균으로, 데이터 불균형 상황에서 유용합니다.
- Precision: 모델이 positive로 예측한 것 중 실제 positive인 비율
- Recall: 실제 positive 중 모델이 positive로 예측한 비율
3) BLEU (Bilingual Evaluation Understudy)
기계 번역 품질을 평가하기 위한 지표로, 생성된 문장이 참조 문장과 얼마나 유사한지 측정합니다. 단어 및 구 단위의 정확도에 중점을 둡니다.
4) ROUGE (Recall-Oriented Understudy for Gisting Evaluation)
주로 문서 요약 성능을 평가하며, 참조 요약과 생성 요약 간의 재현율 기반 유사도를 측정합니다.
선택 기준 정리
- 정형화된 출력 (예: 선택지 문제, 짧은 응답): Accuracy, F1 Score
- 비정형화된 출력 (예: 자연어 요약, 생성): BLEU, ROUGE
3. 모델 평가 방식에 따른 분류
1) 확률 기반 평가
모델이 각 후보 답변에 대해 부여한 확률값(log-likelihood)을 기반으로 평가하는 방식입니다. 계산이 빠르고 간단하지만, 실제 생성된 응답과는 차이가 있을 수 있습니다.
질문: 콜라독립 815는 코카콜라에서 만들었나요?
확률 결과: {' 아니오': -3.56..., ' 예': -3.57...}
"아니오"가 더 높은 확률값을 가지므로 정답으로 선택됩니다.
2) 생성 기반 평가
확률 기반의 평가는 말그대로 답변에 대한 확률적인 값일 뿐이지, 답변이 정확하게 지문 처럼 출력된 다는 것은 아닙니다. 어떤 경우는 평가에 있어 정확한 워딩이 들어간 결과를 선호 할 수 도 있습니다. 생성 기반 평가는 모델이 실제로 텍스트를 생성하게 한 후, 그 출력을 정답과 비교하는 방식입니다. 이 방법은 실제 사용 시나리오와 더 유사하지만, 평가 시간이 더 오래 걸리고 모델의 출력 형식이 일관되지 않을 수 있다는 단점이 있습니다.
{
"doc_id":10,
"doc":{
"question":"밀가루의 제분 후 인공적인 산화를 시키는 첨가물 중 국내에서 사용할 수 없는 것은?",
"answer":3,
"A":"Chlorine Dioxide",
"B":"Diluted Benzoyl Peroxide",
"C":"Potassium Bromate",
"D":"Ammonium Persulfate",
"Category":"Food Processing",
"Human Accuracy":0.0741
},
"target":"C",
[중략]
"resps":[["C\n해설:국내에서 사용할 수 없는 것은 Potassium Bromate이다"]],
[중략]
"exact_match":0.0
}
평가 로그인데, 모델의 출력을 보면 답변을 제대로 했지만 뒤에 추가적인 설명이 들어가서 답변이 일치하지 않는다고 판단해서 답변이 틀리다고 판단하였습니다. 이럴때는 맨 앞의 정답만 취하도록 정규식 필터링을 취해주면 됩니다. 다만 모델의 출력 형식이 일관되지 않으면 정규식을 작성할때 혼란을 겪을 수 있으니 모델의 출력이 일정할때 쓰면 좋은 방법인 것 같습니다.
추가로, 생성 기반의 평가는 직접 추론을 해서 결과를 가지고 평가를 하기 때문에 단순 확률값을 구하는 계산보다 훨씬 더 많은 리소스를 필요로 하게 됩니다. 따라서 생성 기반의 평가가 확률 기반의 평가 보다 평가 시간이 더 소요됩니다.
4. 정성적 평가
정량적 평가만으로는 모델의 모든 측면을 평가하기 어렵습니다. 정성적 평가는 인간의 판단을 통해 모델의 출력 품질을 더 종합적으로 평가하는 접근법입니다.
1) 인간 평가자 활용
확률 기반의 방법은 모델의 성능을 수치화하는데 유용하지만, 문법적으로 올바른 문장일지라도, 그 의미가 왜곡되거나 맥락에 맞지 않게 나오는 경우가 있기 때문에 생성된 텍스트의 품질을 보장하기 어렵습니다. 또한, 생성 기반의 평가는 생성한 문장을 직접 평가함으로써 더 현실적인 대안으로 보일 수 있지만, 생성된 문장의 품질을 평가하려면 문개 이해, 논리적 일관성, 창의성 등 다양한 요소를 고려해야 하는데, 단순히 필터링 기법이나 데이터 처리로는 평가 방식에 한계가 있습니다. 그렇기에 제일 신뢰 할 수 있는 방법은 사람이 직접 모델의 출력을 검토하는 것입니다. 다음과 같은 측면에서 평가가 이루어질 수 있습니다.
- 유용성: 모델의 응답이 사용자의 질문이나 요구를 얼마나 잘 해결했는지
- 정확성: 제공된 정보가 사실과 일치하는지
- 자연스러움: 응답이 인간이 작성한 것처럼 자연스러운지
- 맥락 이해: 질문의 맥락을 제대로 파악했는지
- 윤리성: 응답이 윤리적 기준을 준수하는지
하지만 사람이 직접 모델의 출력을 검토한다는 것은 너무 많은 시간과 비용이 소모된다는 단점이 있습니다. 이러한 한계를 해결하기 위해 등장한 것이 LLM as a Judge 입니다.
2) LLM as a Judge
최근에는 다른 LLM을 평가자로 활용하는 접근법이 주목받고 있습니다. 예를 들어, GPT-4와 같은 고성능 모델이 다른 모델의 출력을 평가하는 방식입니다. 이 방법은 인간 평가자를 동원하는 것보다 비용과 시간을 절약할 수 있고, 평가 결과의 신뢰성을 높일 뿐만 아니라, 인간 평가자가 가질 수 있는 주관적인 편향을 줄이는 데도 큰 도움이 됩니다.
결론
LLM 평가는 단순한 수치 비교를 넘어 다양한 관점과 방법론이 필요한 복잡한 작업입니다. 정량적 평가는 객관적인 비교를 가능하게 하지만, 언어의 복잡성과 창의성을 완전히 포착하지 못할 수 있습니다. 반면, 정성적 평가는 보다 종합적인 평가를 제공하지만, 주관성과 비용 문제가 있습니다. 최적의 LLM 평가 시스템은 이 두 접근법을 균형 있게 결합하여, 모델의 기술적 성능뿐만 아니라 실제 사용 환경에서의 유용성과 적합성까지 종합적으로 고려해야 합니다. 앞으로 LLM 기술이 발전함에 따라, 이러한 평가 방법론 역시 계속해서 진화할 것으로 기대됩니다.
다음에는 이러한 평가 방법론을 직접 적용하고 비교해보는 시간을 가져보겠습니다.
참고자료
https://devocean.sk.com/blog/techBoardDetail.do?ID=166716&boardType=techBlog
'LLMops' 카테고리의 다른 글
[LLM 서빙] vLLM vs sglang (0) | 2025.04.04 |
---|---|
[LLMops] Opik으로 LLM 평가하기 (0) | 2025.03.28 |
[LLMops] 오픈소스 LLM 평가 프레임워크 opik (0) | 2025.03.12 |