개요
LLM의 과거 실패를 수집하고 재사용 가능한 패턴으로 추상화한 뒤, 새로운 문제에 프롬프트로 주입하면 오류 반복이 줄어드는지 실험했습니다.
태스크: 한국어 문서 기반 팩트 검증 (평균 1,424 단어, 5개 도메인)
핵심 발견: 정확도 81.2% → 90.0% (p=0.032), 하지만 메커니즘은 예상과 달랐습니다.
5-Arm 실험 결과
| 조건 | 정확도 | NS F1 | vs Baseline | p-value |
|---|---|---|---|---|
| A - Baseline | 81.2% | 0.857 | — | — |
| B - 정적 토이 예시 | 82.5% | 0.870 | +1.2%p | 0.501 |
| D - 길이 통제 | 82.5% | 0.868 | +1.2%p | 0.512 |
| B' - 랜덤 실제 실패 | 91.2% | 0.939 | +10.0%p | 0.010 |
| C - 리트리벌 실패 | 90.0% | 0.931 | +8.8%p | 0.032 |
B'과 C의 차이는 통계적으로 유의하지 않습니다 (p=0.749). 리트리벌이 추가 가치를 제공하지 않았습니다.
효과 분해
| 요인 | Delta | 유의? | 해석 |
|---|---|---|---|
| 길이/주의 (A→D) | +1.2%p | No | 긴 프롬프트 자체는 도움 안 됨 |
| 실패 콘텐츠 (D→B') | +8.8%p | Yes | 이것이 핵심 동인 |
| 리트리벌 (B'→C) | -1.2%p | No | 추가 가치 없음 |
오류 유형별 개선
| 오류 유형 | Baseline | With Failures | Delta |
|---|---|---|---|
| 사실 불일치 | 100% | 100% | 0 |
| 부정 뒤집기 | 62% | 100% | +38%p |
| 조건/강도 변경 | 62% | 77% | +15%p |
| 확신/상태 변경 | 46% | 77% | +31%p |
| 비근거 추론 | 100% | 100% | 0 |
모델이 기존에 약했던 유형(부정 뒤집기, 확신 변경)에서 가장 큰 개선을 보였습니다.
3-Phase 파이프라인
Phase 1 — Baseline Probe: 80개 아이템을 모델에 통과, 13개 실패 수집 (16.2% 오류율)
- *Phase 2 — Failure Abstraction**: 각 실패를 3요소로 추상화
- Pattern: 무엇이 잘못됐는지 (구조적 설명)
- Signal: 어디를 봐야 하는지 (언어적 단서)
- Lesson: 다음에 어떻게 판단할지 (실행 가능한 규칙)
Phase 3 — 5-Arm 실험: 완전히 새로운 80개 아이템으로 테스트 (문서 중복 없음)
왜 랜덤이 작동하는가
13개 실패 중 10개(77%)가 유형 5, 6에 집중. 3개를 랜덤 추출할 때 관련 유형이 하나도 없을 확률은 1.2%에 불과합니다. 실패 뱅크의 분포가 충분히 편향되어 있어 랜덤 샘플링만으로도 유효한 실패를 높은 확률로 전달합니다.
실용적 제안
실패를 사용자별로 수집하고, pattern/signal/lesson으로 추상화하여 프롬프트에 최근 N개를 주입. 리트리벌 시스템은 초기에 불필요합니다. 수백 개 이상의 다양한 실패가 쌓일 때 벡터 검색을 도입하면 됩니다.