e2e Evaluation - 얼마나 정확한 답변을 생성했는가?
개요
이번 강의에서는 정확한 답변 여부를 0/1로만 평가하는 방식에서 더 나아가, 얼마나 정확한 답변을 생성했는지를 0~5점 척도로 평가하는 e2e Evaluation 방법을 다룹니다.
단순 정답 여부가 아니라, 답변의 정확성, 문서 기반성, 완전성, 관련성까지 함께 평가하도록 프롬프트와 평가기를 개선합니다.
1. 바이너리 평가에서 점수 평가로 확장
기존 방식
•
이전에는 정답이면 1, 아니면 0으로 평가했습니다.
•
예시:
◦
is_final_answer_correct: 최종 답변이 맞는지 여부만 확인
변경 방식
•
이번에는 0~5점 범위로 답변 품질을 평가합니다.
•
함수 이름도 is_final_answer_correct 대신 is_final_answer_accurate처럼 바꿔서,
◦
단순히 옳고 그름이 아니라
◦
얼마나 정확한지를 측정하도록 합니다.
2. 수정해야 할 세 가지
강의를 위해 에이전트 평가 로직에서 다음 3가지를 변경합니다.
1) 프롬프트 수정
•
기존의 0/1 평가 대신 1~5점 평가를 요청하도록 변경
2) Structured Output 변경
•
기존에는 correctness 같은 이진 결과를 반환했지만,
•
이제는 score 형태로 1~5점을 반환하도록 수정
3) Evaluator에 문서 정보 추가
•
에이전트가 문서를 기반으로 답변했는지 보기 위해
•
평가 프롬프트에 Retrieved Documents를 함께 넣어야 함
3. Expert Evaluator 프롬프트 설계
페르소나
•
Expert Evaluator(전문 평가자) 역할을 부여
•
질의응답형 AI 에이전트의 답변 품질을 평가
평가에 사용되는 입력
•
사용자 질문
•
에이전트 답변
•
참조 문서
•
Ground Truth 정답
평가 항목 5가지
1.
Correctness
•
답변이 옳은지 평가
2.
Groundedness
•
답변이 문서에 기반했는지 평가
3.
Relevance
•
답변이 질문과 관련 있는지 평가
4.
Completeness
•
질문의 여러 요소를 빠짐없이 답했는지 평가
5.
Usefulness / Redundancy 방지
•
불필요한 말, 쓸데없는 추가 설명이 없는지 평가
출력 형식
•
각 항목을 종합하여 0~5점의 Overall Grade / Score를 부여
4. Retrieved Documents를 평가에 넣는 방법
에이전트 실행 결과를 보면:
•
최종 답변은 보통 마지막 AI 메시지
•
그 직전의 툴 메시지(tool message) 안에 문서가 포함됨
•
따라서 평가 시 문서 내용은 다음처럼 가져올 수 있습니다.
Retrieved Docs = output에서 최종 답변 이전의 tool message content
Python
복사
5. 평가 결과 분석과 문제점 파악
낮은 점수 사례 확인
트레이싱/대시보드에서 평가 결과를 확인하면 다음과 같은 문제를 발견할 수 있습니다.
•
Groundedness 점수 하락
◦
문서에 없는 내용이 답변에 포함됨
•
Relevance 점수 하락
◦
질문과 직접 관련 없는 불필요한 부연 설명이 많음
대표적인 문제
•
문서에 없는 내용:
◦
예: 비상연락처, 비고, 예산 한도 등
•
문제의 원인:
◦
에이전트가 문서를 보고 추론적으로 내용을 덧붙임
◦
즉, 할루시네이션 또는 과잉 설명이 발생
6. 프롬프트 개선 과정
첫 번째 수정
•
“information을 기반으로 가져와라” 같은 식으로 지시 추가
결과
•
오히려 점수가 낮아짐
•
즉, 단순히 표현을 바꾸는 것만으로는 개선되지 않음
두 번째 수정
•
다음 내용을 추가:
◦
다른 기타 정보를 추가하지 말라
◦
문서에 없는 내용은 언급하지 말라
결과
•
최종적으로 문제를 크게 줄이고 만점 결과를 얻음
•
다만, 일부 케이스에서는 여전히 문서 누락 등으로 점수가 낮게 나올 수 있음
7. 평가와 개선의 균형: 100%를 목표로 하지 말 것
핵심 경고
•
100% 정확도를 무조건 목표로 하면 위험함
•
평가 데이터셋에만 과도하게 맞추는 것은 **오버피팅(overfitting)**과 비슷함
이유
•
골든 데이터셋에만 맞춘 프롬프트는:
◦
훈련 데이터에는 잘 맞지만
◦
새로운 질문에는 오히려 약해질 수 있음
실무 관점
•
현업에서는 완벽한 100%보다,
◦
현실적으로 충분히 높은 수준
◦
예: 93% 정도의 목표
◦
가 더 적절할 수 있음
8. 점수 기반 평가 기법의 변형
1) 조건 충족 시 1점씩 누적하는 방식
•
각 항목을 만족하면 1점씩 추가
•
예:
◦
답변이 맞으면 1점
◦
문서를 잘 가져왔으면 1점
◦
문서 기반이면 1점
◦
질문을 모두 커버하면 1점
◦
불필요한 내용이 없으면 1점
2) 가중치 기반 평가
•
모든 항목을 동일하게 보지 않고 중요도에 따라 가중치를 다르게 줌
•
예:
◦
정확성과 문서 기반성에는 높은 가중치
◦
부연 설명 여부에는 낮은 가중치
의의
•
이런 방식으로 단순한 “정답 여부”를 넘어서
•
얼마나 품질 좋은 답변인지를 더 세밀하게 평가 가능
9. 문서 매칭 평가는 LLM이 아니라 문자열 비교로 충분한 경우
질문
•
“올바른 문서를 가져왔는지도 평가해야 하지 않나?”
강의의 결론
•
그런 항목은 굳이 LLM 평가를 쓸 필요가 없음
•
이유:
◦
문서 소스와 에이전트 결과가 결국 문자열(string) 이기 때문
◦
assert 같은 방식으로 True/False 비교 가능
정리
•
LLM이 필요한 경우
◦
답변 품질, 표현의 자연스러움, 완성도 등 주관적 판단이 필요한 항목
•
LLM이 불필요한 경우
◦
단순 문자열 일치, 특정 문서 포함 여부 같은 객관적 비교
10. 핵심 정리
이번 강의의 핵심
•
e2e Evaluation에서 단순 정답 여부가 아니라
◦
정확도
◦
문서 기반성
◦
관련성
◦
완전성
◦
불필요한 설명 여부
를 함께 본다.
•
이를 위해:
◦
프롬프트를 0/1 평가 → 0~5점 평가로 바꾸고
◦
Retrieved Documents를 평가 입력에 포함시키며
◦
결과를 보며 프롬프트를 반복 개선한다.
실무 포인트
•
평가 점수만 높이는 데 집착하면 과적합된 에이전트가 될 수 있음
•
따라서 골든 데이터셋에 대한 성능과 일반화 가능성 사이의 균형이 중요
•
다음 단계에서는 LLM 없이도 비교 가능한 항목들을 어떻게 평가할지 다룰 예정