검색
← 모듈 로드맵

환각: 왜 생기고 어떻게 줄이나

강의 · 입문자 · KAITABASE 정리

원제 · Hallucination in LLMs

환각의 종류 · 원인 · 측정 · 탐지 · 줄이는 법을 기댓값 계산과 함께 정리하는 수업

먼저 알아야 할 것

다음 토큰 예측LLM 평가 기초기댓값RAG 개념

다루는 내용

LLM 환각을 사실성 · 충실성 두 갈래로 나누고, 데이터 · 학습 목표 · 디코딩 · 이진 채점이라는 원인을 다룹니다. 오답 감점 규칙에서 답할지 기권할지를 기댓값으로 계산하고, 원자 사실 비율로 재는 FActScore와 여러 샘플을 비교하는 SelfCheckGPT, RAG · 인용 · 검증의 사슬 · 기권 허용 같은 대응과 업무 체크리스트를 정리합니다.

해설

환각: 왜 생기고 어떻게 줄이나

환각(hallucination) 은 LLM이 그럴듯하지만 사실과 다르거나 주어진 자료와 맞지 않는 내용을 자신 있게 내놓는 현상입니다. 업무에 LLM을 쓸 때 가장 먼저 부딪히는 위험이기도 합니다. 이 수업에서는 환각의 두 갈래(사실성 · 충실성), 생기는 이유(데이터 · 학습 · 디코딩 · 평가 방식), 찾는 방법(원자 사실 채점 · 여러 번 샘플링해 비교), 줄이는 방법(근거 제공 · 검증 단계 · '모르겠다'를 허용하는 채점)을 숫자 예와 함께 정리합니다.

항목내용
참고 출처환각 서베이(arXiv 2311.05232) · 언어 모델은 왜 환각하나(arXiv 2509.04664) · FActScore(arXiv 2305.14251) · SelfCheckGPT(arXiv 2303.08896) · 검증의 사슬(arXiv 2309.11495) · 모델은 자기가 아는 것을 아는가(arXiv 2207.05221)
트랙 · 수준LLM 활용·에이전트 · 기초
이 수업이 다루는 범위환각의 정의와 종류, 원인, 측정(FActScore), 탐지(SelfCheckGPT), 줄이는 방법(RAG · 인용 · 검증의 사슬 · 기권 허용 채점), 업무 체크리스트

들어가기 전에

  • 언어 모델의 기본 — 모델은 '참인 문장'이 아니라 '그럴듯한 다음 토큰'을 냅니다. 환각을 이해하는 출발점입니다.
  • LLM 평가 — 채점 방식이 모델 행동을 바꾼다는 이야기가 이 수업에서 다시 나옵니다.

한눈에 보기

  • 환각을 '세상 사실과 다름(사실성)'과 '주어진 자료 · 지시와 다름(충실성)'으로 나눠 봅니다.
  • 정답만 점수 주는 채점이 왜 "모르면 찍기"를 부추기는지 기댓값으로 계산합니다.
  • 긴 글의 사실 정확도를 원자 사실 단위로 재는 법(FActScore)을 압니다.
  • 같은 질문을 여러 번 물어 답이 흔들리면 의심하는 탐지법(SelfCheckGPT)을 압니다.
  • 근거 자료 제공, 인용 요구, 검증 단계, 기권 허용을 조합한 실무 대응을 설계합니다.

1. 환각이란: 두 갈래

직관(해설용 비유). 시험에서 모르는 문제를 만난 학생이 빈칸 대신 그럴듯한 답을 적는 것과 비슷합니다. 문장은 매끄럽고 자신감 있지만 틀렸습니다.

Huang 외(2023)의 서베이는 환각을 둘로 나눕니다.

종류무엇과 어긋나나예(해설용)
사실성 환각(factuality)실제 세상의 사실존재하지 않는 논문 · 판례를 인용
충실성 환각(faithfulness)사용자 입력 · 제공한 문맥 · 지시회의록에 없는 결정 사항을 요약에 넣음

업무에서 특히 위험한 것은 충실성 환각입니다. 자료를 줬으니 믿고 쓰는데, 요약 · 보고서에 자료에 없는 내용이 섞이기 때문입니다.

2. 왜 생기나

① 데이터. 학습 데이터에 틀린 정보, 오래된 정보가 있거나, 드문 사실(한두 번만 나온 정보)은 모델이 제대로 익히지 못합니다.

② 학습 목표. 사전학습은 "다음 토큰을 잘 맞히기"이지 "참인 말만 하기"가 아닙니다. Kalai 외(2025)는 사실과 오류를 구분할 수 없는 경우 사전학습 단계에서 자연스러운 통계적 압력으로 오류가 생긴다고 분석하고, 환각을 이진 분류 오류의 일종으로 설명합니다.

③ 디코딩. 샘플링은 확률이 낮은 토큰도 가끔 뽑습니다. 한 번 틀린 토큰이 나오면 뒤 문장은 그 토큰에 맞춰 그럴듯하게 이어집니다(디코딩 전략).

