본문 바로가기
C.W.K.
Stream
Lesson 05 of 07 · published

RAGAS: RAG 특화 평가

~22 min · frameworks, ragas, rag

Level 0추측자
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

RAG 파이프라인에 특화된 평가 프레임워크

RAGAS(검색 증강 생성 평가)는 RAG 시스템의 실패를 네 영역으로 나눠 살펴보도록 설계된 지표를 제공해: 검색 품질, 문맥 관련성, 답변 충실성, 답변 관련성이야. RAG 시스템을 출시한다면 꼭 살펴볼 만해.

RAGAS의 네 가지 핵심 지표

  • 충실성 — 답변에 담긴 주장이 검색된 문맥에 근거해 있어? (환각을 잡아내는 지표)
  • 답변 관련성 — 답변이 질문을 제대로 다뤄? (주제에서 벗어난 응답을 잡아내는 지표)
  • 문맥 정밀도 — 검색된 청크 가운데 실제로 관련 있는 청크가 얼마나 돼? (검색기가 불필요한 내용을 가져오는 문제를 잡아내는 지표)
  • 문맥 재현율 — 답변에 필요한 청크를 검색기가 빠짐없이 찾았어? (검색기가 핵심 정보를 놓치는 문제를 잡아내는 지표)

이 네 지표를 함께 보면 "이 RAG 출력이 좋은가?"라는 큰 질문을 어디에서 실패했는지 알려 주는 네 가지 하위 질문으로 나눌 수 있어.

이렇게 나눠 평가해야 하는 이유

막연히 "답변이 나빠"라고 해서는 팀이 무엇을 고쳐야 할지 알 수 없어. RAGAS 점수는 원인을 구체적으로 보여 줘. 충실성은 높고 재현율은 낮다면 검색기가 필요한 문서를 놓쳤다는 뜻이야. 충실성은 낮고 재현율은 높다면 생성기가 올바른 문맥을 받고도 환각을 만들었다는 뜻이지. 진단마다 해결 방법도 달라져.

원칙: RAG 시스템을 출시한다면 충실성과 재현율을 별도 지표로 측정해야 해. 하나로 합친 점수는 검색과 생성 중 어느 쪽이 망가졌는지 가려 버려.

구현할 때 알아둘 점

RAGAS는 대부분의 지표를 계산할 때 내부적으로 LLM 기반 판정 모델을 사용하므로 판정 비용과 편향도 함께 따라와. 절대 점수는 특정 RAG 말뭉치에서 사람의 판단과 비교해 보정한 뒤에 신뢰해야 해. 지표는 절대적인 품질 척도보다는 이 버전과 저 버전을 비교하는 상대적 신호로 활용하는 편이 좋아.

Code

설치와 기본 평가·python
# pip install ragas
from ragas import evaluate
from ragas.metrics import (
    faithfulness,
    answer_relevancy,
    context_precision,
    context_recall,
)
from datasets import Dataset

data = Dataset.from_dict({
    "question": ["What is the capital of France?"],
    "answer": ["Paris is the capital of France."],
    "contexts": [["France's capital is Paris. It has a population of 2.1M."]],
    "ground_truth": ["Paris"],
})

result = evaluate(
    data,
    metrics=[faithfulness, answer_relevancy, context_precision, context_recall],
)
print(result)
# {'faithfulness': 1.0, 'answer_relevancy': 0.95, 'context_precision': 1.0, 'context_recall': 1.0}
실패 원인 분해·python
# Three diagnostic profiles, three different fixes:
#
# 1) low faithfulness, high recall
#    → generator is hallucinating despite having the right context
#    → fix: tighter prompt, citation enforcement, smaller model temperature
#
# 2) high faithfulness, low recall
#    → retriever is not finding the right chunks
#    → fix: better embeddings, hybrid search, query rewriting
#
# 3) high faithfulness, high recall, low answer relevancy
#    → retrieved correct docs, generated faithful summary, but didn't
#      answer the question the user asked
#    → fix: prompt engineering — explicitly route the answer to the question

External links

Exercise

RAG 시스템이 있다면 운영 환경의 질의 30개에 RAGAS를 실행해 봐. 충실성이 낮은 질의 하나와 재현율이 낮은 질의 하나를 찾아. 두 질의는 해결 방법이 서로 달라야 해. 바로 그 점이 지표를 나눠 측정하는 이유야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.