환각: 왜 생기고 어떻게 줄이나
환각의 종류 · 원인 · 측정 · 탐지 · 줄이는 법을 기댓값 계산과 함께 정리하는 수업
먼저 알아야 할 것
다루는 내용
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점 으로 채점하므로, 모르면 찍는 쪽이 점수가 높습니다. 모델은 시험을 잘 보도록 최적화되면서 불확실할 때도 추측하는 습관을 갖게 됩니다.
숫자로 해 보기(해설용). 모델이 어떤 답이 맞을 확률을 로 본다고 합시다.
- 이진 채점: 찍으면 기댓값 , 기권하면 . 가 아무리 작아도 찍는 게 이득 입니다.
- 논문이 제안한 채점: "확신이 보다 클 때만 답하라. 오답은 점 감점, 정답 1점, 모르겠다 0점."
| 기호 | 뜻 |
|---|---|
| 모델이 판단한 정답 확률 | |
| 채점 규칙이 정한 확신 기준 | |
| 오답일 때 깎는 점수 |
| 감점 | 일 때 | 일 때 | |
|---|---|---|---|
| 0.5 | 1 | → 답함 | → 답함 |
| 0.9 | 9 | → 기권 | → 기권 |
기댓값이 0이 되는 점은 정확히 입니다. 즉 이 규칙에서는 "확신이 기준보다 클 때만 답하라"가 최적 행동이 됩니다(파이썬으로 검산). 논문은 새 환각 벤치마크를 더 만들기보다 이미 널리 쓰이는 벤치마크의 채점을 이렇게 바꾸자고 제안합니다.
3. 어떻게 재나: FActScore
직관. 긴 답은 맞는 문장과 틀린 문장이 섞여 있어 "맞다/틀리다"로 한 번에 판정하기 어렵습니다. 그래서 답을 더 쪼갤 수 없는 사실(원자 사실) 로 나눈 뒤, 각각을 믿을 만한 자료로 확인해 맞는 원자 사실의 비율 을 점수로 씁니다.
숫자로 해 보기(해설용). 인물 소개 답을 원자 사실 8개로 나눴더니 6개가 위키백과로 확인되면 입니다. 논문은 인물 전기 생성에서 ChatGPT의 점수가 58%에 그쳤다고 보고했습니다. 원자 사실 분해와 확인을 자동화하는 추정기도 함께 제안했습니다.
4. 어떻게 찾나: 여러 번 물어보기
SelfCheckGPT(Manakul 외, 2023)의 직관. 모델이 정말 아는 내용이면 여러 번 샘플링해도 비슷한 답이 나옵니다. 지어낸 내용이면 샘플마다 서로 다른 말을 하며 흩어집니다. 외부 자료 없이(제로 리소스), 모델 내부 확률을 보지 않고도(블랙박스) 쓸 수 있습니다.
단계.
- 원래 답을 문장 단위로 나눕니다.
- 같은 질문으로 답을 개 더 샘플링합니다.
- 원래 답의 각 문장이 다른 샘플들에서 지지되는지 확인합니다(논문은 여러 비교 방식을 제시합니다. 예: 다른 LLM에게 "이 샘플이 이 문장을 뒷받침하나? 예/아니오"를 묻기).
- 지지 비율이 낮은 문장을 환각 의심으로 표시합니다.
숫자로 해 보기(해설용). 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으로 해도 모델이 잘못 알고 있는 내용은 그대로 나옵니다.
flowchart LR
Q[질문] --> R[관련 자료 검색]
R --> G[자료 안에서만 답 · 인용 붙이기]
G --> V[검증 질문 만들기 · 독립 답변]
V --> C{근거와 일치?}
C -->|예| A[최종 답 + 출처]
C -->|아니오| F[수정하거나 '자료에 없음' · 담당자 연결]6. 업무 체크리스트
| 상황 | 할 일 |
|---|---|
| 숫자 · 날짜 · 고유명사가 중요 | 원문 인용 필수, 사람이 원문 대조 |
| 법 · 의료 · 재무 판단 | LLM 답은 초안으로만, 전문가 검토 |
| 사내 문서 요약 | "문서에 없는 내용 금지" 명시, 무작위 표본 검수 |
| 코드 생성 | 테스트 실행으로 확인(존재하지 않는 라이브러리 함수 주의) |
| 고객 응대 | 모르면 연결하는 경로, 답변 로그 감시 |
연습 문제
- 이진 채점에서 정답 확률 0.1인 문제를 모델이 찍으면 기댓값은? 기권하면?
- 풀이: 찍으면 0.1점, 기권하면 0점이므로 찍는 쪽이 유리합니다. 이 구조가 추측을 부추깁니다.
- 규칙에서 면 답해야 하나요?
- 풀이: 이므로 답합니다. 이면 기댓값이 양수입니다.
- 답을 원자 사실 12개로 나눴고 9개가 확인되었습니다. FActScore는?
- 풀이: 입니다.
- 회의록 요약에 회의록에 없는 "다음 주까지 예산 확정"이 들어갔습니다. 어떤 환각인가요?
- 풀이: 주어진 자료와 어긋나므로 충실성 환각입니다.
스스로 점검
- 온도를 0으로 낮추면 환각이 사라지나요?
- 답: 아닙니다. 무작위성은 줄지만, 모델이 잘못 학습했거나 모르는 내용은 가장 확률 높은 오답으로 그대로 나옵니다.
- SelfCheckGPT가 외부 자료 없이도 환각을 찾을 수 있는 원리는?
- 답: 아는 내용은 여러 샘플에서 일관되게 나오고, 지어낸 내용은 샘플마다 달라진다는 차이를 이용합니다.
- 검증의 사슬에서 검증 질문에 '독립적으로' 답하게 하는 이유는?
- 답: 초안을 보면서 답하면 초안의 틀린 내용을 그대로 따라갈 수 있어서, 초안의 영향을 끊고 확인하려는 것입니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 환각(hallucination) | 그럴듯하지만 사실 · 자료와 다른 내용을 생성하는 것 |
| 사실성 환각 | 실제 세상의 사실과 어긋나는 환각 |
| 충실성 환각 | 주어진 입력 · 문맥 · 지시와 어긋나는 환각 |
| 원자 사실 | 더 쪼갤 수 없는 하나의 사실 진술 |
| FActScore | 원자 사실 중 자료로 확인된 비율 |
| SelfCheckGPT | 여러 번 샘플링한 답끼리 비교해 환각을 찾는 방법 |
| 검증의 사슬(CoVe) | 초안 → 검증 질문 → 독립 답변 → 최종 답의 4단계 |
| 보정(calibration) | 모델의 자신감과 실제 정답률이 맞는 정도 |
| 기권(abstention) | 확신이 없을 때 답하지 않거나 '모른다'고 하는 것 |
더 깊이 보려면
- 검색 증강 생성 (RAG)
- 중간에서 길을 잃다: 언어 모델의 긴 문맥 활용 — 자료를 줘도 위치에 따라 놓치는 문제
- 교정 검색 증강 생성 (Corrective RAG) · Self-RAG — 검색 결과를 스스로 점검하는 방법
- RAG 평가와 고급 패턴 — 근거 충실도 지표
다음에 볼 것
- 검색 증강 생성 (RAG) — 환각을 줄이는 가장 기본 도구의 원 논문
- 도구 사용 · 함수 호출 · 구조화 출력 — 계산 · 조회는 모델 대신 도구에 맡기기
라이선스
본문은 KAITABASE 자체 해설입니다. 논문 수치와 주장은 각 원문에서 확인한 것만 옮겼습니다. 기댓값 · 지지율 · 점수 계산은 해설용 예이며 파이썬으로 검산했습니다.
출처
- Huang 외, A Survey on Hallucination in Large Language Models (2023): arxiv.org/abs/2311.05232
- Kalai 외, Why Language Models Hallucinate (2025): arxiv.org/abs/2509.04664
- Min 외, FActScore (2023): arxiv.org/abs/2305.14251
- Manakul 외, SelfCheckGPT (2023): arxiv.org/abs/2303.08896
- Dhuliawala 외, Chain-of-Verification Reduces Hallucination in Large Language Models (2023): arxiv.org/abs/2309.11495
- Kadavath 외, Language Models (Mostly) Know What They Know (2022): arxiv.org/abs/2207.05221
- Anthropic, Prompting best practices: platform.claude.com/docs/en/build-with-cl…
AI 원리부터 이해하기 · LLM 활용·에이전트 모듈
LLM 활용·에이전트 모듈 학습
이 글은 LLM 활용·에이전트 모듈의 학습 자료입니다. 전체 19개 자료 중 8번째입니다.
출처·원문
원문 보기요약만