할루시네이션 - 블로그

🏷️ 정보 LLM

클로드한테 "서울대학교 설립 연도가 언제야?"라고 물어봤더니 틀린 연도를 당당하게 말한 적 있으신가요. 그것도 아주 자신감 넘치게.

이걸 할루시네이션(hallucination) 이라고 부릅니다. AI가 사실이 아닌 것을 사실처럼 말하는 현상입니다. 처음 경험하면 배신감이 들고, 두 번째부터는 의심이 생기고, 결국 "이거 믿어도 되나?"라는 질문이 남습니다.

거짓말을 하는 게 아닙니다. 구조적으로 이런 일이 생길 수밖에 없습니다.


AI는 사실을 저장하지 않는다

AI가 공부하는 방식부터 봐야 합니다.

클로드 같은 대형 언어 모델은 엄청난 양의 텍스트를 읽고 훈련됩니다. 책, 뉴스, 논문, 웹 페이지. 그런데 이 텍스트들을 "사실의 데이터베이스"로 정리해서 저장하는 게 아닙니다. 대신 "이런 맥락에서는 다음에 어떤 단어가 오는가"를 학습합니다.

쉽게 말하면, 모델은 "서울대학교는 ___년에 설립됐다"라는 빈칸을 채우는 데 익숙해진 것입니다. 그 빈칸에 들어갈 가능성이 높은 숫자를 계산해서 대답합니다. 이 계산이 정확한 경우가 많지만, 틀릴 때도 있습니다. 그리고 모델은 자신이 틀렸는지 모릅니다.


왜 자신감이 넘치는가

할루시네이션의 불쾌한 점은 틀린 것 자체가 아닙니다. 틀리면서도 맞는 것처럼 말한다는 것입니다.

이유가 있습니다. 모델은 답을 생성할 때 "나 지금 확실한지 불확실한지"를 별도로 계산하지 않습니다. 그냥 가장 그럴듯한 다음 토큰을 고릅니다. 불확실할 때 "잘 모르겠다"고 말하는 능력은 별도로 훈련해야 생깁니다. 최근 모델들이 많이 나아지긴 했지만, 완벽하지 않습니다.

덧붙이면, 훈련 데이터에 틀린 정보가 있었을 수도 있습니다. 인터넷에는 오류가 있는 글이 많습니다. 모델은 그 오류도 같이 학습합니다.


어떤 상황에서 잘 생기나

경험적으로 할루시네이션이 많이 나오는 상황이 있습니다.

특정 날짜, 수치, 이름. "이 논문이 몇 년도에 나왔어?", "이 사람의 나이는?" 같은 질문. 정확도가 중요한데 틀리기 쉬운 영역입니다.

훈련 데이터 이후의 사건. 모델은 학습이 끝난 시점(지식 컷오프) 이후의 일을 모릅니다. 그런데 때로 모르는 사실에 대해 그럴듯한 내용을 생성합니다.

잘 알려지지 않은 특정 정보. 유명한 것들은 훈련 데이터에 많이 등장해서 정확도가 높습니다. 반대로 특정 회사의 내부 수치, 지역 뉴스, 마이너한 논문 같은 건 데이터가 적어서 오류 확률이 올라갑니다.

길고 복잡한 추론 끝에 나오는 수치. 계산 과정이 길어질수록 오류가 쌓입니다.


줄이는 방법 — 실용적인 것들

완전히 없애는 방법은 없습니다. 하지만 줄이는 방법은 있습니다.

출처를 함께 달라고 하기. "이 주장의 근거나 출처도 같이 알려줘"라고 하면, 모델이 근거가 없는 주장을 생성하는 빈도가 줄어듭니다. 근거를 만들어야 하기 때문에 더 신중해집니다. 물론 출처도 가짜일 수 있습니다 — 반드시 직접 확인해야 합니다.

*"잘 모르면 모른다고 해줘"라고 명시하기.* 이게 꽤 효과 있습니다. 모델이 불확실성을 표현하도록 유도합니다.

사실 확인이 필요한 정보는 AI를 1차 도구로만 쓰기. 방향을 잡거나 초안을 만드는 데 쓰고, 수치나 날짜 같은 사실은 원본 소스에서 확인합니다.

모델에게 스스로 검토하도록 하기. 답을 받은 다음 "방금 한 말 중에 확실하지 않은 부분이 있으면 표시해줘"라고 하면 추가적인 확인이 됩니다.


할루시네이션이 줄어들고 있다

좋은 소식도 있습니다. 최신 모델들은 이전보다 할루시네이션이 훨씬 줄었습니다. 훈련 방법의 개선, 검색 기능 통합(RAG), 불확실성 표현 능력 향상이 합쳐진 결과입니다.

클로드 최신 버전은 모르는 것을 꽤 솔직하게 말하는 편입니다. 여전히 틀릴 때가 있지만, 이전처럼 자신감 넘치게 틀리는 빈도는 많이 낮아졌습니다.

그래도 사라진 건 아닙니다. 특히 정확도가 중요한 맥락에서는 AI 출력을 그대로 믿지 않는 습관이 필요합니다. AI는 초안을 빠르게 만들어주는 도구입니다. 사실 검증은 여전히 사람의 영역입니다.