④ 평가 · 채점 방식. 같은 논문의 핵심 주장입니다. 대부분의 벤치마크가 정답 1점, 오답과 '모르겠다' 모두 0점 으로 채점하므로, 모르면 찍는 쪽이 점수가 높습니다. 모델은 시험을 잘 보도록 최적화되면서 불확실할 때도 추측하는 습관을 갖게 됩니다.

숫자로 해 보기(해설용). 모델이 어떤 답이 맞을 확률을 pp 로 본다고 합시다.

  • 이진 채점: 찍으면 기댓값 pp, 기권하면 00. pp 가 아무리 작아도 찍는 게 이득 입니다.
  • 논문이 제안한 채점: "확신이 tt 보다 클 때만 답하라. 오답은 t/(1−t)t/(1-t) 점 감점, 정답 1점, 모르겠다 0점."
E[답할 때 점수]=p⋅1−(1−p)⋅t1−t\mathbb E[\text{답할 때 점수}] = p\cdot 1 - (1-p)\cdot\frac{t}{1-t}
기호뜻
pp모델이 판단한 정답 확률
tt채점 규칙이 정한 확신 기준
t/(1−t)t/(1-t)오답일 때 깎는 점수
tt감점p=0.6p=0.6 일 때p=0.8p=0.8 일 때
0.51+0.2+0.2 → 답함+0.6+0.6 → 답함
0.99−3.0-3.0 → 기권−1.0-1.0 → 기권

기댓값이 0이 되는 점은 정확히 p=tp=t 입니다. 즉 이 규칙에서는 "확신이 기준보다 클 때만 답하라"가 최적 행동이 됩니다(파이썬으로 검산). 논문은 새 환각 벤치마크를 더 만들기보다 이미 널리 쓰이는 벤치마크의 채점을 이렇게 바꾸자고 제안합니다.

3. 어떻게 재나: FActScore

직관. 긴 답은 맞는 문장과 틀린 문장이 섞여 있어 "맞다/틀리다"로 한 번에 판정하기 어렵습니다. 그래서 답을 더 쪼갤 수 없는 사실(원자 사실) 로 나눈 뒤, 각각을 믿을 만한 자료로 확인해 맞는 원자 사실의 비율 을 점수로 씁니다.

FActScore=자료로 뒷받침되는 원자 사실 수전체 원자 사실 수\mathrm{FActScore} = \frac{\text{자료로 뒷받침되는 원자 사실 수}}{\text{전체 원자 사실 수}}

숫자로 해 보기(해설용). 인물 소개 답을 원자 사실 8개로 나눴더니 6개가 위키백과로 확인되면 6/8=0.756/8=0.75 입니다. 논문은 인물 전기 생성에서 ChatGPT의 점수가 58%에 그쳤다고 보고했습니다. 원자 사실 분해와 확인을 자동화하는 추정기도 함께 제안했습니다.

4. 어떻게 찾나: 여러 번 물어보기

SelfCheckGPT(Manakul 외, 2023)의 직관. 모델이 정말 아는 내용이면 여러 번 샘플링해도 비슷한 답이 나옵니다. 지어낸 내용이면 샘플마다 서로 다른 말을 하며 흩어집니다. 외부 자료 없이(제로 리소스), 모델 내부 확률을 보지 않고도(블랙박스) 쓸 수 있습니다.

단계.

  1. 원래 답을 문장 단위로 나눕니다.
  2. 같은 질문으로 답을 NN 개 더 샘플링합니다.
  3. 원래 답의 각 문장이 다른 샘플들에서 지지되는지 확인합니다(논문은 여러 비교 방식을 제시합니다. 예: 다른 LLM에게 "이 샘플이 이 문장을 뒷받침하나? 예/아니오"를 묻기).
  4. 지지 비율이 낮은 문장을 환각 의심으로 표시합니다.

숫자로 해 보기(해설용). 5번 더 샘플링했을 때 "그는 1975년생이다"를 지지한 샘플이 1개뿐이면 지지율 0.2, "그는 화학자다"는 5개 모두 지지하면 1.0입니다. 앞 문장을 먼저 확인합니다.

관련 연구. Kadavath 외(2022)는 큰 모델이 객관식 · 참거짓 문제에서 형식을 잘 맞춰 주면 자기 답이 맞을 확률을 꽤 잘 보정(calibration)한다고 보고했습니다. 다만 "이 질문의 답을 내가 아는가"를 예측하는 확률(P(IK))은 새로운 과제에서 보정이 어려웠다고 적었으므로, 모델의 '자신감'을 그대로 믿기보다 외부 확인과 함께 쓰는 것이 안전합니다.

5. 어떻게 줄이나

① 근거 자료를 주고, 자료 안에서만 답하게 하기. 검색으로 찾은 문서를 프롬프트에 넣는 RAG가 가장 기본입니다(검색 증강 생성 (RAG)). "자료에 없으면 '자료에 없음'이라고 답하라"를 명시합니다.

② 인용 요구. 답의 각 주장에 근거 문장(인용)을 붙이게 하면, 사람이 확인하기 쉽고 근거 없는 주장이 드러납니다. Anthropic 문서도 긴 문서 작업에서 관련 부분을 먼저 인용하게 하라고 권합니다.

