본문 바로가기
프로젝트 이슈

AI 시스템 평가 - RAGAS와 골든셋

by BIGENGINEER 2026. 7. 17.

골든셋 

- 무엇을 평가할지 정한 대표 시험 문제와 기대 결과

 

RAGAS 

- 그 시험 결과를 여러 품질 지표로 채점하는 평가 도구

 

 

  • 골든셋: 시험 문제와 정답지
  • RAG 시스템: 시험을 푸는 학생
  • RAGAS: 채점 기준과 채점 도구

 

 

 

골든셋

- AI 시스템을 반복적으로 평가하기 위해서 준비한 대표 입력과 기대 결과의 모음

- 시스템을 수정할 때마다 이 입력을 다시 실행하고 결과가 기대 조건을 만족하는지 확인

 

 

1) 분류 모델 

-> 입력 + 기대 분류값

 

2) RAG 시스템

-> 질문 + 기대 답변 + 정답 근거

 

3) AI AGENT 

-> 사용자 요청 + 기대 TOOL 호출 + 기대 상태 변화 + 최종 응답 조건

 

 

 

- 골든셋은 다음을 평가할 수 있음 

  • 질문 이해
  • 의도 분류
  • 검색 결과
  • TOOL 선택과 호출
  • AGENT 실행 경로
  • 최종 답변
  • 출력 형식
  • 정책 준수 
{
  "question": "삼성전자 급락했는데 손절해야 해?",
  "user_profile": {
    "risk_tolerance": "low"
  },
  "expected": {
    "stock_code": "005930",
    "intent": "sell_decision",
    "urgency": "drop"
  }
}

 

 

< 골든셋과 일반 테스트 데이터 차이 >

- 골든셋은 다음 조건을 만족해야 함

  • 실제 사용 상황을 대표해야 함
  • 기대 결과가 명확하게 정의돼 있어야 함 
  • 기대 결과를 사람이 검토해야 함
  • 반복 평가에 사용할 수 있어야 함
  • 변경 이력과 버전이 관리돼야 함
  • 모델이 생성한 정답을 검토 없이 그대로 사용하면 안됨

 

LLM으로 합성 데이터 생성(자동 생성한 질문과 정답)

        ↓
중복·오류 제거
        ↓
도메인 담당자 검토
        ↓
기대 결과 확정
        ↓
골든셋 편입

 

 

 

 

 

왜 필요해?

- LLM의 응답은 매번 조금씩 달라질 수 있음. 그래서 문장 전체가 완전히 같은지를 검사하기보다 중요한 조건을 정의해 평가해야한다. 

 

즉, 골든셋은 시스템을 변경했을 때 이전에 잘되던 기능이 깨지지 않았는지 확인하는 회귀 평가 기준이 된다. 

 

 

좋은 골든셋의 필드 

1. case_id : 질문 하나당 고유 ID

2. user_input : 시스템에 넣을 실제 사용자 입력

3. user_context  : 사용자 성향이나 대화 이력처럼 답변에 영향을 주는 조건

-> 해당 질문에 답변할 때 함께 고려해야 하는 사용자 조건을 저장하는 필드

-> 즉, 특정 평가 상황을 재현하기 위해 미리 고정해둔 테스트 조건  

 

4. reference : 사람이 검토한 기대 답변

-> 완전히 똑같이 생성해야 하는 문장이 아니라, 답변에 포함되어야 할 핵심 내용을 나타냄

5. reference_contexts : 기대 답변을 뒷받침하는 원문 또는 문서 청크 

6. expected_trace : agent 시스템의 중간 실행을 검증하기 위해 사용

-> 최종 답변이 맞더라도 잘못된 tool이나 우연한 추론으로 답했을 수 있기 때문에 중간 경로 검사해야 함.

{
  "expected_trace": {
    "required_agents": [
      "quant",
      "news",
      "macro"
    ],
    "required_tools": [
      "price_tool",
      "financial_tool"
    ],
    "max_retries": 2
  }
}

 

Reference가 필요한 평가

- context recall

- 정답 정확성 

- factual correctness

- 모범 답변과의 의미 비교

- 필수 정보 누락 평가

 

=> 모든 평가에 reference_answer 즉, 사람이 검증한 모범 답변이 반드시 필요한 것은 아니지만 정답 정확도나 context recall을 평가하려면 필요하다. 

 

 

 

골든셋과 RAGAS의 관계

골든셋은 평가 데이터, RAGAS는 평가 프레임워크

- 단, 골든셋이 있다고 자동으로 RAGAS 평가가 되는 것이 아님. 골든셋과 실제 시스템 결과를 RAGAS 입력 형식으로 변환해야함.

 

골든셋
├─ 사용자 질문
├─ 기대 답변
├─ 기대 근거
└─ 기대 조건
        ↓
실제 RAG 시스템 실행
        ↓
├─ 실제 검색 문서
└─ 실제 생성 답변
        ↓
RAGAS
├─ Faithfulness
├─ Response Relevancy
├─ Context Precision
└─ Context Recall

 

 

RAGAS 지표

1) Faithfulness : 생성된 답변의 주장들이 검색된 근거에서 뒷받침 되는가? -> 근거 없는 말을 만들었는지 평가 

-> 근거로 뒷받침되는 답변 주장 수 / 답변의 전체 주장 수 

 

2) Response Relevancy : 답변이 사용자의 질문에 직접 관련되어 있는가? -> 질문에 필요한 말을 했는가? 

 

3) Context Precision : 검색된 문서 중 실제 답변에 유용한 문서가 상위에 잘 배치됐는가?

