8.4.2 사실 관계 불일치(Factual Inconsistency) 자동 탐지 기법

8.4.2 사실 관계 불일치(Factual Inconsistency) 자동 탐지 기법

앞서 다룬 문맥 의존성(Context Adherence) 오라클이 “문서 안에 아예 존재하지도 않는 외부 세계의 헛소리를 함부로 지어냈는가?“를 차단하는 거시적인 문지기 형태의 방어선이라면, 사실 관계 불일치(Factual Inconsistency) 탐지 모듈은 거기서 한 발 더 깊숙이 들어가 **“분명히 문서 안에 존재하는 단어와 맥락만 썼음에도 불구하고, 타겟 모델이 글을 유창하게 병합하여 쓰다가 뉴럴망 추론 지능의 한계로 인해 내부의 인과 관계나 수치 논리를 멍청하게 비틀어버렸는가?”**를 잡아내는 가장 고도화된 스나이퍼형 정밀 타격 모델이다.

이러한 내부 왜곡(Internal Distortion) 현상은 주로 모델이 길고 복잡한 참조 문서(Context)를 사용자 친화적인 말투로 압축 요약(Summarization)하거나 동의어로 말을 이쁘게 다듬는(Paraphrasing) 렌더링 과정에서 발작적으로 발생한다.
예를 들어, 원본 규정 문서에서는 분명히 “결제 모듈 A가 다운되는 1차 실패가 발생하면, 수동 승인 B 프로세스를 대안으로 실행하라“고 명시되어 있는데, 타겟 모델이 이를 요약하다가 트랜스포머 어텐션이 꼬여서 “결제 모듈 A와 수동 승인 B 프로세스를 동시에 실행하라“고 정반대의 치명적인 사내 정책을 생성해 버리는 식이다.

이러한 미세한 악성 왜곡(Malicious Distortion)은 언어가 주는 매끄러운 유창함에 가려져 인간 검수자의 눈에도 잘 띄지 않으므로, 오라클 엔진은 이를 원천 차단하기 위해 모델 출력단에 독립적인 하드코어 팩트 체커(Fact-checker) 파이프라인을 의무 구축한다.

1. 결정론적 개체명(Named Entity) 일치성 하드 스캐닝(Hard-scanning)

오라클의 팩트 체킹 트리거가 발동될 때 가장 먼저 선행되는 관문은 매우 원시적이고 투박하지만 100% 확실한 수학적 일치성을 보장하는 정규표현식 검사, 즉 개체명 매칭 교차로다.

  1. 토큰 적출(Extraction): 오라클 에이전트는 생성된 최종 답변 텍스트 덩어리에서 Spacy, NLTK 파서나 특화된 로컬 NER(Named Entity Recognition) 모델을 동원하여, 숫자로 이루어진 금전적 금액 액수, 핵심 회사 고유 명사, 팀/부서명, 그리고 날짜(Dates) 등의 ‘절대 왜곡되어서는 안 되는’ 민감한 코어 개체명(Entities Capsule)만을 핀셋으로 적출해 배열(Array)에 담는다.
  2. 바이트 검증(Validation): 적출된 이 엔터티 토큰 배열이 원본 Context 텍스트 바이트 스트림 안에 100% 동일하게 부분 문자열(Substring Exact Match)로 존재하는지 철저한 문자열 스캐닝을 실시한다.
  3. 무관용 처단(Execution): 만약 원문 컨텍스트에 분명히 아라비아 숫자로 “1,000만 원“이라고 찍혀있는데, 타겟 생성 모델이 글을 이쁘게 쓴답시고 멋대로 “천 만원“이나 “일천만 원“이라고 텍스트 표시 형식을 변형했다면 어떻게 될까? 오라클 시스템은 이것이 인간의 유동적인 눈에는 의미상 같아 보일지언정, 기계의 결정론적 파이프라인 하에서는 ’조작되고 변조된 수치’로 정의하고 즉시 이 응답의 릴리스를 거부(Reject)하고 터뜨린다. B2B 금융 컴플라이언스나 의료 처방 도메인에서는 이러한 보수적이고 피곤한 하드 스캐닝이야말로 기업의 소송 리스크를 막아주는 유일한 생명줄과 같다.

2. QAG(Question Answering Generation) 프레임워크 기반 자가 역교차 검증

하지만 수치나 고유명사가 아닌, 동사를 중심으로 한 복잡한 ’문장의 인과관계 비틀림’을 잡아내는 데 가장 파괴적인 성능을 발휘하는 실무 SOTA 아키텍처는 바로 QAG(질문-답변 쌍 생성) 프레임워크다.
이는 유저를 위한 최종 정답 텍스트가 램(RAM)에 렌더링된 직후 버퍼(Buffer)에 머무르는 동안, 오라클 내부의 날카로운 교사 모델(Teacher Model)이 이 텍스트의 뼈대를 검거하기 위해 다음과 같은 3단계의 무한 루프를 돌며 자가 검열(Self-verification)을 뻗치는 방식이다.

  • 스텝 1 (적대적 질문 역생성): 교사 오라클이 ’타겟 모델이 방금 생성해 낸 의심스러운 답변 텍스트’만을 유일한 인풋으로 받아, 그 답변 문장 내에 숨어 있는 핵심 인과관계를 묻는 극도로 뾰족한 단답형 질문 5개를 역추적하여 창작해 낸다. (예: 타겟 LLM의 요약본이 “A버튼을 누르면 서버가 폭발한다“로 출력되었다면, 오라클은 역으로 “무엇을 누르면 폭발이 일어나는가?“라는 검증용 질문을 동적으로 생성함).
  • 스텝 2 (오염되지 않은 원문 기반 재답변): 이제 오라클은 방금 자기가 만든 그 질문을 ’의심스러운 타겟의 생성 답변’이 아닌, 100% 무결성이 보장된 가장 순수한 팩트 덩어리인 ’Vector DB 리트리버가 가져왔던 원본 Context 문서’에 다시 던져 넣어 완전히 독립적인 정답을 도출해 본다. (실제 원본 문서에는 “B버튼을 누르고 3초 뒤에 열이 가해지면 비로소 서버가 폭발한다“고 길고 복잡하게 적혀 있으므로, 교사 오라클은 원문을 읽고 “B버튼과 3초의 열“이라는 진짜 정답을 도출해 냄).
  • 스텝 3 (결정론적 모순 비교 및 Drop): 이제 법정에 두 개의 증거가 섰다. 의심받는 타겟 생성 로직이 이끌어낸 인과(A버튼)와, 절대 진리인 원문 로직이 이끌어낸 인과(B버튼+열)의 토큰 벡터가 정면으로 충돌(Collision)하는 것을 발견한 오라클 판사는, 타겟 모델이 요약 렌더링 과정에서 심각한 시맨틱 왜곡(Semantic Distortion) 범죄를 저질렀음을 확정 짓고, 생성된 답변 뭉치 전체를 메모리에서 즉각 파기(Discard) 처분한다.

이처럼 고도화된 사실 관계 불일치 탐지(Factual Inconsistency Detection) 기법은, 타겟 뉴럴 LLM이 자랑하는 요약 압축 능력과 언어적 유창함을 단 1%도 믿지 않고, 오직 각 문장의 명제가 ’수학적 원본 팩트 데이터 베이스 안에서 동일한 인과 벡터로 연역되는지’만을 고지식하고 차갑게 채점하는 완전한 결정론적 역추적 검증 체계다.