10.9.1 과적합(Overfitting)된 프롬프트 예제 데이터가 범용성을 해친 사례

10.9.1 과적합(Overfitting)된 프롬프트 예제 데이터가 범용성을 해친 사례

프롬프트 엔지니어링(Prompt Engineering) 기법 중 가장 널리 쓰이는 것은 퓨샷 프롬프팅(Few-Shot Prompting)이다. 이는 모델에게 기대하는 입출력 쌍(Input-Output Pair)을 지시어 안에 예제(Example)로 몇 개 박아 넣어, 모델이 그 패턴을 모방하도록 강제하는 기법이다. 그러나 이 ’예제’가 골든 데이터셋의 평가 로직과 잘못 엮였을 때, AI 시스템은 치명적인 과적합(Overfitting) 상태에 빠지게 된다. 프로덕션 환경에서 발생했던 대표적인 실패 사례를 통해 그 위험성을 분석한다.

1. 사건의 발단: 이커머스 AI 검색 시스템의 벤더사 도입기

한 대형 이커머스 기업(이하 X사)은 사용자의 자연어 질문(“비 올 때 입기 좋은 옷 찾아줘”)을 자사의 상품 검색 API 포맷 형태의 JSON 쿼리로 변환하는 LLM 기반 검색 에이전트를 도입했다. QA 팀은 모델의 변환 능력을 검증하기 위해 약 5,000개의 골든 데이터셋을 구축했고, 모델의 정확도를 끌어올리기 위해 시스템 프롬프트 안에 다음과 같은 퓨샷 예제(Few-Shot Example) 3개를 하드코딩해 넣었다.

  • 예제 1: “빨간색 구두 찾아줘” -> {"category": "shoes", "color": "red"}
  • 예제 2: “검은색 가죽 바지” -> {"category": "pants", "color": "black", "material": "leather"}
  • 예제 3: “노란색 반소매 티셔츠” -> {"category": "t-shirt", "color": "yellow", "sleeve": "short"}

초기 회귀 테스트에서 시스템은 이 골든 데이터셋을 상대로 무려 98%의 정답률(Accuracy)을 기록하며 화려하게 통과(Pass)했다.

2. 프로덕션 환경에서의 참사(Production Disaster)

그러나 이 시스템이 실제 상용 환경에 배포되자마자 치명적인 결함이 드러났다. 실제 사용자들이 “삼성 75인치 QLED TV 찾아줘“나 “맥북 프로 16인치 M3 모델“과 같은 가전제품에 대한 쿼리를 던지자, LLM은 다음과 같이 붕괴된 JSON을 반환했다.

  • 실제 출력: {"category": "TV", "color": "QLED", "brand": "삼성"} (QLED를 색상 필드에 매핑)
  • 실제 출력: {"category": "laptop", "color": "16인치"} (크기를 색상으로 오인)

3. 부검(Post-Mortem) 및 교훈: 퓨샷(Few-Shot) 예제의 파괴적 편향성

사후 분석 결과, 원인은 명백했다. 시스템 프롬프트에 제공된 3개의 퓨샷 예제가 우연히도 모두 **‘색상(Color)’**을 포함한 ‘의류(Apparel)’ 도메인에 심각하게 편중되어(Biased) 있었던 것이다.

LLM은 이 퓨샷 예제들을 단순한 포맷(JSON 형식)의 참고용으로만 학습한 것이 아니라, **“모든 사용자 검색어에는 반드시 ‘색상’ 속성이 필수적으로 들어가야 한다“라는 잘못된 암묵적 규칙(Implicit Rule)**까지 심층적으로 역엔지니어링(Reverse-engineering)해버렸다. 그 결과, 색상이라는 개념 자체가 거의 존재하지 않는 가전제품 도메인에서조차 모델은 필사적으로 색상 필드를 억지로 채워 넣으려다가 ’QLED’나 ’16인치’를 색상에 욱여넣는 환각(Hallucination)을 일으킨 것이다.

더욱 끔찍한 점은, QA 팀이 구축한 5,000개의 통합 골든 데이터셋 역시 의류 도메인의 검색어 위주로 편향되게 구축되어 있었기 때문에, 이 치명적인 과적합 현상을 CI/CD 파이프라인에서 도무지 걸러내지(Catch) 못했다는 사실이다.

[교훈(Lessons Learned)]

  1. 예제 데이터의 다각화(Diversification): 프롬프트 내의 퓨샷 예제는 반드시 시스템이 다루는 가장 이질적인 도메인(의류, 가전, 식품 등)들을 수평적으로 포괄할 수 있도록 직교성(Orthogonality)을 띠어야 한다.
  2. 골든 데이터셋의 스트레스 테스트(Stress Testing): 골든 데이터셋은 모델이 평소에 쉽게 맞추는 일반적인(Typical) 데이터로만 채워져서는 안 된다. 프롬프트 내에 기재된 퓨샷 예제가 전혀 커버하지 못하는 완전한 사각지대(Blind Spot)를 의도적으로 타격하는 엣지 케이스(Edge Case) 데이터가 필수적으로 방어벽 안에 포함되어야만 오라클로서의 제구실을 할 수 있다.