3.6.3.2 가중치 기반의 정답 유사도 평가 모델
결정론적 오라클(Oracle)이 채택하는 이분법적인 Pass/Fail 구조는 시스템을 견고하게 만들지만, 동시에 자연어 처리의 미묘한 발전을 과소평가하게 만드는 부작용(Test Brittleness)을 낳는다. 이를 보완하기 위해 오라클 파이프라인은 ’부분 점수(Partial Credit)’를 허용해야 하며, 가장 공학적으로 우수한 방식은 각 추출 항목별 비즈니스 치명도(Criticality)를 수치화한 **‘가중치 기반의 정답 유사도 평가 모델(Weighted Semantic Similarity Model)’**을 도입하는 것이다.
1. 비즈니스 임팩트에 따른 필드별 가중치 할당 (Weight Allocation)
AI가 출력한 결과물이 정답지와 얼마나 일치하는지 평가할 때, 모든 데이터 필드(Field)가 동일한 가치를 가지는 것은 아니다. 오라클의 스키마는 각 필드가 시스템에 미치는 폭발 반경에 따라 가중치(W)를 차등 부여해야 한다.
- 절대적 제약 조건 (Weight = 1.0, Exact Match 강제): 계좌 번호, 사용자 식별자(ID), 송금 금액 등 단 하나의 문자라도 틀리면 치명적인 버그를 유발하는 필드다. 이 영역은 코사인 유사도를 허용하지 않으며, 무조건적인 문자열/타입 일치(Exact Match)를 요구한다.
- 고가중치 문맥 (Weight = 0.7, High Similarity 강제): 상품의 결함 증상, 배송 주소 등 의미가 훼손되면 안 되는 필드다. 높은 수준의 임베딩 유사성이 요구된다.
- 저가중치 문맥 (Weight = 0.3, Low Similarity 허용): 사용자의 불만 사항 요약, 인사말 등 문맥만 대략적으로 파악하면 충분한 필드다.
2. 복합 유사도 점수(Composite Score) 산출 공식
오라클은 AI가 생성한 응답(\hat{Y})과 골든 데이터셋의 정답(Y)을 비교할 때, 필드 단위로 유사도를 구하고 여기에 가중치를 곱하여 최종 복합 점수(Composite Score)를 산출한다.
각 필드 i에 대하여, 유사도(Similarity, S_i)와 가중치(Weight, W_i)가 주어졌을 때 총점은 다음과 같이 계산된다.
Weighted\_Score = \frac{\sum_{i=1}^{N} (S_i \times W_i)}{\sum_{i=1}^{N} W_i}
이때, 유사도 함수 S_i는 필드의 특성에 따라 다르게 적용된다.
- 스칼라(Scalar) 필드: 일치하면 1.0, 불일치하면 0.0
- 텍스트(Text) 필드: 정답 텍스트와 출력 텍스트의 임베딩(Embedding) 벡터 간의 코사인 유사도(\cos\theta) 결과값 (0.0 ~ 1.0)
- 배열(Array) 필드: 자카드 유사도(Jaccard Similarity)
3. 연속적 점수를 결정론적 한계점(Deterministic Threshold)으로 매핑
오라클 시스템의 최종 철학은 “설사 중간 과정이 확률적이고 연속적(Continuous)일지라도, 최종 판정은 시스템이 실행할지 말지(Go/No-Go)를 결정짓는 이산적(Discrete)인 참/거짓이어야 한다“는 것이다.
가중치 기반 평가를 통해 Weighted\_Score가 0.87이라는 연속적인 실수(Float)로 계산되었다 하더라도, 테스트 파이프라인의 최종 출력은 이 수치를 평가하지 않는다. 오라클 아키텍트는 비즈니스 도메인의 위험도에 따라 사전에 **엄격한 임계값(Threshold, 예: \tau = 0.85)**을 하드코딩해 두어야 한다.
def oracle_evaluation(ai_output, ground_truth):
score = calculate_weighted_similarity(ai_output, ground_truth)
THRESHOLD = 0.85
return "PASS" if score >= THRESHOLD else "FAIL"
이를 통해 엔지니어는 AI가 “계좌 번호는 맞혔지만, 요약 문장을 약간 틀리게 작성한 경우“를 PASS로 부드럽게 용인하면서도, “요약 문장은 완벽하지만 계좌 번호가 하나 틀린 경우“는 가중치 연산에 의해 총점이 \tau 아래로 추락하여 가차 없이 FAIL 처리되는, 유연성과 엄격함이 공존하는 궁극의 오라클을 손에 넣게 된다.