통계 기반 평가
통계 기반 평가 (Statistical Evaluation)
Haystack가 제공하는 다양한 통계 기반 평가 지표를 살펴봐요. 이 페이지에서는 통계 기반 평가가 무엇인지, 그리고 Haystack 안에서 어떤 옵션을 쓸 수 있는지 설명할게요.
출처: 공식문서
소개 (Introduction)
Haystack의 통계 기반 평가는 정답 라벨(ground truth labels)과 파이프라인의 예측 결과를 비교하는 방식이에요. 주로 precision이나 recall 같은 지표를 사용하죠. Retrieval-Augmented Generative(RAG) 파이프라인 안에서 Retriever 컴포넌트를 평가할 때 자주 쓰이는데, 관련 문서의 정답 라벨만 준비되어 있다면 어떤 파이프라인에도 이 방법을 적용할 수 있어요.
추출형 질의응답(extractive question answering) 파이프라인이 예측한 답변을 평가할 때는, 기대되는 답변의 정답 라벨을 파이프라인의 예측값과 비교합니다.
다만 Haystack의 Generator 컴포넌트로 LLM이 생성한 답변을 평가할 때는 모델 기반 평가를 권장해요. 모델 기반 평가는 의미적 유사성이나 일관성(coherence) 같은 척도를 반영할 수 있어서, 정답 라벨과 표현이 달라도 괜찮은 예측을 평가하기에 더 적합하거든요.
Haystack의 통계 기반 평가 파이프라인 (Statistical Evaluation Pipelines in Haystack)
Haystack에서 통계 기반 평가를 수행하는 방법은 두 가지예요. 둘 다 파이프라인과 Evaluator 컴포넌트를 활용하죠.
- 평가 파이프라인을 독립적으로 만들고 실행할 수 있어요. 이 경우 평가 파이프라인에 필요한 입력을 직접 넣어줘야 합니다. RAG 파이프라인과 평가 파이프라인을 분리하면, RAG 파이프라인의 결과를 저장해 두고 나중에 다른 평가 지표를 마음껏 시도해 볼 수 있어 RAG 파이프라인을 매번 다시 실행할 필요가 없어요. 그래서 이 방법을 권장합니다.
- 다른 방법으로는 RAG 파이프라인 끝에 Evaluator를 붙이는 방식이에요. 이렇게 하면 RAG 파이프라인과 평가를 하나의
pipeline.run()호출 안에서 함께 실행하게 됩니다.
검색된 문서에 대한 통계 기반 평가 (Statistical Evaluation of Retrieved Documents)
DocumentRecallEvaluator
Recall은 일련의 쿼리에 대해 올바른 문서가 검색 결과에 포함되었는지를 측정해요. 단일 쿼리 기준으로 보면 출력은 이진(binary)입니다. 올바른 문서가 선택 결과에 들어 있거나, 아니거나 둘 중 하나죠. 전체 데이터셋으로 보면 recall 점수는 0에서 1 사이의 값이 됩니다. 0이면 어떤 쿼리도 올바른 문서를 검색해내지 못했다는 뜻이고, 1이면 모든 쿼리가 올바른 문서를 검색해냈다는 뜻이에요.
어떤 시나리오에서는 하나의 쿼리에 올바른 문서가 여러 개일 수 있어요. 이럴 땐 평가자의 mode 파라미터로 두 가지 동작을 고르면 됩니다. single_hit(기본값)은 올바른 문서 중 하나라도 검색되었는지 보고, multi_hit은 한 쿼리에 대한 올바른 문서가 몇 개나 검색되었는지를 반영해요.
한 가지 주의할 점은, recall이 Retriever가 반환하는 문서 수에 영향을 받는다는 거예요. Retriever가 반환하는 문서가 적으면 올바른 문서를 찾기 어렵다는 뜻이 되죠. 그래서 평가하려는 파이프라인에서 Retriever의 top_k를 적절한 값으로 설정해 두는 것을 잊지 마세요.
DocumentMRREvaluator (Mean Reciprocal Rank)
평균 역순위(MRR)는 recall과 달리 **위로 올바르게 검색된 문서의 위치(rank)**를 고려합니다. 쿼리 하나가 관련성 수준이 다른 여러 응답을 만들어낸다는 점을 반영하기 위해서예요. recall처럼 MRR도 0(일치 없음)에서 1(모든 쿼리에 대해 시스템이 올바른 문서를 최상위 결과로 검색) 사이의 값을 가질 수 있어요. 자세한 내용은 Mean Reciprocal Rank 위키를 참고하세요.
DocumentMAPEvaluator (Mean Average Precision)
평균 정밀도(mAP)는 MRR과 비슷하지만, 올바르게 검색된 모든 문서의 위치를 고려한다는 점이 달라요. MRR처럼 mAP도 0(일치 없음)에서 1(시스템이 모든 상위 결과에 올바른 문서를 검색) 사이의 값을 가질 수 있고, 검색해야 할 올바른 답이 하나보다 많을 때 특히 유용합니다. 자세한 내용은 Mean Average Precision 위키를 참고하세요.
추출되거나 생성된 답변에 대한 통계 기반 평가 (Statistical Evaluation of Extracted or Generated Answers)
AnswerExactMatchEvaluator
정확 일치(Exact match)는 예측된 답변(Answer)이 정답 답변과 완전히 동일한 경우의 비율을 측정해요. 예를 들어 주석이 달린 질문-답변 쌍이 "What is Haystack?" + "A question answering library in Python"이라고 해볼게요. "A Python question answering library"처럼 예측된 답변도 기대 답변과 100% 일치하지 않으면 0점을 받습니다.
더 알아보기 (Learn more)
- 통계 기반 평가 (Statistical Evaluation) — 원문 문서.
- 모델 기반 평가 (Model-Based Evaluation) — LLM으로 답변을 평가하는 방법.