환각(hallucination)은 LLM을 다룰 때 늘 따라오는 걱정이고, 잘 설계된 RAG도 여전히 환각을 낸다. 그래서 환각을 탐지·감소시키고 출처를 정확히 인용하게 만드는 일이 RAG 파이프라인에서 가장 중요한 부분이다. 이번 편은 그 방법들을 정리한다.
1. 환각은 어떻게 일어나는가
온라인 쇼핑몰의 고객 응대 챗봇을 상상해 보자. 사용자가 "학생 할인 있나요?"라고 묻는다. retriever는 시니어·신규 고객 10% 할인 정보를 찾아 오고, 시스템 프롬프트는 LLM에게 "고객에게 친절하라"고 한다. 이 요인들이 겹쳐 LLM은 "물론이죠, 학생증만 있으면 10% 할인됩니다"라고 답한다. 문제는 — 학생 할인은 존재하지 않는다. LLM이 지어낸 것이다.

이유를 기억해야 한다. LLM은 확률 높은 텍스트 시퀀스를 (약간의 무작위와 함께) 생성하도록 설계됐다. 확률 높은 문장이 대개 사실이지만 항상은 아니다. 언어 모델은 참/거짓을 구분하도록 만들어지지 않았다 — 그저 그럴듯함/그럴듯하지 않음을 구분할 뿐이다.

2. 왜 문제인가
환각이 문제인 이유는 셋이다. 첫째, 당연히 부정확한 정보를 사용자에게 주면 안 된다. 둘째, 환각은 거의 정의상 그럴듯하게 들려서 완전한 헛소리보다 오히려 탐지가 어렵다. 셋째, 대부분의 내용이 정확해도 가끔의 환각이 시간이 지나며 시스템에 대한 신뢰를 무너뜨린다. RAG를 만드는 큰 이유 자체가 환각을 줄이기 위함이다 — 검색된 정보가 답을 근거화하고 학습에 없던 정보를 보완한다. 그래도 RAG는 환각을 완전히 막지 못하므로 추가 조치가 필요하다.

3. 환각의 유형
환각은 크기·종류가 다양하다. 할인 예시로 보면 — 실제 시니어 할인을 정확히 설명하되 10%를 5%로 잘못 말하거나(작은 오류), 더 심하게는 있는 시니어 할인을 없다고 하거나, 앞서처럼 없는 할인을 완전히 지어낼 수 있다. 그래서 정확도를 확신하려면 LLM 출력을 여러 수준에서 평가해야 한다.

4. 완벽한 해법은 없다 — self-consistency
냉정한 진실은, 현재로선 환각에 완벽한 해법이 없다. 다만 RAG는 지금 쓸 수 있는 최선의 접근 중 하나이고, 빈도를 더 낮출 방법들이 있다. 우선 knowledge base가 없다면 어떻게 탐지할지 생각해 보자 — 비교할 신뢰 가능한 외부 진실이 없으면 선택지가 적다. 한 방법이 self-consistency(자기 일관성) 체크다 — 같은 프롬프트로 여러 번 생성해 담긴 사실이 일관되는지 본다. 환각이면 비일관적으로 나올 것이라는 발상이다. 실제로는 비싸고 신뢰성이 낮다.


5. 근거화 — 검색 정보에 답을 묶기
RAG에는 knowledge base가 있으므로, 환각을 줄이는 최선은 응답을 검색된 정보에 근거화(grounding)하는 것이다. 예를 들어 시스템 프롬프트를 고쳐 "검색된 정보에 근거해서만 사실 주장을 하라"고 명시할 수 있다.

6. 출처 인용 (Citation)
더 확신하고 싶으면 LLM에게 출처를 인용하게 한다. 문장·문단 끝마다 출처를 달게 하는 것만으로도 응답을 검색 문서에 근거화할 가능성이 높아지고, 독자가 주장을 검증하기도 쉬워진다. 다만 위험은 LLM이 인용마저 지어낼 수 있다는 것 — 인용용으로 파인튜닝된 모델은 유효 인용을 더 안정적으로 낸다.

인용을 더 신뢰하려면 외부 시스템이 필요하다. 예로 ContextCite는 응답이 출처에 얼마나 근거하는지 점수화한다 — 응답을 문장 단위로 처리해 각 문장을 검색된 문서 중 하나에 귀속시키고 태그를 단다. 뒷받침 근거가 없으면 no source로 표시하고, 문장↔출처 유사도 점수를 주기도 한다. 이 태그는 최종 출력의 인용 생성에도, "얼마나 자주 근거화하는지" 평가에도 쓸 수 있다.

7. 인용 품질 평가 — ALCE
최근에는 ALCE 벤치마크처럼 시스템이 출처를 얼마나 잘 참조·인용하는지 측정하려는 노력도 있다. 미리 구성된 knowledge base와 예시 질문을 제공하고, 내 RAG로 그 프롬프트에 답하게 한 뒤 ALCE가 응답을 평가한다. fluency(유창성)·correctness(정확성)·citation quality(인용 품질) 세 지표로 점수를 낸다 — 텍스트가 얼마나 명료한지, 사실이 얼마나 맞는지, 인용이 올바른 출처와 얼마나 정합하는지다. 이런 벤치마크가 프로덕션의 환각을 직접 막진 못하지만, 시스템이 얼마나 잘 환각을 피하고 인용하는지 감을 준다.

접근 정리. ① RAG를 만드는 것 자체가 환각을 줄이는 가장 효과적인 한 걸음이다. ② 그다음 시스템 프롬프트를 다듬어 답을 검색 정보에 근거화한다. ③ 마지막으로 환각 중심 벤치마크로 근거화·인용 품질을 테스트한다. 이 조합이 환각을 크게 줄이고 신뢰할 수 있는 시스템을 만든다.

다음 글에서는 LLM 단계의 성능을 정량적으로 재는 법 — RAGAS 기반 LLM 평가(Response Relevancy·Faithfulness 등) — 를 다룬다.
'AI > RAG' 카테고리의 다른 글
| Agentic RAG (0) | 2026.07.03 |
|---|---|
| LLM 성능 평가 (RAGAS) (0) | 2026.07.03 |
| Prompt Engineering : 고급 기법 (0) | 2026.07.03 |
| Prompt Engineering : augmented prompt 구성 (0) | 2026.07.03 |
| 어떤 LLM을 고를까 (0) | 2026.07.03 |
