LLM(대규모 언어모델)은 그럴듯하게 들리는 거짓 정보를 자신 있게 생성하는 ‘환각’ 문제를 안고 있습니다. 이 글에서는 Analytics Vidhya의 실무 가이드를 기반으로, 프롬프팅부터 고급 프레임워크까지 실제 코드와 함께 환각을 줄이는 방법을 소개합니다.

환각이란 무엇인가
LLM의 환각은 모델이 그럴듯해 보이는 + 자신감 있는 + 하지만 실제로는 틀린 정보를 생성하는 현상입니다. 검색어 자동완성이나 일상적인 대화에서는 큰 문제가 아닐 수 있습니다. 하지만 의료, 금융, 법률 분야에서 LLM을 사용할 때는 심각한 위험이 됩니다.
환각이 발생하는 이유는 여러 가지입니다. 훈련 데이터가 부족하거나 오래되었을 수 있고, 프롬프트가 모호해서 맥락이 부족할 수도 있습니다. 샘플링의 무작위성도 원인이 됩니다. 플라톤의 말처럼, “현명한 사람은 할 말이 있어서 말하지만, 어리석은 사람은 무언가 말해야 하기 때문에 말한다”는 것이 LLM에게도 적용됩니다.
2025년 OpenAI와 Anthropic의 최신 연구에 따르면, 환각은 단순한 기술적 결함이 아니라 인센티브 구조의 문제입니다. 모델은 다음 토큰을 예측하도록 훈련되는데, 이 과정에서 불확실성을 표현하는 것보다 자신감 있게 추측하는 것이 더 높은 점수를 받게 됩니다. 벤치마크도 “모르겠습니다”라는 답변에 불이익을 주고, RLHF(인간 피드백 강화학습) 단계에서도 인간 평가자들이 더 길고 자세한 답변을 선호하면서 이런 편향이 증폭됩니다.
2023년 뉴욕의 한 변호사는 ChatGPT가 생성한 가짜 판례를 법정 서류에 제출했다가 제재를 받았습니다. 2025년 Scientific Reports 연구에서는 모바일 앱 리뷰 300만 건을 분석한 결과, 약 1.75%가 환각과 유사한 오류에 대한 불만이었습니다. 환각은 학계의 호기심이 아니라 실제 사용자들이 매일 겪는 문제입니다.
1. 프롬프팅: 가장 기본적이지만 강력한 방법
2025년 현재, 우리는 자연어로 AI와 소통합니다. 이는 과거처럼 복잡한 코드를 작성하거나 데이터셋을 큐레이션하는 것과는 완전히 다른 방식입니다. 프롬프팅은 진입 장벽을 낮췄지만, 언어의 모호성이라는 오래된 문제도 함께 가져왔습니다.
LLM의 아첨하는 성향을 역으로 활용할 수 있습니다. 명시적으로 환각을 자제하도록 요청하는 것입니다.
효과적인 프롬프트 예시:
- “맥락에서만 답하고, 그렇지 않으면 ‘모르겠습니다’라고 말하세요.”
- “문서의 보증 내용만 요약하고, 혜택을 추론하지 마세요.”
이 간단한 기법을 Apple Intelligence와 Grok 4도 사용합니다. Apple Intelligence의 프롬프트를 보면 “맥락에 명시적으로 언급된 내용만 사용하라”는 지시가 들어 있고, Grok 4도 비슷한 전략을 채택하고 있습니다.
기본 원칙은 간결하고 명확하며 범위를 명시하는 것입니다. 허용되는 것과 허용되지 않는 것을 구체적으로 설명하고, 가능하면 몇 가지 예시를 추가하세요.
2. 추론: 단계별로 생각하게 만들기
LLM은 인간처럼 “생각”하거나 “추론”할 수 없지만, 모델의 크기와 훈련 데이터가 증가하면서 특정 시나리오에서 추론을 모방할 수 있게 되었습니다. 가장 일반적인 접근법은 답변하기 전에 구조화된 단계나 중간 검증을 생성하도록 강제하는 것입니다.
추론을 강제하는 간단한 예:
단계별로 짧게 답하세요:
1) 하위 질문 식별
2) 증거 검색
3) 결론
증거에 근거한 최종 불릿 리스트를 반환하세요.
이 기법은 논리를 건너뛰거나 바로 결론으로 점프하는 것(잠재적으로 잘못된 답변)을 방지합니다. 또한 LLM의 “사고 과정”을 드러내기 때문에 감사하기 쉽습니다.
이 접근법은 Chain of Thought, Reason + Act 같은 기법의 기반이며, 모든 유명한 LLM의 “Reason” 또는 “Thinking” 모드의 비밀 소스입니다.

