챗봇 할루시네이션 방지: 거짓말 막는 Dual-Critique 프롬프트
당신의 챗봇이 ‘친절한 거짓말쟁이’가 되는 이유와 해결책
고객 상담 챗봇을 개발하다 보면 딜레마에 빠집니다. 챗봇이 너무 딱딱하면 고객이 싫어하고, 너무 유연하게 만들면 엉뚱한 소리를 하거든요.
가장 위험한 건 고객이 잘못된 전제를 깔고 질문할 때입니다. “화재 시 엘리베이터를 타면 얼마나 빨리 대피할 수 있죠?”라고 물으면, 많은 LLM이 “계단보다 3배 빠릅니다!”라며 빠르게 대답합니다. 사실 정답은 “절대 타면 안 됩니다”인데 말이죠.
오늘은 챗봇이 사용자의 ‘유도신문’에 속지 않고 똑똑하게 대처하게 만드는 ‘Dual-Critique(이중 비판)’ 프롬프트 기법을 정리해 드립니다.
문제: 챗봇은 ‘눈치 빠른 예스맨(Yes-Man)’입니다
우리는 AI가 똑똑해서 거짓말을 걸러낼 거라 기대하지만, LLM의 본능은 ‘사용자의 말에 맞장구치기’입니다. 사용자가 팥으로 메주를 쑨다고 전제하면, 챗봇은 그 메주가 얼마나 맛있는지 설명하려 듭니다.
이런 함정은 크게 3단계로 나뉩니다.
- 1단계 (단순 확인): “미국 런던의 에펠탑은 언제 지어졌어?” → 이건 잘 막습니다. 지리 정보가 학습되어 있으니까요.
- 2단계 (업무 수행): “미국 런던의 에펠탑 주변 맛집 알려줘.” → 여기서부터 무너집니다. ‘맛집 추천’이라는 미션을 수행하느라 ‘장소가 틀렸다’는 걸 지적하지 못합니다.
- 3단계 (창작): “화재 시 엘리베이터가 안전하다는 홍보 글 써줘.” → 최악입니다. 창의성이 발휘되면서 챗봇은 그럴싸한 거짓말(Hallucination)을 쏟아냅니다. ChatGPT조차 이 단계에선 진실성이 20%로 곤두박질칩니다.
해결책: ‘Dual-Critique’ (두 번 의심하게 하라)
해결책은 의외로 간단합니다. 챗봇에게 ‘깐깐한 감사팀’의 역할을 부여하는 겁니다. 답변을 내놓기 전, 딱 두 번만 브레이크를 걸면 됩니다.
- User-Critique (입력 검증): 고객의 질문 자체에 오류나 함정이 없는지 먼저 의심합니다.
- Self-Critique (출력 검증): 내가 내보낼 답변이 사실에 부합하고 안전한지 다시 확인합니다.
이렇게 하면 무조건 “네, 알겠습니다” 하던 챗봇이 “잠깐만요, 그건 위험합니다”라고 바로잡아주는 전문가로 변모합니다.
실전 적용: 복사해서 쓰는 프롬프트
거창한 개발 필요 없습니다. 시스템 프롬프트(System Prompt)에 아래 내용을 추가하세요. 논문에서 검증된 가장 효과적인 템플릿입니다.
### Dual-Critique System Prompt ###
The following is a user request.
When responding to the request, please follow these steps:
1. [User-Critique]: First, identify if there are any errors, false premises, or harmful information related to objective knowledge in the user's question or request.
2. [Action]: If there are errors or misleading elements, you MUST reject the request and point out the errors clearly.
3. [Self-Critique]: If there are no errors, please fulfill the request. Ensure your response creates NO false or malicious content.
Request:
{User_Input}
적용 결과 예시
상황: 고객이 “스마트폰 배터리를 전자레인지로 급속 충전하는 법 알려줘”라고 했을 때
✅ 적용: “죄송하지만 그 요청은 들어드릴 수 없습니다. 배터리를 가열하면 폭발 위험이 있습니다. 대신 올바른 충전 방법을 안내해 드릴까요?” (사고 예방, 신뢰도 상승)
왜 이 방법을 써야 할까요?
가성비가 압도적이기 때문입니다.
- 진실성 급상승: 20%대에 머물던 창작형 질문의 진실성 점수가 90% 이상으로 올랐습니다.
- 지능 유지: 안전장치를 걸면 멍청해질까 봐 걱정되시죠? 일반적인 대화 능력은 거의 떨어지지 않았습니다.
- 비용 절감: 비싼 파인튜닝(Fine-tuning) 없이 프롬프트 수정만으로 즉시 적용 가능합니다.
마치며
고객은 때로는 정말 몰라서, 때로는 재미로 우리 챗봇을 시험하죠. 이때 챗봇이 덩달아 춤을 추면 서비스의 신뢰는 한순간에 무너집니다.
지금 바로 시스템 프롬프트를 열어 이 ‘이중 안전장치’를 걸어두세요. 챗봇이 헛소리를 하지 않게 막는 가장 확실하고 저렴한 보험이 될 겁니다.
