AI 평가 시리즈 (04): RAG 평가 — RAGAS의 4가지 지표 실습 및 직관에 반하는 발견
요약
RAG 평가 프레임워크인 RAGAS의 4가지 지표를 실습하고, 문서 정제 여부가 점수에 미치는 영향을 분석합니다. 실험 결과, 단순한 질문과 작은 데이터셋에서는 문서 품질 차이가 지표에 반영되지 않을 수 있음을 발견했습니다.
핵심 포인트
- RAGAS는 검색(Retrieval)과 생성(Generation) 모듈을 각각 측정하는 4가지 지표를 제공함
- LLM의 특성상 Context Precision이 노이즈 유무가 아닌 LLM의 유용성 판단을 측정할 수 있음
- 데이터셋 규모가 작거나 질문이 직접적일 경우 문서 품질 차이가 지표에 나타나지 않음
- 문서 품질 차이를 확인하려면 멀티홉 질문과 대규모 지식 베이스가 필요함
RAGAS의 4가지 지표
RAGAS (RAG Assessment)는 RAG 시스템을 위해 특별히 설계된 평가 프레임워크입니다. 이 프레임워크의 4가지 지표는 RAG 파이프라인의 서로 다른 구성 요소를 각각 측정합니다:
Faithfulness (충실도)
→ 답변이 검색된 컨텍스트 (Context) 내에 머무르는가?
→ 낮은 점수 = 환각 (Hallucination) 위험; 모델이 검색 대신 내용을 채워 넣고 있음
...
4가지 지표는 RAG의 두 모듈로 나뉩니다: Retrieval (검색) 모듈은 Context Precision (컨텍스트 정밀도) + Context Recall (컨텍스트 재현율)을 측정하며, Generation (생성) 모듈은 Faithfulness (충실도) + Answer Relevancy (답변 관련성)를 측정합니다.
실험 설계
지식 베이스 (Knowledge base): Python 개발 표준 문서 (명명 규칙, 예외 처리, 성능, 테스트, 로깅). 8개의 테스트 질문 + 정답 (Ground truth).
비교 대상인 두 가지 버전:
Version A (raw, 원본):
원본 기업 문서: 회의록, 초안 마커,
파일 참조, 버전 히스토리 노트 — 실제 상태의
...
결과
RAGAS 평가 결과
──────────────────────────────────────────────────────────────────────
Metric (지표) Version A (raw) Version B (clean) Delta (차이)
...
예상 결과: 정제된 버전(cleaned version)이 노이즈가 적고 정밀도가 높아 더 높은 점수를 받을 것으로 예상되었습니다. 실제 결과: 거의 동일했습니다. 검토해 볼 가치가 있습니다.
두 버전의 점수가 동일한 이유
이유 1: Context Precision = 1.0이 실제로 의미하는 것
완벽한 Context Precision 점수는 "검색된 모든 청크 (Chunk)가 답변 생성에 기여했다"는 것을 의미합니다. 하지만 이는 LLM에 의해 판단되는데, LLM은 어떤 청크든 "유용하다"고 판단할 이유를 찾는 경향이 있습니다. 즉, 원본 문서에 회의록이 포함되어 있더라도 마지막 단락에 관련 규칙이 있다면, LLM은 해당 청크를 기여자로 간주합니다.
RAGAS의 Context Precision은 객관적으로 노이즈가 없는지를 측정하는 것이 아니라, LLM이 무엇을 유용하다고 간주하는지를 측정합니다.
이유 2: 작은 지식 베이스, 제한된 문서 수
이 실험에는 5개의 문서가 있습니다. 5개 중 상위 3개를 검색하는 것은 관련 청크가 거의 항상 검색된다는 것을 의미하므로, Context Recall (컨텍스트 재현율)은 자연스럽게 1.0에 가까워집니다.
유사한 주제의 문서들이 경쟁하게 되는 100개의 문서로 확장할 때, 비로소 재현율 (Recall)의 차이가 나타나기 시작합니다.
이유 3: 질문이 너무 직접적임
8개의 질문 모두 특정 규칙에 대해 직접적으로 묻고 있습니다 ("명명 스타일은 무엇인가요", "__slots__는 무엇을 하나요"). 이러한 질문들은 단일 청크(Chunk)만으로도 답변이 가능하며, 원본 데이터인지 정제된 데이터인지 여부는 차이를 만들지 않습니다.
멀티홉 질문 (Multi-hop questions, "예외 처리와 로깅 표준을 결합하여 결함 진단 함수를 어떻게 설계하시겠습니까?")은 문서 품질의 차이를 증폭시킵니다.
RAGAS가 문서 품질을 구분할 수 있는 경우
실제 기업용 RAG 시스템에서는 다음과 같은 조건에서 눈에 띄는 점수 차이가 발생합니다:
| 시나리오 | 영향을 받는 지표 | 예상 격차 |
|---|---|---|
| 지식 베이스 > 1,000개 문서, 노이즈가 많은 경우 | Context Precision (컨텍스트 정밀도) ↓ | 0.3–0.5 |
| ... |
RAGAS를 사용하는 올바른 방법: 작은 테스트 세트로 베이스라인을 구축하고(큰 격차를 기대하지 마세요), 그 다음 실제 운영 트래픽에 대해 샘플링 평가를 실행하십시오. RAGAS는 일회성 비교 도구가 아니라, 지속적인 품질 모니터로서 가장 가치가 있습니다.
흔한 RAGAS에 대한 오해
오해 1: 높은 RAGAS 점수 = 좋은 RAG 시스템
Context Precision과 Context Recall이 1.0이라는 것은 단지 "검색 품질이 테스트 세트의 문제 탐지 능력을 초과했다"는 것을 의미할 뿐입니다. 더 어려운 테스트 세트로 전환하면 점수는 즉시 떨어질 수 있습니다.
실제 품질 검증은 L1 지표(채택률, 작업 완료율)를 통해 이루어집니다. RAGAS는 L2 중간 계층이지, 최종 목적지가 아닙니다.
오해 2: 낮은 Answer Relevancy (답변 관련성) = 낮은 답변 품질
Answer Relevancy는 답변으로부터 질문을 생성하고, 이를 원래 질문과의 유사도를 측정하여 계산됩니다. 만약 원래 질문은 매우 구체적인데 답변이 간결하다면, 그 유사도 점수는 낮게 나올 수 있습니다. 이는 답변이 틀렸기 때문이 아니라, 짧은 답변이 커버하는 범위(Coverage)가 좁기 때문입니다.
이 실험의 답변 관련성 (Answer Relevancy, 0.732)이 낮은 이유는 부분적으로 테스트 질문이 구체적이고 생성된 답변이 간결하기 때문입니다. 역으로 생성된 질문들이 표현 방식 면에서 원본과 일치하지 않아 점수를 낮추는 요인이 됩니다.
오해 3: 네 가지 지표 모두 최대한 높아야 한다
높은 문맥 정밀도 (Context Precision) + 낮은 문맥 재현율 (Context Recall): 검색된 콘텐츠는 모두 관련이 있지만, 중요한 정보를 놓쳤음을 의미합니다. 좋은 검색 결과라고 볼 수 없습니다.
높은 문맥 재현율 (Context Recall) + 낮은 문맥 정밀도 (Context Precision): 필요한 모든 콘텐츠를 검색했지만, 많은 노이즈(noise)도 함께 포함되었습니다. 답변의 품질이 저하됩니다.
네 가지 지표를 각각 개별적으로 추적하세요. 평균값은 중요한 트레이드오프 (trade-off) 관계를 가려버립니다.
코드로 RAGAS 실행하기
from ragas import evaluate
from ragas.metrics.collections import (
faithfulness, answer_relevancy, context_precision, context_recall
...
참고: RAGAS v0.2+ 버전부터는 ragas.metrics.collections에서 임포트(import)하는 것을 권장합니다. 이전 임포트 경로는 DeprecationWarnings (지원 중단 경고)를 발생시킵니다.
테스트 세트 설계 가이드라인
RAGAS 평가의 품질은 테스트 세트 설계에 크게 의존합니다.
1. 세 가지 난이도 수준을 포함하세요:
단순 (Simple, 단일 문단으로 답변 가능) → 기본 기능 검증
중간 (Medium, 여러 청크를 통합하여 답변) → 청킹 (chunking) 전략 검증
...
요약
- 네 가지 지표, 네 가지의 서로 다른 측정: 문맥 정밀도/재현율 (Context Precision/Recall)은 검색을 측정하고, 충실도 (Faithfulness)는 환각 (hallucination) 위험을 측정하며, 답변 관련성 (Answer Relevancy)은 답변의 집중도를 측정합니다. 이들을 하나의 숫자로 평균 내지 말고 네 가지 모두를 살펴보세요.
- 만점이라고 해서 완벽한 것은 아니다: 문맥 정밀도 (Context Precision)가 1.0이라는 것은 객관적으로 노이즈가 없는 검색을 의미하는 것이 아니라 LLM의 판단을 반영하는 것입니다. 작은 지식 베이스와 단순한 질문은 인위적으로 높은 점수를 만들어냅니다.
- RAGAS의 가치는 지속적인 모니터링에 있다: 단 한 번의 비교로는 버전 간의 차이를 구분하기 어려울 수 있지만, 품질을 시간에 따라 추적하는 주간 샘플링을 수행하면 드리프트 (drift) 현상을 조기에 발견할 수 있습니다.
참고 문헌
- RAGAS Documentation
- RAGAS GitHub
- 전체 데모 코드: eval-04-ragas
실제 엔터프라이즈급 워크플로우에서 검증된 AI 에이전트와 기술을 큐레이션하여 제공하는 마켓플레이스 PrimeSkills를 확인해 보세요. 거품 없이, 실제로 작동하는 것들만 제공합니다.
저의 홈페이지에서 더 유용한 지식과 흥미로운 제품들을 찾아보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기