LLM-as-Judge로 AI 제품 평가하기


AI 제품에서 평가 시스템의 중요성
AI 제품, 특히 대형 언어 모델(Large Language Model, LLM) 기반 제품의 성공을 위해서는 체계적이고 강력한 평가 시스템이 필수적입니다. 그 이유는 다음과 같습니다.
1. 지속적인 성능 개선: 평가 시스템은 AI 제품의 성능을 지속적으로 모니터링하고 개선할 수 있게 합니다. 다양한 수준의 평가 체계를 통해 제품의 약점을 파악하고 개선할 수 있습니다.
2. 빠른 반복 가능: 평가 시스템을 통해 품질을 신속하게 평가하고, 문제를 디버깅하며, 시스템 행동을 변경할 수 있어 개발 주기를 단축시킬 수 있습니다.
3. 데모 수준 극복: 체계적인 평가 시스템을 통해 프로덕션 환경에서의 성능을 측정하고 개선할 수 있습니다.
4. 고품질 데이터 생성: 평가 과정에서 생성된 데이터는 모델의 파인 튜닝에 활용될 수 있으며, 이는 복잡한 문제 해결에 도움이 됩니다.
5. 효율적인 디버깅: 평가 시스템은 오류를 신속하게 파악하고 수정할 수 있게 해줍니다. 이는 제품의 안정성과 신뢰성 향상에 기여합니다.
6. 사용자 경험 향상: A/B 테스트 등을 통해 AI 제품이 원하는 사용자 행동이나 결과를 유도하는지 확인할 수 있습니다.
7. 객관적인 성능 측정: 체계적인 평가 시스템은 AI 제품의 성능을 객관적으로 측정할 수 있게 해줍니다. 이는 제품 개선과 투자 결정의 중요한 근거가 됩니다.
평가 시스템은 AI 제품의 성공을 위한 핵심 요소입니다. 따라서 AI 제품 개발 시 평가 시스템 구축에 충분한 시간과 자원을 투자하는 것이 매우 중요합니다.
LLM을 활용한 AI 제품 평가 자동화: 방법과 한계
평가 작업은 이토록 중요하지만, 사람이 수행할 경우 많은 인건비와 시간이 소요됩니다. 또한, 평가자마다 기준이 조금씩 다를 수 있어 일관성 문제가 발생할 수 있습니다. 이러한 이유로 평가 작업의 상당 부분을 LLM을 통해 자동화하려는 시도가 있습니다.
2023년 발표된 논문 ‘G-EVAL: NLG Evaluation using GPT-4 with Better Human Alignment’에서는 G-EVAL이라는 평가 프레임워크를 제안합니다. G-EVAL의 과정은 다음과 같습니다.
1. 평가 작업 정의 및 평가 기준 설정
먼저 평가 작업을 정의하고 평가 기준을 설정합니다. 예를 들어, 텍스트 요약 작업의 경우 다음과 같은 평가 기준을 사용할 수 있습니다.
일관성(Coherence): 모든 문장의 집합적 품질
유창성(Fluency): 문법적 정확성과 자연스러움
관련성(Relevance): 원본 텍스트와의 관련성
2. 생각의 사슬(Chain of Thought, CoT) 방식 적용
LLM을 활용한 평가 작업 수행을 위해 특화된 지시문을 생성합니다. 이 과정에서 CoT 방식을 도입하여 LLM이 자체적인 추론 과정을 상세히 기술하도록 유도합니다. 예를 들어, 텍스트 요약의 일관성 평가를 위한 CoT 프롬프트는 다음과 같이 구성될 수 있습니다:
1. 뉴스 기사를 주의 깊게 읽고 주요 주제와 핵심 포인트를 식별합니다.
2. 요약문을 읽고 뉴스 기사와 비교합니다. 요약문이 뉴스 기사의 주요 주제와 핵심 포인트를 잘 다루고 있는지, 명확하고 논리적인 순서로 제시되어 있는지 확인합니다.
3. 평가 기준에 따라 1에서 5까지의 점수를 부여합니다.
3. 평가 수행 평가 작업 정의
CoT 프롬프트, 입력 텍스트(예: 뉴스 기사) 및 평가 대상 텍스트(예: 요약문)를 LLM에 입력하여 평가를 수행합니다. LLM은 평가 기준에 따라 점수를 출력합니다.
4. 확률 기반 점수 조정
LLM이 산출한 각 점수의 확률을 활용하여 최종 평가 점수를 산정합니다. 구체적으로, 각 가능한 점수에 LLM이 부여한 확률을 가중치로 사용하여 최종 점수를 계산합니다. 이 과정은 다음과 같은 수식으로 표현할 수 있습니다.
이 방법은 더 세밀하고 연속적인 점수를 제공하여 평가의 정확성을 높입니다.
연구 결과에 따르면, G-EVAL 프레임워크를 활용한 평가는 사람의 평가와 높은 유사성을 보였습니다. 스피어만 상관계수 0.514를 기록하여 기존의 모든 평가 방법을 크게 상회했습니다. (반면 BLEU, ROUGE 등 전통적인 평가 지표는 사람의 평가와 낮은 상관성을 보이는 경우가 많습니다.) 이러한 결과는 LLM이 사람의 평가 작업을 효과적으로 대체할 수 있는 가능성을 시사합니다.
LLM을 평가에 활용할 때 고려해야 할 주의사항은 무엇일까요? 2023년에 발표된 ‘Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena’논문에서는 다양한 챗봇을 공정하게 비교하기 위한 두 가지 방법, 멀티 턴 벤치마크인 MT-Bench와 크라우드소싱 배틀 플랫폼인 챗봇 아레나를 제안했습니다. 이 연구는 또한 LLM을 평가자로 활용할 때 발생할 수 있는 여러 한계점을 지적하며, 이러한 문제들에 대한 해결 방안도 함께 제시하고 있습니다. 내용은 다음과 같습니다.
1. 위치 편향(Position Bias)
문제점: LLM은 여러 개의 답변 후보 중 가장 나은 것을 고르게 할 때 특정 위치에 있는 답변을 더 선호하는 경향이 있습니다. 예를 들어 상당수의 LLM은 첫 번째로 제시된 응답을 선호합니다.
해결책: 응답의 순서를 바꾸어 평가하고 결과를 평균 내는 방법을 사용합니다. 또한, 소수(Few-shot)의 예제를 함께 제공하는 것도 일관성 향상에 도움을 줍니다.
2. 장황함 편향(Verbosity Bias)
- 문제점: LLM은 더 긴 답변을 더 높은 품질로 평가하는 경향이 있습니다. 이는 간결하고 명확한 답변이 과소평가될 수 있음을 의미합니다.
3. 자기 강화 편향(Self-enhancement Bias)
- 문제점: 일부 LLM은 자신이 생성한 답변을 더 긍정적으로 평가할 수 있습니다. 그러나 실험 결과를 볼 때 모든 모델이 이러한 편향을 가진다고 판단하기는 어렵습니다.
4. 제한된 추론 능력(Limited Reasoning Ability)
문제점: LLM은 수학과 같이 복잡한 추론을 필요로 하는 질문에 대해 일관되게 정확한 평가를 내리지 못할 수 있습니다.
해결책: CoT 방식을 사용하여 LLM의 추론 과정을 단계별로 유도해볼 수 있습니다. 그러나 이런 경우에도 LLM은 여전히 실수를 범하는 것으로 나타났습니다. 연구진은 LLM 평가자의 답변을 먼저 독립적으로 생성한 다음, 평가 지시문에 참조 답변으로 첨부하는 참조 가이드 방식으로 평가했습니다. 이 방법을 통해 실패율이 대폭 개선되었습니다.
지금까지 논문에서 제시된 이론적인 LLM 평가 프레임워크, 한계, 그리고 그 해결책에 대해 알아보았습니다. 이제 실무에서 사용할 수 있는 오픈소스 솔루션과 그에 구현된 평가 지표들에 대해 살펴보겠습니다.
평가 지표와 오픈소스 솔루션
검색 증강 생성(Retrieval Augmented Generation, RAG)은 AI 제품의 인기 있는 사용 사례 중 하나이지만, 평가하기는 까다롭습니다. RAG 기반 챗봇의 답변은 검색과 생성 두 단계를 거쳐 만들어지며, 이에 따라 평가 지표도 각 단계별 또는 종합적으로 정의됩니다. 이러한 지표들을 통해 사용자는 검색의 적절성, 답변 생성의 질, 그리고 전체 RAG 시스템의 성능을 종합적으로 평가할 수 있습니다.
RAG 시스템의 평가 지표를 이해하기 위해서는 먼저 일반적인 검색 분야에서 사용되는 지표들을 살펴보는 것이 도움이 됩니다. 이러한 지표들은 RAG 맥락에 쉽게 적용할 수 있기 때문입니다. 주요 지표는 다음과 같습니다.
관련성(Relevance)
정의: 각 검색 결과가 사용자의 의도나 질의와 일치하는 정도
측정 방법: 주로 0–1, 0–5 또는 0–10 척도로 평가되며, 전문가나 사용자 피드백을 통해 측정
정밀도(Precision)
정의: 검색된 결과 중 관련성 있는 항목의 비율
계산식: (관련성 있는 검색 결과 수) / (전체 검색 결과 수)
재현율(Recall)
정의: 관련성 있는 전체 항목 중 실제로 검색된 항목의 비율
계산식: (검색된 관련 항목 수) / (전체 관련 항목 수)
RAGAS
RAGAS는 RAG 파이프라인에 대한 자동화된 평가를 지원하는 오픈소스 프레임워크입니다. 이 프레임워크는 다양한 평가 지표를 제공하며, 많은 지표들은 질문에 대한 정답(Ground Truth) 답변이 미리 존재함을 가정하고 이를 LLM이 생성한 답변과 비교하여 성능을 측정합니다. 이제 주요 지표들을 하나씩 살펴보겠습니다.
컨텍스트 정밀도 (Context Precision)
컨텍스트 정밀도는 검색 결과 내에서 정답과 관련된 항목(청크)들이 상위에 얼마나 잘 위치하는지를 평가하는 지표입니다. 이 지표는 주어진 질문, 정답, 검색 결과를 바탕으로 계산되며, 0에서 1 사이의 값을 가집니다. 점수가 높을수록 정답과 관련된 정보가 검색 결과 상위에 더 많이 존재함을 나타냅니다.
컨텍스트 정밀도는 다음과 같은 단계로 계산됩니다.
1. 청크별 관련성 평가: 주어진 질문에 대해 검색 결과의 각 청크가 관련 있는지 여부를 판단합니다.
2. 상위 \(k\) 정밀도 계산: 상위 \(k\) 정밀도(Precision@k)는 상위 \(k\)개의 청크에 대한 정밀도를 의미합니다. 전체 청크의 개수가 \(K\)일 때, \(k\)는 1부터 \(K\)까지 각각의 상위 \(k\) 정밀도를 계산합니다.
3. 평균 정밀도 계산: 최종 컨텍스트 정밀도 점수를 얻기 위해 모든 상위 \(k\) 정밀도 값의 가중 평균을 계산합니다. 평균을 사용하는 이유는 다양한 순위에 대한 정밀도를 종합적으로 고려하고, 개별 순위의 변동에 덜 민감한 안정적인 지표를 얻기 위함입니다.
계산 과정을 수식으로 표현하면 다음과 같습니다.
컨텍스트 재현율 (Context Recall)
컨텍스트 재현율은 검색 결과가 주어진 정답과 얼마나 일치하는지를 측정하는 지표입니다. 이 지표는 정답과 검색 결과를 바탕으로 계산되며, 0에서 1 사이의 값을 가집니다. 점수가 높을수록 정답에 포함된 정보가 검색 결과에 더 많이 존재함을 나타냅니다.
컨텍스트 재현율을 계산하기 위해서는 다음 단계를 따릅니다.
1. 정답 분해: 주어진 정답을 개별 문장으로 나눕니다.
2. 정답 문장별 포함 여부 평가: 정답의 각 문장이 검색 결과에 포함될 수 있는지 확인합니다.
3. 재현율 계산: 포함된 문장의 수를 전체 문장의 수로 나누어 재현율 값을 계산합니다.
계산 과정을 수식으로 표현하면 다음과 같습니다.
답변 정확도 (Answer Correctness)
답변 정확도는 생성된 답변의 정확도를 정답과 비교하여 평가하는 지표입니다. 이 지표는 정답과 검색 결과를 바탕으로 계산되며, 0에서 1 사이의 값을 가집니다. 점수가 높을수록 생성된 답변이 정답과 더 일치하거나 유사함을 의미합니다.
답변 정확도는 두 가지 중요한 측면을 고려합니다.
1. 사실적 정확도: 답변에 포함된 사실 정보의 정확도
2. 의미적 유사도: 생성된 답변과 정답 간의 의미적 유사도
이 두 측면은 가중치 방식으로 결합되어 최종 점수를 산출합니다. 사용자는 필요에 따라 ‘임계값’을 사용하여 결과 점수를 이진법(0 또는 1)으로 반올림할 수 있습니다.
답변 정확도를 계산하기 위해서는 다음 단계를 따릅니다.
1. 사실적 정확도 계산
TP (진양성): 정답과 생성된 답변 모두에 존재하는 사실
FP (위양성): 생성된 답변에만 존재하는 사실
FN (위음성): 정답에만 존재하는 사실
이를 바탕으로 정밀도와 재현율의 조화 평균인 F1 점수를 계산하여 사실적 정확도를 수치화합니다.
2. 의미적 유사도 계산: 생성된 답변과 정답 간의 의미적 유사도를 계산합니다.
3. 최종 점수 계산: 사실적 정확도와 의미적 유사도의 가중 평균을 계산하여 최종 점수를 도출합니다. 사용자는 각 요소의 가중치를 변경할 수 있습니다.
신뢰성 (Faithfulness)
신뢰성은 생성된 답변과 검색 결과 간의 사실적 일관성을 측정하는 지표입니다. 답변이 신뢰성 있다고 판단되려면, 답변에 포함된 모든 주장이 검색 결과에서 추론 가능해야 합니다. 이 지표는 정답과 검색 결과를 기반으로 계산되며, 0에서 1 사이의 값을 가집니다. 점수가 높을수록 답변에 환각으로 인한 요소가 적다고 판단할 수 있습니다.
신뢰성을 계산하기 위해서는 다음 단계를 따릅니다.
1. 생성된 답변을 개별 주장으로 나눕니다.
2. 각 주장이 검색 결과로부터 추론 가능한지 확인합니다.
3. 추론 가능한 주장의 수를 전체 주장 수로 나누어 점수를 계산합니다.
계산 과정을 수식으로 표현하면 다음과 같습니다.
LangChain
LangChain은 유명한 LLM 애플리케이션 개발 프레임워크로, 기본적인 평가 기능을 제공합니다. 이 프레임워크는 평가 기준을 지시문 형태로 LLM에 제시하여 자동 평가를 수행할 수 있도록 합니다. 정확도, 간결성, 유용성, 유해성 등의 일반적인 기준에 대해서는 이미 준비된 프롬프트가 있어 쉽게 사용할 수 있습니다.
LangChain은 사용자 지정 기준을 통한 맞춤형 평가도 지원합니다. 예를 들어, 생성된 답변이 5세 아이에게 얼마나 이해하기 쉬운지 평가하도록 설정할 수 있습니다. LangChain의 주요 특징 중 하나는 단순한 평가 점수 제공을 넘어, 해당 점수에 대한 추론 과정도 함께 기록한다는 점입니다. 이를 통해 평가 결과의 투명성을 높이고, 사용자가 평가 과정을 더욱 심도 있게 이해할 수 있게 합니다.
LLM을 활용한 평가 기능을 제공하는 다른 오픈소스 솔루션으로는 ARES, TruLens 등이 있습니다. 각 프레임워크에 대한 비교 및 요약은 아래 표를 참조하세요.
이 글에서 우리는 AI 제품에서 평가 시스템의 중요성, LLM을 활용한 평가 자동화의 방법과 한계, 그리고 다양한 평가 지표와 오픈소스 솔루션에 대해 살펴보았습니다.
LLM 기반 AI 제품 평가는 기술의 발전과 함께 계속해서 진화할 것입니다. 개발자와 연구자들은 이러한 평가 도구와 방법론을 적극 활용하여 더 나은 AI 제품을 만들어 나가야 할 것입니다. 동시에, 평가 과정에서 발생할 수 있는 편향과 한계점을 인식하고 이를 보완하기 위한 노력도 지속되어야 합니다.
참고 문헌
G-Eval: NLG Evaluation Using GPT-4 with Better Human Alignment (논문, 코드)
Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (논문, 코드)
RAGAS: Automated Evaluation of Retrieval Augmented Generation
Deploy Foundation Models with Amazon SageMaker, Iterate and Monitor with TruEra
Evaluate LLMs and RAG a Practical Example Using Langchain and Hugging Face
Subscribe to my newsletter
Read articles from Jonas Kim directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Jonas Kim
Jonas Kim
Sr. Data Scientist at AWS