3.4.2.1 수학적 연산 결과 및 코드 실행 결과의 일치 여부
언어 모델은 근본적으로 텍스트의 통계적 패턴을 생성하도록 학습되었기 때문에, 사칙 연산이나 복잡한 비즈니스 수식의 정확성을 그 자체로 보장하지 못한다. “345,678 * 12.5% = ?“라는 쿼리에 대해 언어 모델은 그럴듯한 숫자를 지어내어 응답할 확률이 높으며, 이러한 수학적 환각(Mathematical Hallucination)은 금융, 보험, 커머스 도메인에서 치명적인 서비스 장애를 유발한다.
이를 통제하기 위한 기법이 바로 ’로직/연산 기반 정답지(Logic/Calculation-based Ground Truth)’이다. 이 정답지 유형은 텍스트의 형태가 아니라, 정제된 상태의 수치적 출력값을 오라클(Oracle)의 비교 대상으로 삼는다.
1. 정답 공간(Answer Space)의 분리와 산술적 오라클
AI 시스템이 연산 오류를 내지 않도록 방어하는 아키텍처는 주로 두 가지 방식으로 구현된다. 하나는 도구 사용(Tool Use, Function Calling)을 통해 예측 가능성을 레거시 시스템에 맡기는 것이며, 다른 하나는 코드 생성(Code Generation)을 통해 검증 가능한 논리를 도출하는 것이다. 정답지는 각 방식에 맞추어 연산의 ‘결괏값’ 그 자체를 엄격히 규정해야 한다.
- 산술적 환각 방어: 시스템은 AI가 내뱉은 자연어 텍스트 문장 틈에 섞여 있는 숫자를 정규표현식(Regex)을 통해 추출한 뒤, 정답지에 선언된 기댓값(Expected Value)과 산술적으로 비교(
==)한다. - 안티 패턴:
"할인된 가격은 45000원입니다."라는 문장 전체를 정답지와 일치하는지 비교 구문으로 검증. - 결정론적 패턴: 추출 파이프라인이 뽑아낸 정수형 변수
45000이 정답 데이터셋에 기재된{"expected_price": 45000}과 숫자 수준에서 일치하는지 검증.
2. 코드 실행 파이프라인을 통한 동적 결과 비교
더 복잡한 논리 검증이 필요한 경우, AI가 답을 직접 내놓지 않고 Python이나 SQL과 같은 **‘코드를 생성(Code Generation)’**하게 한 뒤, 그 실행 결과를 오라클로 평가하는 동적 검증(Dynamic Verification) 전략이 사용된다.
- 코드 샌드박스 실행(Sandboxed Execution): AI가 작성한 분석용 파이썬 스크립트나 SQL 쿼리를 격리된 샌드박스 환경(Docker 컨테이너 등) 내에서 직접 실행한다.
- 결과 동등성(Result Equivalence) 평가: 오라클에 등재된 정답지는 ’성공적인 실행 시 반환되어야 할 데이터프레임(DataFrame) 스키마와 결과 배열, 또는 최종 수치’를 보관한다. 오라클은 AI가 짠 코드의 형태(변수명, 루프 방식 등)가 어떻게 다르든 상관하지 않고, 오직 코드가 반환한 결과 행렬(Result Matrix)이 정답지의 형태적, 산술적 규격을 불일치 없이 준수했는지만을 평가(Evaluate)한다.
3. 부동 소수점(Floating Point) 오차의 공리적 수용
연산 결과를 검증하는 오라클을 설계할 때 프로그래머가 저지르는 가장 흔한 실수는, 다른 언어나 머신에서 계산된 부동 소수점 값이 바이트(Byte) 수준에서 정확히 일치할 것이라고 가정하는 것이다.
파이썬의 0.1 + 0.2가 0.30000000000000004를 반환하듯, LLM 내부의 Python Interpreter 도구와 백엔드의 Java 기반 비즈니스 룰 엔진(BRE)이 계산한 값은 미세한 엡실론(Epsilon, \epsilon) 오차를 동반할 수밖에 없다.
- \epsilon-임계값 적용: 오라클 스크립트에는 반드시 허용 오차(Tolerance)를 적용한 검증식(
abs(output - expected) < 1e-6)이 포함되어야 한다. 이를 지키지 않는 연산 오라클은 거짓 음성(False Negative)을 끝없이 쏟아내는 깨진 테스트 스위트(Flaky Test Suite)로 전락하게 된다.
결론적으로, 로직 및 연산 기반 정답지를 활용하는 오라클은 모델의 언어적 포장(Natural Language Wrapping)을 모두 걷어내고, 그 중심에 있는 뼈대(숫자와 자료구조)에만 철저히 집중하는 가장 차갑고 엄밀한 심판관으로 기능해야 한다.