8.6.1 RAGAS(Retrieval Augmented Generation Assessment) 프레임워크의 오라클 적용
최상위 LLM을 심판관(Judge)으로 섭외하여 RAG 아키텍처의 무결성을 검증하기로 결단했다면, 그 심판관에게 무턱대고 “이 답변이 괜찮은지 점수를 매겨봐“라는 식의 모호한 제로샷(Zero-shot) 프롬프트를 던져서는 안 된다. 평가 자체가 비결정적(Nondeterministic)인 텍스트 스트림을 생산하는 또 다른 재앙적 변수가 되어 시스템의 신뢰 기반을 완전히 붕괴시키기 때문이다.
오라클 엔지니어링의 본질은 평가 과정마저 철저히 ’수학적으로 분해 가능한 지표’로 격리하고 강제하는 데 있다. 이를 가장 체계적으로 프레임워크화한 업계 표준이 바로 RAGAS(Retrieval Augmented Generation Assessment) 모델이다.
RAGAS 프레임워크는 RAG 파이프라인의 성공 여부를 뭉뚱그려 하나로 평가하지 않고, ’검색(Retrieval)’과 ’생성(Generation)’이라는 두 가지 독립된 페이즈를 철저히 해체하여 4개의 핵심 단결정 지표(Atomic Metrics)로 분해한다. 지식 오라클 시스템은 이 RAGAS의 철학을 벤치마크용 지표가 아니라, 실시간 트랜잭션을 셧다운 시키는 **방화벽(Firewall)**의 코어 로직으로 직접 채택하여 가동한다.
1. RAGAS 4대 핵심 지표의 오라클 파라미터화
RAGAS가 제시하는 4가지 수학적 평가 지표(Metrics)는 다음과 같으며, 실시간 오라클 시스템은 각 지표마다 엄격한 통과 임계값(Threshold, 예: 0.85 이상)을 하드코딩하여 판별기 모듈로 활용한다.
- Faithfulness (충실성/사실성): 생성된 답변이 검색된 원본 Context 문서만을 100% 온전히 지지(Support)하고 있는지 판별한다. 외부 지식 환각(Hallucination)을 막는 최후의 보루다.
- Answer Relevance (답변 관련성): 타겟 모델이 장황하게 말을 늘어놓았지만, 정작 유저가 물어본 핵심 질문(Query)의 의도에 부합하는지 판별한다. 질문을 회피하거나 동문서답하는 텍스트 렌더링 에러를 적발한다.
- Context Precision (문맥 정밀도): 검색 단계(Retrieval)에서 가져온 문서들 중에서, ’진짜 정답을 포함한 핵심 문서’가 랭킹의 최상단에 올바르게 위치해 있는지를 평가한다 (Top-k의 품질).
- Context Recall (문맥 재현율): 유저의 질문에 답하기 위해 골든 정답지(Ground Truth)에 명시된 필수 정보들을 검색기(Retriever)가 단 하나도 누락 없이 DB에서 다 가져왔는지를 판별한다.
2. LLM-as-a-Judge 아키텍처와의 통합 메커니즘
전통적인 RAGAS는 벤치마크용으로 사용되어 수백 개의 테스트셋을 오프라인 워크플로우에서 사후(Post-mortem) 채점하는 데 그쳤다. 하지만 완성된 엔터프라이즈 RAG 오라클 서버에서는 이 RAGAS 알고리즘을 실시간 미들웨어 인퍼런싱 런타임으로 끌어올린다.
유저의 쿼리(Q)를 받고 검색기가 문서(C)를 가져오면, 타겟 LLM이 답변(A)을 렌더링한다. 프론트엔드에 이 A를 쏘아 보내기 직전, 병렬로 대기하고 있던 초거대 심판관 모델(예: GPT-4, Claude 3.5 Sonnet)이 곧바로 RAGAS 프롬프트를 장착하고 백그라운드에서 깨어난다.
# 오라클 내부 실시간 RAGAS 파이프라인 흐름
1. Input Data: (Question, Contexts, Answer) 튜플 획득
2. Parallel Inference:
- Judge Thread 1: Faithfulness 점수 추출 프롬프트 실행
- Judge Thread 2: Answer Relevance 점수 추출 프롬프트 실행
3. Aggregation & Decision:
- 각 Thread의 결과가 JSON으로 반환됨 (예: {"score": 0.9, "reason": "..."})
- 둘 중 하나라도 하드코딩된 Threshold(0.85)를 미달하면 즉시 Reject Exception 발생.
3. RAGAS의 비결정성을 제어하기 위한 오라클 엔지니어링
물론 LLM-as-a-Judge는 파라미터를 갖는 신경망이기에 본질적으로 100% 결정론적일 수 없다. একই 질문에도 어제는 0.9점, 오늘은 0.8점을 줄 수 있는 확률적 변동성(Variance)이 존재한다. 오라클 시스템이 RAGAS를 실전 도입할 때 이 변동성을 제어하지 못하면 “오라클이 고장 났다“는 치명적인 기술 부채에 직면한다.
이를 억제하기 위해, 실전 오라클 시스템은 심판관 LLM의 파라미터 중 하나인 temperature를 완전한 통제 상태인 0.0으로 하드코딩한다. 또한, 프롬프트를 통해 “0점부터 1점까지 연속적인 실수를 부여하라“고 지시하는 대신, **“이 주장과 맥락이 일치하는가? 1(Yes) 또는 0(No) 으로만 대답하라”**는 이진 분류(Binary Classification) 형태로 판단의 해상도를 의도적으로 투박하게 낮추는(Coarse-graining) 수학적 기법을 쓴다. 여러 개의 명제를 0과 1로 평가한 뒤 이들의 산술 평균을 구하여 최종 점수를 도출하는 방식(Aggregation)을 채택해야만, 심판관 LLM의 감정적이고 텍스트적인 변동성을 기계적인 확정 오차 범위 이내로 가둬버릴 수 있다.