③ 검증의 사슬(Chain-of-Verification, CoVe). Dhuliawala 외(2023)의 방법은 네 단계입니다. (i) 초안 작성 (ii) 초안을 확인할 질문 계획 (iii) 그 질문들에 초안과 독립적으로 답하기 (iv) 확인 결과를 반영해 최종 답 작성. 독립적으로 답하게 하는 이유는 초안의 틀린 내용에 끌려가지 않게 하려는 것입니다.

④ 기권을 허용하고 보상하기. 2절처럼 '모르겠다'를 0점, 오답을 감점으로 두는 평가 · 운영 규칙을 만들면, 모델과 사람 모두 확신 없는 답을 줄이게 됩니다. 서비스에서는 "확실하지 않으면 담당자 연결" 같은 출구를 둡니다.

⑤ 디코딩 설정. 사실 확인형 작업은 온도를 낮춰 무작위성을 줄입니다. 다만 온도를 0으로 해도 모델이 잘못 알고 있는 내용은 그대로 나옵니다.

mermaid
flowchart LR
  Q[질문] --> R[관련 자료 검색]
  R --> G[자료 안에서만 답 · 인용 붙이기]
  G --> V[검증 질문 만들기 · 독립 답변]
  V --> C{근거와 일치?}
  C -->|예| A[최종 답 + 출처]
  C -->|아니오| F[수정하거나 '자료에 없음' · 담당자 연결]

6. 업무 체크리스트

상황할 일
숫자 · 날짜 · 고유명사가 중요원문 인용 필수, 사람이 원문 대조
법 · 의료 · 재무 판단LLM 답은 초안으로만, 전문가 검토
사내 문서 요약"문서에 없는 내용 금지" 명시, 무작위 표본 검수
코드 생성테스트 실행으로 확인(존재하지 않는 라이브러리 함수 주의)
고객 응대모르면 연결하는 경로, 답변 로그 감시

연습 문제

  1. 이진 채점에서 정답 확률 0.1인 문제를 모델이 찍으면 기댓값은? 기권하면?
    • 풀이: 찍으면 0.1점, 기권하면 0점이므로 찍는 쪽이 유리합니다. 이 구조가 추측을 부추깁니다.
  2. t=0.9t=0.9 규칙에서 p=0.95p=0.95 면 답해야 하나요?
    • 풀이: 0.95−0.05×9=0.95−0.45=0.5>00.95-0.05\times9=0.95-0.45=0.5>0 이므로 답합니다. p>tp>t 이면 기댓값이 양수입니다.
  3. 답을 원자 사실 12개로 나눴고 9개가 확인되었습니다. FActScore는?
    • 풀이: 9/12=0.759/12=0.75 입니다.
  4. 회의록 요약에 회의록에 없는 "다음 주까지 예산 확정"이 들어갔습니다. 어떤 환각인가요?
    • 풀이: 주어진 자료와 어긋나므로 충실성 환각입니다.

스스로 점검

  1. 온도를 0으로 낮추면 환각이 사라지나요?
    • 답: 아닙니다. 무작위성은 줄지만, 모델이 잘못 학습했거나 모르는 내용은 가장 확률 높은 오답으로 그대로 나옵니다.
  2. SelfCheckGPT가 외부 자료 없이도 환각을 찾을 수 있는 원리는?
    • 답: 아는 내용은 여러 샘플에서 일관되게 나오고, 지어낸 내용은 샘플마다 달라진다는 차이를 이용합니다.
  3. 검증의 사슬에서 검증 질문에 '독립적으로' 답하게 하는 이유는?
    • 답: 초안을 보면서 답하면 초안의 틀린 내용을 그대로 따라갈 수 있어서, 초안의 영향을 끊고 확인하려는 것입니다.

용어 정리

용어쉬운 뜻
환각(hallucination)그럴듯하지만 사실 · 자료와 다른 내용을 생성하는 것
사실성 환각실제 세상의 사실과 어긋나는 환각
충실성 환각주어진 입력 · 문맥 · 지시와 어긋나는 환각
원자 사실더 쪼갤 수 없는 하나의 사실 진술
FActScore원자 사실 중 자료로 확인된 비율
SelfCheckGPT여러 번 샘플링한 답끼리 비교해 환각을 찾는 방법
검증의 사슬(CoVe)초안 → 검증 질문 → 독립 답변 → 최종 답의 4단계
보정(calibration)모델의 자신감과 실제 정답률이 맞는 정도
기권(abstention)확신이 없을 때 답하지 않거나 '모른다'고 하는 것

더 깊이 보려면

다음에 볼 것

라이선스

본문은 KAITABASE 자체 해설입니다. 논문 수치와 주장은 각 원문에서 확인한 것만 옮겼습니다. 기댓값 · 지지율 · 점수 계산은 해설용 예이며 파이썬으로 검산했습니다.

출처

AI 원리부터 이해하기 · LLM 활용·에이전트 모듈

LLM 활용·에이전트 모듈 학습

이 글은 LLM 활용·에이전트 모듈의 학습 자료입니다. 전체 19개 자료 중 8번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 arXiv 원 논문