AI는 왜 거짓말을 할까? 환각(Hallucination)의 원인과 해결 방법
AI(거대 언어 모델, LLM)는 놀라운 능력을 보여주지만, 때로는 너무나 그럴듯하게 거짓말을 하거나 존재하지 않는 사실을 지어낸다. 이를 환각(Hallucination) 현상이라고 부른다. AI를 업무에 활용하는 엔지니어로서, 이 환각이 왜 발생하며 이를 어떻게 제어하고 방지할 수 있는지 이해하는 것은 선택이 아닌 필수다.
1. 환각(Hallucination)이란 무엇인가?
개념:
환각은 AI 모델이 사실에 근거하지 않거나, 주어진 데이터와 무관한 허위 정보를 생성하는 현상을 의미한다. 중요한 것은 AI가 악의를 가지고 거짓말을 하는 것이 아니라, 그저 학습된 패턴에 따라 "다음에 올 가장 그럴듯한 단어"를 예측하여 문장을 만들다 보니 발생하는 확률적 오류라는 점이다.
환각의 유형:
- 사실 왜곡: 실제 있는 인물에 대해 틀린 정보를 말함 (예: "세종대왕은 맥북을 발명했다.")
- 출처 날조: 존재하지 않는 논문이나 뉴스 기사를 출처로 제시함.
- 논리적 비약: 질문의 맥락과 상관없는 동문서답.
2. 환각은 왜 발생하는가?
-
학습 데이터의 한계:
- 오래된 정보: AI의 지식은 특정 시점까지의 데이터로 고정되어 있다. 최신 정보를 물으면 과거 데이터를 기반으로 추론하다 오류를 낸다.
- 편향되거나 잘못된 정보: 인터넷에 떠도는 잘못된 정보, 가짜 뉴스, 편향된 의견을 그대로 학습했을 경우 이를 진실인 것처럼 말한다.
-
모델의 본질적인 작동 방식 (확률적 예측):
- LLM은 정답을 '알고' 있는 것이 아니라, 다음에 올 단어의 '확률'을 예측할 뿐이다. 질문이 애매하거나 모델이 모르는 내용일 때, 침묵하는 대신 가장 자연스럽게 이어질 만한 단어들로 문장을 창작해 버린다.
-
컨텍스트 부족 및 오해:
- 사용자의 질문(프롬프트)이 너무 짧거나 모호할 때, AI는 부족한 정보를 스스로 상상해서 채워 넣으려다 환각을 일으킨다.
- 대화가 너무 길어져 컨텍스트 윈도우(기억력 한계)를 넘어가면, 앞선 대화 내용을 잊어버리고 엉뚱한 말을 하기 시작한다.
-
모델의 추론(Reasoning) 능력의 양면성
- 최신 모델의 뛰어난 추론 능력은 사실 관계를 검증하여 환각을 억제하는 데 도움을 주기도 하지만, 반대로 아는 정보가 없을 때 단편적인 지식을 무리하게 엮어 더 정교하고 그럴듯한 거짓말(환각)을 만들어내는 원인이 되기도 한다. 따라서 단순히 고성능 추론 모델을 쓰는 것만으로는 환각을 막을 수 없으며, 반드시 RAG 패턴이나 명확한 프롬프트 같은 '하네스'를 통해 모델의 추론 방향을 제어해야 한다.
3. 환각을 방지하는 방법
환각을 100% 없애는 것은 불가능하지만, 엔지니어링 기법을 통해 발생 확률을 획기적으로 낮출 수 있다.
1) 일반 사용자를 위한 방법 (LLM AI 챗 활용)
- 명확하고 상세한 프롬프트: "파이썬 알려줘"가 아니라, "파이썬 3.12 버전에서 Playwright를 사용해 웹사이트에 접속하는 예제 코드를 짜줘"라고 구체적으로 질문한다.
- 역할(Persona) 부여: "너는 10년 차 QA 자동화 전문가야"라고 역할을 지정하면, AI가 해당 분야의 지식에 더 집중하여 헛소리를 할 확률이 줄어든다.
- 소스 확인 요구: "답변의 출처를 반드시 포함해 줘"라고 요구하여, AI가 날조된 정보를 말하기 어렵게 만든다.
2) 개발자를 위한 방법 (종량제 API 활용 및 하네스 엔지니어링)
4. 추론(Reasoning) 능력과 환각의 양면성
추론이란 단순히 암기한 정보를 뱉는 것이 아니라, 주어진 정보들을 조합하고 논리적으로 사고하여 새로운 결론을 도출하는 능력이다. 최신 고성능 모델은 이 추론 능력이 비약적으로 발전했지만, 이는 환각에 대해 '양날의 검'으로 작용한다.
1. 추론을 사용할 때: 환각을 억제하는 측면 (긍정적)
- 논리적 검증: 고도의 추론 능력을 가진 모델은 질문에 답하기 전에 "내가 지금 하려는 말이 상식적으로 말이 되는가?" 혹은 "이전 대화와 모순되지 않는가?"를 스스로 검증(Self-correction)
- 복잡한 맥락 이해: 사용자의 복잡한 질문 의도를 더 잘 파악하여 동문서답(논리적 비약)을 할 확률이 줄어든다.
- 예시: "세종대왕이 맥북을 발명했어?"라고 물었을 때, 추론 모델은 '세종대왕(15세기 인물)'과 '맥북(20세기 발명품)'이라는 두 가지 정보의 시간적 모순을 스스로 인지하고 "아니요, 그건 사실이 아닙니다"라고 정확히 대답할 확률이 높다.
2. 추론을 사용할 때: 환각을 증폭시키는 측면 (부정적)
- 과도한 추론(Over-reasoning): 모델이 아는 정보가 전혀 없을 때, 침묵하는 대신 기존의 단편적인 지식들을 무리하게 엮어서 "가장 그럴듯한 소설"을 창작해 냅니다. 추론 능력이 좋을수록 이 소설이 더 정교하고 그럴듯해서 사람이 알아채기 더 어려워진다.
- 복잡계 오류: 너무 많은 변수를 고려하다가 오히려 핵심을 놓치고 잘못된 결론으로 빠지는 경우가 발생한다.
- 예시: 존재하지 않는 학술 논문에 대해 물었을 때, 추론 모델은 '일반적인 논문 제목 형식', '저자 이름 스타일', '학술지 이름 패턴' 등을 조합하여 세상에 없는 완벽한 가짜 논문 정보를 만들어낼 수 있다.