Search

e2e Evaluation - 얼마나 정확한 답변을 생성했는가?

Number
11

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 없이도 비교 가능한 항목들을 어떻게 평가할지 다룰 예정