8.1 RAG 시스템과 지식 기반 오라클(Knowledge-Based Oracle)의 정의

8.1 RAG 시스템과 지식 기반 오라클(Knowledge-Based Oracle)의 정의

대형 언어 모델(LLM)이 환각(Hallucination)이라는 치명적인 결함을 내포하고 있음은 자명하다. 수학 공식이나 프로그래밍 문법과 같이 폐쇄적이고 논리적인 세계에서 오라클의 역할은 ’결과값의 정확한 비교(Exact Match)’만으로도 성립하지만, 방대한 비정형 문서 뭉치 속에서 정보를 찾아 요약하고 응답하는 RAG(Retrieval-Augmented Generation) 시스템에서는 **‘무엇이 참(Truth)인가?’**를 규정하는 체계 자체가 근본적으로 흔들린다.

이러한 개방형 도메인(Open-domain) 추론 환경에서 시스템의 품질을 보증하기 위해서는 오라클의 패러다임이 산술적 정답 비교에서 **‘지식 소스 기반의 교차 검증(Source-Grounded Validation)’**으로 진화해야 한다. 본 절에서는 RAG 파이프라인 내에서 지식 기반 오라클이 어떠한 개념적 위치를 차지하며 그 검증 메커니즘이 어떻게 정의되는지 논의한다.

1. 세계 지식(World Knowledge)의 배제와 문맥(Context)의 절대성

지식 기반 오라클 설계의 제1원칙은 “AI 모델 자체의 내부 가중치(Parametric Memory)에 내장된 세계 지식을 완벽하게 부정하는 것“이다.

  • 진실의 경계 한정: 모델이 학습 과정에서 터득한 상식이나 백과사전적 지식은 테스트 파이프라인 내에서 오라클 판정의 근거로 사용되어서는 안 된다. 오직 검색기(Retriever)를 통해 제공된 특정 시점의 문맥(Context) 덩어리(Chunk)만이 유일한 법전이자 판단 기준으로 작용하도록 오라클을 설계하라.
  • 예를 들어, “우리 회사의 현재 주력 상품은 무엇인가?“라는 질문에 모델이 외부 뉴스 기사를 통해 파악한 (오답일 수 있는) 정답을 내놓더라도, RAG 시스템에 등록된 공식 IR 자료(Context)에 해당 내용이 없다면 오라클은 이 답변을 ’사실과 다름’이 아닌 ’출처에 기반하지 않음(Unfaithful)’이라는 명목으로 반드시 실패(Fail) 처리해야 한다.

2. 2단계(Two-Phase) 디커플링 검증 추적

단일 프롬프트에서 발생하는 환각과 달리, RAG 시스템의 실패 원인은 파이프라인 구조 자체의 복잡성에 기인하므로 오라클 역시 이를 두 가지 축으로 디커플링(Decoupling)하여 상태를 추적해야 한다.

  • 검색(Retrieval) 오라클: 질문을 해석하여 Vector DB 등에 쿼리를 던졌을 때, 도출된 상위 K개(Top-K)의 문서가 질문에 답하기 위해 **‘충분하고 적절한 정보(Relevance)’**를 담고 있는가? 만약 필요 정보가 아예 검색되지조차 않았다면 이후 생성 모델이 어떤 답변을 했든 상관없이(설령 우연히 맞추었더라도) 파이프라인은 실패한 것이다.
  • 생성(Generation) 오라클: 검색된 문맥이 충분하게 주어졌다는 전제 하에, 요약이나 재구성된 결과물이 원본 문맥을 ‘왜곡 없이 충실하게(Faithfulness)’ 반영했는가, 그리고 사용자의 질문(Query)에 논리적으로 맞닿아 있는 답변(Answer Relevance)인가를 검증한다.

오라클은 에러 로그를 남길 때, “답변이 틀렸다“가 아니라 “정보 검색 단계(Index 3)에서 실패했다” 혹은 “정보는 확보했지만 생성 모델이 숫자 3.5를 5.3으로 왜곡했다(Faithfulness Failure)“로 명확히 단계를 분리하여 리포팅하도록 설계되어야 디버깅의 방향성이 확보된다.

3. 골든 참조 문서(Golden Reference)와 인용 검증

전통적 유닛 테스트의 오라클은 assertEquals(expected_output, actual_output)처럼 1:1 대응을 기대한다. 그러나 지식 기반 오라클에서의 expected_output은 단일 문자열이 아니라 특정 문단 모음이나 전체 매뉴얼 PDF 파일이 된다.

  • 따라서 생성 모델이 응답을 뱉어낼 때 시스템 프롬프트를 통해 “반드시 참조한 문서를 [문서 ID:문단 범위] 형식으로 정해진 마크다운 위치에 인용(Citation)하라“는 강제 조건을 부여해야 한다.
  • 이를 통해 오라클 시스템은 정규식이나 AST 구문 분석을 통해 기계적으로 인용 마커를 뜯어내고, 그 인용된 원문과 생성된 문장을 비교하는 팩트 체커(Fact-checker)의 로직을 손쉽게 자동화할 수 있다. 인용이 없는 텍스트는 그 자체로 오라클 테스트 실패를 선언하라.