Skip to content
Mint edited this page May 27, 2026 · 1 revision

Ragas란

Ragas는 RAG 파이프라인을 정답 라벨 없이 평가하는 프레임워크예요. 검색이 관련 문맥을 잘 골라오는지, LLM이 그 문맥을 충실히 쓰는지를 점수로 매겨요.

케이스 파일에 정답(should_trigger)을 넣어두고, 코드나 프롬프트를 바꿀 때마다 eval을 돌려 지표가 기준을 넘는지 확인해요.

image

2026-05-27 relevance_score 과대평가 false positive 수정

발견

  • false_positive_rate 0.333으로 기준(≤0.30) 초과, FAIL
  • "버스 몇 시에 와" 쿼리가 무관한 노트에 매칭돼 오발동

분석

관련 없는 "버스 몇 시에 와"가 0.759점, 진짜 케이스들은 0.59~0.71이었어요. 가짜 양성이 모든 진짜 양성보다 높아서, threshold를 올리면 진짜 케이스가 같이 잘리는 문제가 있었어요. 원인은 LLM이 관련 없는 쿼리에 점수를 후하게 주는 것이었어요.

수정

src/service/recall.py_build_llm_prompt()에서 relevance_score 채점 지시만 수정했어요.

항목 Before After
지시 방식 범위만 명시 (0.0 to 1.0) 구간별 기준 + 보수적 채점 규칙
0.8 이상 없음 쿼리에 직접적이고 구체적으로 답할 때만
0.5~0.7 없음 부분적으로 관련될 때
0.5 미만 없음 스치듯 관련되거나 주제만 비슷할 때
애매할 때 없음 낮게 매김 (놓친 트리거 > 잘못된 트리거)

결과

지표 before after
context_precision 1.000 1.000
false_positive_rate 0.333 (FAIL) 0.000 (PASS)
false_negative_rate 0.000 0.000

"버스 몇 시에 와"는 0.759에서 0.5 미만으로 내려갔고, 진짜 케이스들(0.59~0.71)은 트리거를 유지했어요.

한계 / 더 고칠 점

  • 원래 ragas는 LLM으로 답변 품질을 평가하는데, 지금은 relevance_score 임계값으로 트리거 여부만 판정하고 있어요. LLM 기반 평가는 아직 안 붙였어요.
  • 케이스가 7개뿐이라 0.000은 표본이 작아서 나온 수치일 수 있어요. 케이스를 늘리면 깨질 수 있어요.
  • 채점을 보수적으로 당겨서 false negative가 늘어날 위험이 생겼어요.
  • 0.5 경계선 근처 케이스 테스트가 없어요. 0.45~0.55 구간 쿼리로 경계가 안정적인지 확인하는 것이 좋아요.

Clone this wiki locally