한 개발자의 RAG 프로토타입은 코사인 유사도가 0.50 미만인 모든 쿼리에 대한 답변을 거부하도록 설정되었습니다. 임베딩 모델을 교체하기 전까지는 완벽하게 작동했습니다. 하지만 모델을 바꾼 후, 가드는 잘못된 답변을 아무런 경고 없이 통과시키기 시작했습니다. 이 사건은 하드코딩된 유사도 임계값이 모델 간에 무너질 수 있음을 증명하며, 이는 안전 점검을 위해 임베딩 유사도에 의존하는 모든 시스템에 위협이 되는 리스크입니다.

임계값이 중요했던 이유

검색 증강 생성(RAG) 파이프라인은 종종 유사도 가드(similarity guard)를 사용합니다. 쿼리와 가장 유사한 문서 사이의 코사인 유사도가 미리 설정된 수치 미만으로 떨어지면 시스템이 답변을 중단하는 방식입니다. 가드는 검색된 컨텍스트가 빈약할 때 모델이 환각(hallucination)을 일으키는 것을 방지합니다. 기존 설정에서 0.50 임계값은 시스템의 정직함을 유지해 주었습니다. 답변할 수 없는 쿼리는 기준선 아래로, 답변 가능한 쿼리는 기준선 위로 점수가 매겨졌기 때문입니다.

임베딩 백엔드가 변경되었을 때, 동일한 0.50 기준점은 더 이상 두 그룹을 구분하지 못했습니다. 파이프라인은 시스템 충돌이나 명시적인 오류 없이도 확신에 찬, 그러나 틀린 답변을 반환하기 시작했습니다. 이 실패는 표준 랭킹 지표를 벗어났으며, 사람이 드리프트(drift)를 인지했을 때에야 비로소 드러났습니다.

기하학적 구조는 보편적이지 않습니다

모든 임베딩 모델은 고유한 기하학적 구조를 가진 고차원 공간에 언어를 매핑합니다. 따라서 코사인 유사도 값은 모델마다 서로 다른 의미를 갖습니다. 0.50이라는 점수는 어떤 모델에게는 명확한 간격의 경계선일 수 있지만, 다른 모델에게는 겹치는 영역의 깊은 내부일 수 있습니다.

  • Voyage-3 – 0.50 기준선이 점수가 낮은 답변 불가능 쿼리와 점수가 높은 답변 가능 쿼리 사이에 위치합니다. 가드가 의도대로 작동합니다.
  • BGE-Small – 많은 답변 불가능 쿼리가 0.50 이상의 점수를 기록하여 가드가 전혀 작동하지 않습니다. 기준점을 0.70으로 높이면 안전 마진이 확보됩니다.
  • Hashing-64 – 답변 가능 쿼리와 답변 불가능 쿼리의 점수가 너무 밀접하게 뒤섞여 있어 단일 임계값으로 구분할 수 없습니다. 이 모델은 유사도 가드를 지원하기에는 너무 취약합니다.

이 사례들은 더 넓은 진실을 보여줍니다. 임계값은 보편적인 규칙이 아니라 특정 모델-데이터 쌍에 종속되는 값입니다.

상수 사용의 숨겨진 비용

유사도 임계값은 다음과 같은 많은 다운스트림 작업에서 나타납니다:

  • 시맨틱 캐싱(semantic caching)
  • 중복 탐지(duplicate detection)
  • 문서 관련성 확인(document relevance checks)
  • 엔티티 매칭(entity matching)

상수 값을 사용하는 것은 모든 임베딩 모델이 동일한 점수 분포를 공유한다는 가정을 전제로 하는데, 이는 위험한 가정입니다. 이 가정이 실패하면 시스템은 아무런 경고 없이 잘못된 확신을 가진 출력을 생성하며, 이는 사용자의 신뢰를 떨어뜨리고 다운스트림 결정에 잘못된 데이터를 제공하게 됩니다.

모델별 가드 보정하기

해결책은 간단합니다. 하드코딩된 상수를 절대 배포하지 마십시오. 임계값을 새로운 임베딩 모델이 도입될 때마다 튜닝해야 하는 하이퍼파라미터로 취급하십시오.

  1. 답변 가능 및 불가능한 쿼리를 모두 포함하는 적절한 레이블링된 검증 세트를 구성합니다.
  2. 대상 모델을 사용하여 각 쿼리-문서 쌍에 대한 코사인 유사도를 계산합니다.
  3. 두 분포를 시각화하거나 거짓 확신율(false-confident rate)—후보 임계값을 초과하는 답변 불가능 쿼리의 비율—을 계산합니다.
  4. 거짓 확신율을 허용 가능한 리스크 수준 미만으로 유지하는 가장 작은 유사도 값을 선택합니다.

목표는 과도한 확신을 방지하는 것이므로, 평균 역순위(MRR)와 같은 전통적인 랭킹 지표만으로는 불충분합니다. 거짓 확신율은 가드의 실패 모드를 직접적으로 측정합니다.

반론: “일부 모델은 별도 설정 없이도 잘 작동한다”

예시의 Voyage-3처럼 잘 작동하는 특정 모델들이 우연히 0.50 가드와 일치하는 것은 사실입니다. 하지만 그것이 미래의 안정성을 보장하지는 않습니다. 모델 업데이트, 미세 조정(fine-tuning), 또는 기반 코퍼스의 변화만으로도 유사도 분포가 변하여 가드가 다시 무너질 수 있습니다. 단 한 번의 운 좋은 일치에 의존하는 것은 안일함을 초래합니다.

다음에 주목할 점

-

-

-

핵심 요약

유사도 임계값은 보편적인 안전 스위치가 아닙니다. 임베딩 백엔드나 데이터가 변경될 때마다 반드시 보정해야 하는 모델별 가드입니다. 이 사실을 무시하면 RAG 시스템은 소리 없는 환각 상태로 빠져들게 되며, 가드의 존재 목적 자체가 훼손됩니다. 유일하게 신뢰할 수 있는 방법은 체계적인 모델별 보정과 거짓 확신율에 대한 지속적인 모니터링입니다.