-> LLM에 불필요한 문서 많이 전달하면 토큰 비용 증가, 응답 시간 증가, 잘못된 문서에 영향 받을 가능성 증가

=> Retriever와 Reranker 품질을 평가하는 지표

 

4) Context Recall : 정답을 작성하는 데 필요한 근거를 검색기가 얼마나 빠짐없이 가져왔는가? 

-> 검색된 필수 근거 수 / 정답에 필요한 전체 근거 수 

 

 

 

 

상황                                                                          Faithfulness     Relevancy            Context Precision   Context Recall

근거에 없는 내용을 생성 낮음 높을 수도 있음 무관 무관
질문과 무관한 근거 요약 높음 낮음 낮을 수 있음 무관
관련 문서와 불필요한 문서를 많이 검색 높을 수 있음 높을 수 있음 낮음 높을 수 있음
중요한 근거 하나를 검색하지 못함 높을 수 있음 불완전 높을 수 있음 낮음
좋은 RAG 응답 높음 높음 높음 높음

 

=> 한 지표만으로 RAG 품질을 판단할 수 없음 

 

 

 

 

 

 

 

 

RAGAS 평가 과정 

 

1. 골든셋 로드

2. 실제 RAG 시스템 실행

3. 규칙 기반 검사

4. RAGAS 입력 구성

5. RAGAS 지표 계산

6. 케이스별 실패 원인 분석

7. 동일 골든셋으로 변경 전후 비교 

 

 

context recall : 문맥 재현율으로 RAG 모델의 성능을 평가하는 지표

=> 사용자의 질문에 대해 정답을 생성하는 데 필요한 Ground Truth(기대 정답) 정보를 검색된 컨텍스트가 얼마나 잘 포함하고 있는지 측정

=> 즉, 사용자의 질문을 받았을 때 그 질문에 대한 답변을 하기 위해 RAG는 질문과 유사한 정보들을 검색하는데, 이때 검색된 컨텍스트가 정답을 생성하는 데 필요한 정보들을 얼마나 잘 포함하고 있는가를 평가하는 것 

=> 정답을 작성하는 데 필요한 근거를 검색기가 얼마나 빠짐없이 가져왔는가를 평가

 

 

1) Context Recall 계산

  • 골든셋에 있는 기대 정답을 독립적인 주장 단위로 분해 
  • 검색된 컨텍스트가 문장 단위로 나눈 기대 정답의 의미를 얼마나 포함하고 있는지 비율(0~1)로 나타냄

 

2) RAGAS가 지원하는 Context Recall 방식

- LLM 기반  : reference의 주장을 검색 근거가 지원하는지 판단

- 비LLM 기반 : reference contexts와 검색 contexts의 문자열, 유사도 비교 

- id 기반 : 정답 문서 ID와 검색 문서 ID 비교 

 

IF) 점수가 낮으면 

  • 검색할 문서의 개수(Top-K) 늘리기
  • 청크 단위를 더 작게 나누거나 문맥을 잘 살릴 수 있도록 수정
  • 도메인에 더 적합한 임베딩 모델로 변경 

 

 

Context Precision와 Context Recall의 차이

Context Recall : 필요한 정보를 빠뜨리지 않았는가?

Context Precision : 가져온 정보 중 쓸모없는 정보가 얼마나 적은가?, 관련 정보가 상위에 잘 배치됐는가?

 

예)

정답 문서: A, B, C
검색 결과: A, B, C, D, E, F, G, H

-> 이런 경우 Recall은 높으나, Precision은 낮음 ->불필요한 항목까지 가져왔으므로 

 

=> TOP-K를 늘리면 : Recall 좋아짐, Precision 나빠짐

=> TOP-K를 줄이면 : Recall 나빠짐, Precision 좋아짐

 

 

 

Faithfulness와 Context Recall의 차이

Faithfulness는 생성 답변이 검색 근거로 뒷받침 되는가를 평가하는 것

 

만약 기대 정답에 필요한 정보가 

A: 수익성 악화
B: 신제품 출시
C: 금리 상승 위험

 

검색 결과 : A, B 

생성 답변 : 수익성이 악화됐고 신제품 출시가 예정돼 있습니다.

 

평가 :

Context Recall
→ A, B, C 중 A, B만 검색
→ 2/3

Faithfulness
→ 답변의 A, B가 모두 검색 근거에 있음
→ 2/2 = 1.0

 

 

=> 즉, 결과가 모든 기대 정답을 포함하지 않더라도 검색 근거로 모두 뒷받침 되기 때문에 1이 나온 것 

 

 

 

 

골든셋 설계 방법

1. 대표성 확보 : 정상 케이스 뿐만 아니라 다양한 케이스 넣기

2. 난이도 구분  : Easy / Medium/ Hard로 구분

3. 출처와 시점 기록 : 기준 시점이 없으면 모델이 틀린지 골든셋이 오래된 것인지 구분할 수 없음

4. 데이터 누수 방지 : 개발셋/ 검증셋/ 데이터 셋 구조로 구분하기 

 

골든셋 버전 관리

{
  "dataset_version": "1.2.0",
  "created_at": "2026-07-17",
  "reviewed_by": [
    "financial_reviewer",
    "qa_reviewer"
  ],
  "model_snapshot": "qwen-2.5-7b-instruct",
  "notes": "금리 상승과 수익성 상충 케이스 추가"
}

 

- 평가 리포트에는 아래와 같이 반드시 사용한 골든셋 버전을 기록해야 함

Model: qwen-2.5-7b-instruct
Prompt: investment-analyst-v3
Golden Set: 1.1.0
Retriever: hybrid-search-v2
RAGAS: 0.x.x