피드로 돌아가기
Stop telling your RAG bot not to hallucinate. Make it impossible.
Dev.toDev.to
AI/ML

프롬프트 기반 제어를 Retrieval Gate 코드로 대체하여 Hallucination 제거 및 정확도 100% 달성

Stop telling your RAG bot not to hallucinate. Make it impossible.

Khanh Le2026년 6월 17일5intermediate

Context

System Prompt를 통한 Hallucination 억제 시도가 LLM의 'Helpfulness' 성향으로 인해 무시되는 한계 발생. 특히 SDK 버전 업데이트에 따른 API 변경 사항이 혼재되어 잘못된 코드 스니펫을 생성하는 버전 충돌 문제 직면.

Technical Solution

  • Retrieval Tool 단계에서 Cosine Similarity 0.45 임계값을 적용한 Refusal Gate 구현으로 LLM의 임의 생성 가능성 원천 차단
  • pgvector 기반 Semantic Search와 Postgres Full-text Search를 결합한 Hybrid Search 및 Reciprocal Rank Fusion 적용으로 Recall과 Precision 동시 확보
  • LLM Cross-encoder Rerank 단계를 추가하여 최종 컨텍스트의 밀도를 높이고 노이즈 제거
  • Metadata에 Version 태그를 부여하고 Retrieval 시 Filtering 조건으로 강제하여 버전 간 정보 혼선 방지
  • Retrieval Tool의 판단 신호를 LLM이 재판단하지 않고 그대로 수용하도록 Logic Flow 설계하여 False Refusal 해결

1. Prompt에 '모르면 모른다고 답하라'는 문구 대신 Retrieval 결과셋이 비어있을 때의 예외 처리 로직을 우선 검토

2. 하이브리드 검색 후 Reranking 단계를 추가하여 LLM에 전달되는 컨텍스트의 품질을 정교하게 제어

3. 버전 관리가 중요한 도메인인 경우 Version을 단순 텍스트가 아닌 First-class Dimension으로 설정하여 필터링

4. 정량적 평가를 위한 Golden Set을 구축하고, LLM의 판단보다 시스템의 신호(Signal)가 우선시되는지 검증

원문 읽기