Generator

Dahun Yoo·2026년 8월 29일

Deep Eval

목록 보기
9/9
post-thumbnail

이번 포스트에서는 generator 평가방법에 대해 기재한다.

Generator 란?

RAG는 보통 retriever와 generator 두 컴포넌트로 나누어 생각한다.

사용자 질문
   ↓
retriever: 질문에 필요한 문서를 찾는다.
   ↓
retrieval_context: 실제로 검색된 문서 목록
   ↓
generator: 질문과 검색 문서를 읽고 사용자에게 보여 줄 답변을 만든다.
   ↓
actual_output: 최종 답변

generator는 retriever가 가져온 기반문서들을 사용자의 질문에 맞는 자연스러운 답변으로 재구성한다.

retriever가 좋은 문서를 찾아도, generator는 실패할 수 있다. 질문과 무관한 정보를 답하거나, 답변의 내용을 바꾸거나 내용 자체를 누락시킬 수 있기 때문이다. 반대로 generator가 검색 문서를 충실히 요약했어도, retrieve가 잘못된 정책을 가져왔다면 최종 답변은 실제 정책과 다를 수 있다.

Generator 평가는, “검색 결과가 옳은가?” 가 아니라 정상으로 확인된 검색결과를 generator가 질문에 맞고, 근거에 충실하며, 필요한 정보가 빠지지 않는 답변으로 만들었는가? 를 평가해야한다. 따라서 가능하면 검증된 retrieval_context를 고정시켜놓고 평가해야한다.

실제 서비스에서는 LLM이 generator 역할을 맡는 경우가 많다.

Generator 평가를 쉽게 하기 위해서는, 검토가 끝난 정상적인 retrieval_context 를 모든 사례에 동일하게 넣고 generator가 만든 actual_output을 확인해야한다.

Generator 평가 메트릭

  • AnswerRelevancyMetric : 질문에 직접 답하는가?
  • FaithfulnessMetric : 답변의 주장이 검색 근거로 뒷받침되는가?
메트릭평가 질문비교 대상낮을 때 먼저 조사할 곳
AnswerRelevancyMetric질문에 직접 답했는가?input ↔ actual_outputprompt, 주제 선택
FaithfulnessMetric답변의 주장이 검색 문서에 근거하는가?actual_output ↔ retrieval_contextgrounding, hallucination
GEval필요한 정책과 다음 행동을 빠뜨리지 않았는가?actual_output ↔ expected_output답변 구성 로직

1. AnswerRelevancyMetric

답변이 사용자 질문을 제대로 다루고 있는가?
필수 항목은 input과 actual_output이다.

질문:
지난주에 산 상품을 환불하려면 어떻게 해야 하나요?

답변:
일반 배송은 결제 완료 후 2~3일 안에 도착합니다.

위 예시에 대해서는 환불 질문에 대해서는 답하지 않고 있어서 낮은 점수가 예상된다.

제약 사항

구매 후 90일 이내에 환불할 수 있습니다.

반대로 위와 같은 답변은 관련성이 높게 나올 수 있다. 왜냐하면 환불 질문에 직접 답했기 때문이다. 주장이 틀렸냐 에 관해서는 AnswerRelevancy가 판단하지 않는다.
즉, 관련성이 높냐 라는 것에 대해서는 사실인지 아닌지, 필요한 정보가 모두 있는지 와는 다르기 때문이다.

관련성이 낮다면 prompt의 질문 방식을 수정해봐야할 필요가 있다.

2. FaithfulnessMetric

generator가 검색 문서에 없는 내용을 만들어냈는가?
필수 항목은 input, actual_output, retrieval_context 이다.

  1. retrieval_context 가 근거가 되는 사실을 가져온다.
  2. actual_output 에서 검증 가능한 주장을 추출한다.
  3. 각 주장이 검색 근거로 뒷받침 되는지를 판단한다.

예를들어 아래의 검색문서와 답변이 있다고 하였을 때,

검색 문서 : 구매 후 30일 이내에는 전액 환불을 요청할 수 있습니다.
답변 : 구매 후 90일 이내에는 전액 환불을 요청할 수 있습니다.

질문에는 직접 답을 했으니, AnswerRelevancy는 높을 수 있으나, 검색근거의 30일과는 충돌하므로 Faithfulness는 낮게 나오게 될 것이다.

제약 사항

Faithfulness의 한계는 아래와 같다.

검색 문서 자체가 실제로 옳은지는 판단하지 않는다.

잘못 검색된 문서:
구매 후 90일 이내에 환불할 수 있습니다.

답변:
구매 후 90일 이내에 환불할 수 있습니다.

이 경우에는 검색된 문서를 기반으로 충실히 답변했으므로 Faithfulness가 높을 수 있다. 실제 정책의 정확성은 retriever 평가로 확인해야한다.

답변이 빠뜨린 정보에는 둔감할 수 있다.

검색 문서:
- 30일 이내
- 주문 번호와 구매일 필요
- 고객센터로 요청

답변:
30일 이내에 환불할 수 있습니다.

답변 자체에는 주장이 있고 주장에 근거가 포함되어있다면 Faithfulness 자체는 높을 수 있는데, 주문정보를 포함해야하고, 고객센터를 통해야한다는 내용은 누락되어있다. 이러한 경우를 따지기 위해서는 도메인마다 요구사항이 다를 수 있으므로 GEval 을 이용한 custom metric을 만들어서 사용해야한다.

Faithfulness가 낮다면 grounding instruction (system prompt) 나 가져온 context의 사용 방법을 확인해야할 필요가 있다.

profile
QA Engineer

0개의 댓글