3.4.1.1 지식 베이스(Knowledge Base)와 연동된 정적 데이터
정답지의 가장 고전적이면서도 강력한 형태는, 세계의 진실(Ground Truth)이 데이터베이스 내에 확정판결(Res Judicata)처럼 고정되어 있는 ’사실 기반 정답지(Fact-based Ground Truth)’다. 대형 언어 모델(LLM)이 파라메트릭 메모리(Parametric Memory)에 의존하는 순간 환각(Hallucination)의 리스크는 0보다 커지지만, 지식 베이스(KB)와 연동된 정적 데이터는 이 확률론적 변수를 상수(Constant)로 강제 변환한다.
1. 정적 데이터 매핑의 본질
지식 베이스와 연동된 정적 데이터 정답지란, 특정 질의(Query)에 대한 정답을 시스템 내부의 구조화된 데이터(JSON, SQL Database, Key-Value Store 등)로 사전에 100% 맵핑해 둔 것을 의미한다.
- 정의: AI 서비스가 사용자에게 “A 회사의 본사 위치는 어디인가?“라는 질문을 받았을 때, LLM이 문장을 지어내기 전에 내부 사내 지식 베이스(KB)를 조회하여 “서울특별시 강남구“라는 스칼라(Scalar) 값을 추출해 내는 과정을 검증하는 오라클이다.
- 오라클의 역할: 여기서 오라클의 역할은 LLM이 생성한 유창한 자연어 문장(“A 회사의 본사는 서울특별시 강남구에 위치해 있습니다.”)을 평가하는 것이 아니다. 자연어 생성 이전 단계, 즉 AI가 추론을 위해 도구(Tool Calling/Function Calling)를 사용해 지식 베이스에서 인출(Fetch)한 그 데이터의 본질적 값(
{"location": "서울특별시 강남구"})이 정답지에 하드코딩된 값과 완벽히 일치하는지Assert(Extracted_Value == KB_Value)하는 것이다.
2. 지식 동기화(Knowledge Synchronization)의 함정과 해결책
정적 데이터 기반 정답지를 설계할 때 가장 빈번하게 발생하는 기술 부채(Technical Debt)는 ‘지식 불일치(Knowledge Desynchronization)’ 현상이다.
만약 A 회사의 본사가 내일 판교로 이전했다면, 백엔드의 지식 베이스(KB)는 “경기도 성남시 판교“로 업데이트된다. 이때 테스트 코드를 구동하는 정답지(Golden Dataset)의 값이 여전히 “강남구“로 남아있다면, 파이프라인의 오라클은 정상적인 AI의 추론을 Fail 처리하는 치명적인 위양성(False Positive) 에러를 뿜어낸다.
이를 방지하기 위해 정적 데이터 정답지는 절대 값(Value) 자체를 하드코딩해서는 안 되며, **식별자 참조 매커니즘(Reference by Identifier)**을 사용해야 한다.
- 안티 패턴 (Value Hardcoding):
{"query": "A사 본사 위치?", "expected_answer": "강남구"} - 권장 패턴 (Reference Injection):
{"query": "A사 본사 위치?", "expected_answer": "@KB.company['A'].location"}
오라클은 검증을 수행하는 런타임(Runtime) 시점에, 정답지에 적힌 @KB.company['A'].location라는 포인터를 역참조(Dereference)하여 현재 지식 베이스에 라이브로 등록된 최신 값(“판교”)을 동적으로 가져와 AI의 출력과 대조한다. 이 구조를 통해서만 정답지는 지식 베이스의 변화에 영속하는 불변의 오라클 시스템으로 작동할 수 있다.
3. 정적 데이터의 타입(Type) 캐스팅과 결정론적 파싱
지식 베이스에서 연동된 정적 데이터를 AI가 자연어에 녹여낼 때, 또 다른 결정론적 충돌이 발생한다. KB에는 숫자로 1500000이 저장되어 있는데, AI가 “백오십만 원입니다” 또는 “1.5M” 등으로 생성형 변형(Generative mutation)을 가할 경우다.
결정론적 오라클은 자연어의 변형을 용납하지 않는다. 따라서 AI에게 무작정 답변을 생성하라고 던져주는 대신, 시스템 프롬프트를 통해 “지식 베이스에서 추출된 정적 데이터는 반드시 별도의 JSON 스키마 필드(extracted_facts) 내에 원시 데이터 타입(Primitive Type)으로 보존하여 반환하라“고 강제해야 한다.
오라클은 유려하게 포장된 자연어 스크립트에는 눈을 감고, 오직 extracted_facts 내부의 정수형(Integer)이나 날짜형(ISO 8601) 정적 데이터만을 뽑아내어 KB와 O(1) 복잡도로 일치 여부를 기계적으로 판별한다. 이것이 확률론적 시스템을 통제하는 팩트(Fact) 기반 정답지의 진정한 위력이다.