10.9.3 지식 베이스(Knowledge Base) 업데이트가 반영되지 않은 구형 골든 데이터의 오류

10.9.3 지식 베이스(Knowledge Base) 업데이트가 반영되지 않은 구형 골든 데이터의 오류

RAG(Retrieval-Augmented Generation) 시스템을 테스트할 때, 모델의 추론 능력(코드나 프롬프트)과 지식(벡터 DB에 저장된 문서)은 분리된 생명주기(Lifecycle)를 가진다. 이 비동기적인 아키텍처 특성은 골든 데이터셋의 메타데이터 관리에서 종종 치명적인 파편화를 일으킨다. 시스템은 멀쩡하게 최신 정보로 훌륭한 정답을 추론해 냈음에도 불구하고, 정작 채점 기준이 되는 골든 데이터셋이 ’과거의 낡은 지식’에 고착되어 있어 억울하게 테스트를 실패(Fail)하는 경우가 이에 해당한다.

1. 사건의 발단: 사내 HR 규정 변경과 RAG 챗봇 테스트

사내 복지 규정을 안내하는 내부 HR RAG 챗봇을 운영하는 기업의 사례다. 2023년까지 이 회사의 육아휴직 기간은 ’최대 1년’이었고, QA 팀은 이에 맞춰 다음과 같은 골든 데이터를 생성해 두었다.

  • User Query: “육아휴직은 최대 며칠까지 쓸 수 있나요?”
  • Expected Output (정답): “회사 내규에 따라 육아휴직은 최대 1년(365일)까지 사용 가능합니다.”

2024년 1월, 회사는 복지 제도를 개편하여 육아휴직을 ’최대 2년’으로 전격 연장했다. 데이터 엔지니어 팀은 새로운 취업 규칙 PDF 문서를 파싱하여 벡터 DB(Vector DB)의 지식 베이스를 성공적으로 오버라이팅(Overwriting)했다.

2. ’거짓 실패(False Negative)’의 대량 발생

지식 베이스 업데이트 직후 구동된 야간 CI 파이프라인에서 수백 건의 회귀 테스트 코드가 붉은빛(Fail)을 뿜어냈다. 에러 로그를 파헤친 개발자는 황당함을 금치 못했다.

  • 업데이트된 RAG 모델의 실제 정상 출력: “변경된 2024년 최신 회사 내규에 따라 육아휴직은 최대 2년까지 사용 가능합니다.”
  • 오라클 판정 결과: FAIL (사유: 골든 데이터의 정답이었던 ’1년’이라는 핵심 팩트와 의미론적으로 불일치함)

챗봇 시스템은 벡터 DB에서 완벽하게 최신 규정 문서를 검색(Retrieval)하여 역대급으로 정확하게 답변을 생성(Generation)해냈다. 버그를 일으킨 진범은 코드가 아니라, **시간의 흐름을 쫓아가지 못하고 2023년의 과거에 머물러 있던 ‘동면 상태의 골든 데이터셋 정답지’**였다.

개발자들은 이 수백 건의 ‘거짓 실패(False Negative)’ 로그를 실제 검색 붕괴 모델의 할루시네이션(Hallucination) 버그와 구분해 내기 위해 며칠 밤을 새우며 수동으로 에러 원인을 분류해야만 했다. 지식 베이스의 버저닝(Versioning)과 그것을 채점하는 골든 데이터셋의 버저닝이 완전히 단절(Decoupling)되어 있었기 때문에 빚어진 끔찍한 파편화 참사였다.

3. 부검 및 교훈: 지식-데이터 커플링(Knowledge-Data Coupling) 아키텍처 구축

현대적인 RAG 품질 보증 파이프라인에서 골든 데이터는 결코 고립된 무인도처럼 존재해서는 안 된다. 지식의 최신성과 오라클의 정합성을 동기화하기 위해 시스템 아키텍트는 반드시 ‘지식-데이터 커플링(Coupling)’ 명세를 메타데이터 층(Layer)에 강제해야 한다.

성공적인 AI 엔지니어링 팀들은 이 참사 이후 골든 데이터셋의 JSONL 스키마를 다음과 같이 파괴적으로 개조했다.

{
  "test_id": "HR-LEAVE-001",
  "query": "육아휴직은 최대 며칠까지 쓸 수 있나요?",
  "expected_output": "최대 2년까지 사용 가능합니다.",
  "dependency_metadata": {
    "linked_document_id": "hr_policy_v2.0.pdf",
    "document_hash": "a1b2c3d4e5f68a...",
    "valid_until": "2024-12-31"
  }
}

[교훈(Lessons Learned)]

  1. 의존성 문서 추적(Dependency Tracking): 모든 RAG 평가용 골든 데이터 레코드는 자신이 정답을 도출하기 위해 논리적으로 의존하고 있는 특정 지식 소스 문서(PDF나 Chunk ID)의 해시(Hash) 값이나 버전 ID를 명시적으로 트래킹(Tracking)해야 한다. 원본 지식 문서가 교체되어 DB 내 해시가 변경되면, 파이프라인은 해당 해시를 참조하던 골든 데이터를 일괄적으로 ‘신뢰할 수 없음(Stale)’ 상태로 자동 격리(Quarantine)하고 런타임 테스트 대상에서 제외시켜야 한다.
  2. 데이터 TTL(Time-To-Live) 적용: 변동성이 큰 정책 데이터나 금융 수치와 관련된 골든 데이터는 아키텍처 레벨에서 TTL(수명 주기) 제약을 갖춰야 한다. 만료 기간(valid_until)이 지나면 데이터의 오라클로서의 권위가 자동으로 파기되며, 인간 검수자(SME)의 문맥 재승인을 강제하는 알림(Alert)이 발생해야만 낡은 데이터가 훌륭하게 돌아가는 최신 코드를 억울하게 공격하는 비극을 원천 차단할 수 있다.