3.7.3 문맥(Context)을 무시한 단편적 사실 검증
결정론적 오라클(Deterministic Oracle)을 구축할 때 마주치는 또 다른 치명적인 안티 패턴(Anti-pattern)은, 시스템이 AI의 응답 속에 포함된 특정 키워드나 수치 등 ’단편적인 사실(Isolated Fact)’이 존재한다는 이유만으로 무턱대고 Pass 판정을 내리는 현상이다.
언어 모델은 문장을 생성할 때 종종 정답 키워드를 포함하되, 그 앞뒤의 맥락을 부정형으로 뒤집거나 조건부로 약화시키는 논리적 환각(Logical Hallucination)을 발생시킨다. 오라클이 문맥(Context)을 무시한 채 단순히 정답 문자열의 포함 여부만 검사한다면, 파이프라인은 심각한 오진(False Positive)을 양산하게 된다.
1. 단편적 키워드 추출의 함정
의료 정보 요약 시스템을 예로 들어보자. 원본 문서에는 “환자는 현재 페니실린에 대한 알레르기 반응이 없음“이라고 기재되어 있고, 정답지는 환자의 투약 금기 약물 목록이 [](비어 있음)이어야 함을 명시하고 있다.
- 안티 패턴 스크립트: 오라클이 AI의 응답에서 ’페니실린’이라는 단어가 검출되었는지만을 검증 로직으로 삼는다.
- 발생하는 오류: AI가 “환자는 페니실린 교차 알레르기 위험이 있습니다“라고 원본 문서와 완전히 반대되는 치명적인 환각을 출력했음에도 불구하고, 단편적 키워드 검사기를 통과하여 프로덕션에 배포되어 버린다.
이러한 단편적 사실 검증은 “특정 단어가 존재하는가?“라는 1차원적인 질문에 갇혀, “해당 단어가 어떤 의미론적 관계망 속에서 사용되었는가?“라는 맥락적 무결성을 완전히 훼손한다.
2. 부정어(Negation) 및 조건절(Condition) 파싱의 부재
단편적 검증이 가장 취약한 지점은 부정어와 조건절이 개입될 때다. 정규표현식(Regex)을 이용한 무결성 검증을 도입하더라도, 문맥 인식을 고려하지 않고 설계된 정답지는 치명적인 결함을 내포한다.
- “비밀번호 재설정 링크를 보내주세요” (정답 로직 격발)
- “비밀번호 재설정 링크를 보내지 마세요” (오답 로직)
- “만약 내일도 로그인이 안 되면, 그때 비밀번호 재설정 링크를 보내주세요” (조건부 유보)
오라클의 정답지가 단순히 {"required_action": "password_reset_link"}의 매칭 여부만을 검사한다면, 위 세 가지 문장은 모두 동일한 Pass 판정을 받게 된다. 이는 AI가 내린 판단의 논리적 뼈대(Syntax Tree)를 오라클이 검증하지 못하고 형태 위에서만 미끄러지고 있음을 증명한다.
3. 문맥 보존형 오라클(Context-Aware Oracle) 구축 전략
문맥을 무시한 단편적 오류를 회피하기 위해, 골든 데이터셋(Golden Dataset)과 오라클 파이프라인은 ‘관계 기반의 검증(Relational Validation)’ 구조로 업그레이드되어야 한다.
- 상태 동사(State Verb)와 개체(Entity)의 결합 분리: 정답지는 단순 명사가 아니라 행위(Action)를 포함하는 튜플(Tuple) 형태여야 한다. 예:
{"entity": "penicillin", "state": "safe"} - LLM-as-a-Judge를 통한 문맥적 사실 검증 (Fact-checking): 명사나 숫자의 추출은 전통적인 코드 오라클(Regex 등)에 맡기되, 그 추출된 데이터 주변의 관계 연산(부정인가? 긍정인가? 조건부인가?)을 해석하는 작업은 독립된 소형 룰 엔진이나 문맥 파악에 특화된 평가용 LLM에게 위임하여 AND 조건으로 결합해야 한다.
AI의 출력은 파편화된 사실들의 단순한 나열이 아니다. 오라클의 정답지는 데이터의 지시적 참/거짓을 넘어, 텍스트가 지시하는 구조적 맥락의 무결성까지 촘촘히 옭아맬 수 있어야 완전한 결정론적 제어권을 확보할 수 있다.