3. RAG: 신뢰할 수 있는 출처에서 정보 가져오기
레스토랑에서 웨이터가 요리에 대한 질문을 받고 셰프에게 먼저 확인한 후 답변하는 것을 본 적 있으신가요? 그게 바로 RAG(Retrieval Augmented Generation)의 직관입니다.
RAG는 의심스러울 때 신뢰할 수 있는 출처에서 더 많은 정보를 찾은 후 답변하는 방식입니다.
Perplexity는 “전체 인터넷”에 대한 RAG입니다. 웹페이지를 소스로 사용하고 정확성을 위해 인용합니다. Google의 Notebook LM도 RAG를 사용하는데, 문서나 PDF를 직접 업로드하거나 Google Drive, YouTube에서 가져올 수 있습니다.
RAG 시스템의 기본 작동 방식:
- 사용자 입력으로 관련 문서 검색
- 문서를 프롬프트와 결합
- 모델에 전달하여 최종 응답 생성
RAG의 주요 장점은 LLM 출력을 고정시키고 본질적으로 인용을 지원한다는 것입니다. 검색 메트릭과 생성 메트릭을 결합해보면 검색 성능이 향상되면 최종 생성 품질도 향상된다는 것을 알 수 있습니다.
4. ReAct: 추론과 행동의 결합
2022년 Yao 등의 ReAct 논문은 오늘날 에이전틱 AI의 도구 사용 물결에 영감을 준 접근법입니다. ReAct 이전에는 LLM 추론이 내부 추론 방법(CoT)에만 초점을 맞췄고, 도구 사용은 임시방편이었습니다.
ReAct는 두 가지를 통합합니다. 추론(생각)과 행동(도구 호출)입니다. 아이디어는 각 반복마다 추론을 생성하거나 외부 도구(날씨 API, 웹 검색 등)를 호출하여 행동하는 실행 루프에서 LLM을 실행하는 것입니다.
예를 들어, Tesla 보증에 대한 질문을 할 때 ReAct는:
- 질문 분석
- 웹 검색 도구 사용
- 검색 결과 검토
- 추가 정보 필요 시 새 검색 시작
- 충분한 정보가 모이면 답변 생성
이 과정은 동적이며 오늘날 대부분의 LLM에 반영되어 있습니다. 모델이 실제로 작업을 수행할 수 있다는 점이 정말 놀랍습니다.
5. Tree of Reviews: 다양한 경로 탐색하기
ToR(Tree of Reviews)는 추론, RAG, ReAct의 아이디어를 결합하여 LLM 출력을 생성하는 포괄적인 프로세스를 만듭니다. 2024년 발표된 이 접근법은 체계적인 검증 메커니즘을 통해 환각을 크게 줄일 수 있습니다.
기본 ReAct는 추론 생성과 행동 사이의 루프입니다. 추론을 하나 생성하고, 그것을 기반으로 행동하고, 이 과정을 반복합니다. 문제는 어떤 반복에서 LLM이 잘못된 추론을 생성하면, 그 추론을 기반으로 행동하고, 그 결과를 바탕으로 잘못된 길로 빠질 수 있다는 것입니다.
ToR는 이런 오류가 도미노 효과를 일으킬 수 있다고 지적합니다. 해결책은 여러 가능한 추론을 생성하고 전체적으로 가장 좋은 것을 선택하는 것입니다.
ToR 프로세스:
- 여러 후보 추론 경로 생성
- 각 경로를 다음 라벨로 검토
- ACCEPT → 증거 풀에 추가
- SEARCH → 쿼리 개선 + 분기 확장
- REJECT → 분기 제거
- 수락된 증거를 결합하여 최종 답변 생성
이는 랜덤 포레스트 알고리즘에서 다양한 의사결정 트리가 훈련되고, 최종 결과가 모든 트리의 예측을 집계하는 방식과 유사합니다.

