Ragas RAG 평가 프레임워크
2026-02-05 작성2026-07-17 수정21분 읽기
Ragas(RAG Assessment)는 RAG(Retrieval-Augmented Generation) 파이프라인의 품질을 객관적으로 평가하기 위한 오픈소스 프레임워크입니다. Agentic AI 플랫폼에서 RAG 시스템의 성능을 측정하고 지속적으로 개선하는 데 필수적입니다.
1. 개요
RAG 평가가 필요한 이유
RAG 시스템은 여러 컴포넌트(검색, 생성, 컨텍스트 처리)로 구성되어 있어 전체 품질을 측정하기 어렵습니다:
Ragas vs AWS Bedrock RAG Evaluation
AWS Bedrock RAG Evaluation GA
AWS Bedrock RAG Evaluation은 2025년 3월 GA되었습니다. Bedrock 네이티브 통합으로 별도 설정 없이 RAG 평가를 수행할 수 있습니다.
Ragas vs AWS Bedrock RAG Evaluation
AWS Bedrock RAG Evaluation 메트릭:
- Context Relevance: 검색된 컨텍스트가 질문과 관련있는지
- Coverage: 답변이 질문의 모든 측면을 다루는지
- Correctness: 답변이 정확한지 (ground truth 대비)
- Faithfulness: 답변이 컨텍스트에 충실한지
Ragas 핵심 메트릭
Ragas 핵심 메트릭
Faithfulness
생성 품질
답변이 컨텍스트에 충실한지
Answer Relevancy
생성 품질
답변이 질문과 관련있는지
Context Precision
검색 품질
검색된 컨텍스트의 정밀도
Context Recall
검색 품질
필요한 정보가 검색되었는지
Answer Correctness
종합 품질
답변의 정확성
Ragas 0.2+ API 변경사항
Ragas 0.2 이상에서 context_relevancy 메트릭은 제거되었습니다. 컨텍스트 품질 평가는 context_precision과 context_recall을 조합하여 수행하세요.
2. 설치 및 기본 설정
Python 환경 설정
# Ragas 설치 (0.2+ 권장)
pip install "ragas>=0.2" langchain-openai datasets
# 추가 의존성
pip install pandas numpy
기본 평가 코드
from ragas import evaluate
from ragas.metrics import (
faithfulness,
answer_relevancy,
context_precision,
context_recall,
)
from datasets import Dataset
# 평가 데이터셋 준비
eval_data = {
"question": [
"Kubernetes에서 GPU 스케줄링은 어떻게 하나요?",
"Karpenter의 주요 기능은 무엇인가요?",
],
"answer": [
"Kubernetes에서 GPU 스케줄링은 NVIDIA Device Plugin을 통해 수행됩니다...",
"Karpenter는 자동 노드 프로비저닝, 통합(consolidation), 드리프트 감지 기능을 제공합니다...",
],
"contexts": [
["GPU 스케줄링은 Device Plugin을 통해...", "NVIDIA GPU Operator는..."],
["Karpenter는 Kubernetes 노드 자동 스케일러로...", "NodePool CRD를 통해..."],
],
"ground_truth": [
"NVIDIA Device Plugin과 GPU Operator를 사용하여 GPU 리소스를 스케줄링합니다.",
"Karpenter는 자동 노드 프로비저닝, 통합, 드리프트 감지, 중단 처리 기능을 제공합니다.",
],
}
dataset = Dataset.from_dict(eval_data)
# 평가 실행 (에러 핸들링 포함)
try:
results = evaluate(
dataset,
metrics=[
faithfulness,
answer_relevancy,
context_precision,
context_recall,
],
)
print(results)
except Exception as e:
print(f"평가 중 오류 발생: {e}")
# 로깅 또는 재시도 로직
3. 핵심 메트릭 상세 설명
1. Faithfulness (충실도)
답변이 제공된 컨텍스트에 얼마나 충실한지 측정합니다. 환각(hallucination)을 감지하는 데 핵심적인 메트릭입니다.
from ragas.metrics import faithfulness
# Faithfulness 계산 과정:
# 1. 답변을 개별 주장(claims)으로 분해
# 2. 각 주장이 컨텍스트에서 추론 가능한지 검증
# 3. 검증된 주장 수 / 전체 주장 수 = Faithfulness 점수
# 점수 해석:
# 1.0: 모든 주장이 컨텍스트에서 지원됨
# 0.5: 절반의 주장만 컨텍스트에서 지원됨
# 0.0: 어떤 주장도 컨텍스트에서 지원되지 않음 (심각한 환각)
2. Answer Relevancy (답변 관련성)
답변이 질문에 얼마나 관련있는지 측정합니다.
from ragas.metrics import answer_relevancy
# Answer Relevancy 계산 과정:
# 1. 답변에서 역으로 질문을 생성
# 2. 생성된 질문과 원본 질문의 유사도 계산
# 3. 여러 번 반복하여 평균 계산
# 점수 해석:
# 높은 점수: 답변이 질문에 직접적으로 관련됨
# 낮은 점수: 답변이 질문과 동떨어진 내용을 포함
3. Context Precision (컨텍스트 정밀도)
검색된 컨텍스트 중 실제로 유용한 정보의 비율을 측정합니다.
from ragas.metrics import context_precision
# Context Precision 계산:
# - Ground truth 답변을 생성하는 데 필요한 컨텍스트 식별
# - 상위 랭킹 컨텍스트에 유용한 정보가 있는지 확인
# - 높은 순위에 관련 컨텍스트가 있을수록 높은 점수