6. Reflexion: 자기 비평과 수정
Reflexion은 ReAct 논문의 원저자 중 한 명인 Shunyu Yao가 공동 저자로 참여한 접근법입니다. LLM 출력을 생성하고, 비평하고, 출력을 언어적으로 반성하는 과정을 포함합니다. 이 반성 요약은 저장되어 다음 반복에 피드백(메모리)으로 전달되어 출력을 개선합니다.
Reflexion 프로세스:
- Actor(LM): 현재 입력과 과거 반성을 사용하여 행동(답변, 코드 등) 생성
- Evaluator(LM): 궤적을 검토하고 내부/외부 피드백 제공
- Self-reflection(LM): 피드백을 짧은 교훈으로 전환(“무엇이 잘못되었고, 다음에 무엇을 시도할지”)
- Experience(장기 메모리): 반성을 저장하여 Actor가 미래 시도에서 개선할 수 있도록 함
프로세스는 Actor → Evaluator → Self-reflection → Memory → Actor로 다시 이어지며, 성공할 때까지 반복됩니다. 이것은 본질적으로 자기 비평과 수정의 순환입니다.
7. 기타 주목할 만한 기법
Chain-of-Verification (CoVe)
모델이 먼저 답변을 생성한 다음, 그것을 위한 “체크리스트” 검증 질문을 생성합니다. 체크리스트는 생성된 답변이 모든 요구사항을 충족하는지 평가하는 방법입니다. 부족한 부분이 있으면 실패한 체크리스트 항목을 사용하여 원래 답변을 개선합니다.
Constitutional AI
모델이 윤리적 규칙이나 안내 원칙(“헌법”)을 사용하여 자신의 답변을 비평하고 수정하는 프로세스입니다. 이 과정에서 생성된 비평과 평가는 보상 모델을 훈련하고 RLAIF(AI 피드백 강화학습) 같은 기법을 활용하여 전체 어시스턴트를 미세 조정하는 데 사용될 수 있습니다.
장점은 개발자로서 우리가 고수준 안내 원칙을 헌법으로 제공하기만 하면, 반복적인 수정을 통해 모델이 자체 미세 조정 데이터셋을 생성한다는 것입니다.
디코딩 접근법: 내부에서 환각 차단하기
지금까지 논의한 모든 접근법은 모델의 추론 능력 향상과 관련이 있습니다. 하지만 새로운 물결의 접근법은 환각을 줄이기 위해 모델의 디코딩 프로세스를 조정합니다.
Context-Aware Decoding (CAD)
동일한 LLM으로 토큰 수준 로짓을 두 번 생성합니다. 한 번은 관련 맥락과 함께, 한 번은 없이. 두 로짓 세트를 결합하여 맥락 정보가 있는 로짓에 더 높은 가중치를 할당합니다. 이는 모델이 사전 지식보다 새로운 정보를 더 잘 반영하는 출력을 생성하도록 안내합니다.
Decoding by Contrasting Layers (DoLa)
초기 및 후기 트랜스포머 레이어의 로짓을 대조하는 접근법입니다. 저자들은 하위 레이어가 일반적으로 기본적이고 문체적이며 구문적 패턴을 포착하는 반면, 상위 또는 ‘성숙한’ 레이어는 더 정제되고 사실적이며 의미론적 지식을 보유한다고 지적합니다.
언제 어떤 기법을 사용해야 하나
각 방법을 간단히 비교해보겠습니다.
CoT (Chain of Thought)
- 구조: 단일 추론 체인
- 오류 처리: 없음(오류 전파)
- 최적 사용: 내부 지식으로 해결 가능한 문제
ReAct
- 구조: 도구 사용이 있는 단일 체인
- 오류 처리: 없음(오류 전파)
- 최적 사용: 도구 증강 추론 작업
ToR (Tree of Reviews)
- 구조: 여러 추론/검색 경로의 트리
- 오류 처리: 분기 + 가지치기로 완화
- 최적 사용: 방해 요소가 있는 복잡한 다중 홉 QA
실무에서는 간단한 접근법부터 시작하세요. 기본 프롬프팅이나 CoT 같은 추론 스타일로 시작한 다음, 점차 RAG나 ReAct/Reflexion을 추가하여 견고성을 높이세요. 다른 접근법으로 넘어가기 전에 하나의 접근법을 철저히 시도하세요.
이러한 접근법은 모델을 건드리지 않고 환각을 줄이는 데 도움이 됩니다. 그러나 모델을 환각에 대해 지속적으로 평가하고 지식 베이스를 업데이트하여 맥락을 신선하게 유지하는 오래된 방법을 이길 수는 없습니다.
의심스러울 때는 위험이 높은 경우 모델이 응답을 자제해야 합니다. 이는 정확한 문제 설명과 비즈니스 사용 사례에 따라 다릅니다. 모델에게 불확실성을 명확하게 전달하도록 프롬프트하세요.
핵심 정리
환각 문제에 대한 은탄환은 없습니다. 최선의 방법은 필요에 따라 기법을 조합하는 것입니다. LLM 시스템을 설계할 때 환각을 다루는 일반적으로 선호되는 방법은 출력을 자제하는 것입니다.
⚠️ 이 글은 AI 모델이 정리한 내용을 기반으로 작성되었으며, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다.
참고자료:
Comments