콘텐츠로 이동

02-구조

02 · 환각을 잡는 4가지 표준 패턴

섹션 제목: “02 · 환각을 잡는 4가지 표준 패턴”

운영 환경에서 환각을 다루는 표준 도구는 크게 4가지다. 각각 하나씩 더해질 때마다 방어 깊이 가 깊어진다.

1. Grounding — 사실을 먼저 컨텍스트에 깐다

섹션 제목: “1. Grounding — 사실을 먼저 컨텍스트에 깐다”

가장 단순하고 가장 효과적인 패턴이다. 모델이 답을 생성하기 에, 관련 사실을 컨텍스트에 명시적으로 박아 둔다. 형태:

  • 관련 문서·코드·로그를 발췌해 함께 보낸다.
  • “제공된 자료에 없는 사실은 추측하지 말고 ‘모름’이라고 답하라”는 디렉티브를 명시한다.
  • 출력이 인용을 어느 자료의 어느 부분 에서 가져왔는지 표시하도록 강제한다.

본 위키 자체가 이 패턴을 적용한다 — 모든 사실은 sources/에 매핑된다. CLAUDE.md §7 “출처 없는 사실 진술 금지”가 그 운영 규칙이다.

2. Tool Use — 모델 대신 진짜 시스템 에게 묻는다

섹션 제목: “2. Tool Use — 모델 대신 진짜 시스템 에게 묻는다”

모델 안의 “기억”이 불확실하면, 외부 도구가 답을 직접 측정 하게 한다.

  • 코드 실행: code_execution 도구로 모델의 코드 추측을 실제 실행 결과로 검증.
  • 검색: web_search·MCP 검색 서버로 최신 사실 가져오기.
  • 파일 읽기: 모델이 코드를 기억 하는 대신 파일 시스템에서 읽게 한다.

원문 (Anthropic, Tool use with Claude): “Tool access is one of the highest-leverage primitives you can give an agent. On benchmarks like LAB-Bench FigQA … and SWE-bench …, adding even basic tools produces outsized capability gains, often surpassing human expert baselines.”
의역: “도구 접근은 에이전트에게 줄 수 있는 가장 레버리지 큰 원시 기능이다. LAB-Bench FigQA, SWE-bench 같은 벤치마크에서 기본 도구만 추가해도 사람 전문가 기준선을 웃도는 능력 향상이 나타난다.”
— sources/01-anthropic-official/api/tool-use-overview.md

도구는 환각을 막는 가장 강력한 한 가지 수단이다. 본 위키 Part 8(MCP)이 이 운영을 본격 다룬다.

3. 검증 루프 — 다른 패스가 본다

섹션 제목: “3. 검증 루프 — 다른 패스가 본다”

OMC가 가르치는 writer → reviewer → verifier 분리 패스 가 이 패턴이다. 같은 모델이라도 다른 시스템 프롬프트·다른 역할·다른 컨텍스트 로 다시 호출하면 첫 번째 호출의 환각을 잡아낼 수 있다.

원문 (Anthropic, Claude Code Best Practices): “Subagents for context isolation — spawn fresh agents for verification, search, or risky exploration so the main thread keeps a clean context.”
의역: “검증·탐색·위험 작업은 새 서브에이전트로 격리해 메인 컨텍스트를 깨끗하게 유지하라.”

CLAUDE.md §10 “writer-reviewer-verifier 분리 패스”·“자기 승인 금지”가 이 원칙의 직접적인 운영 규정이다.

4. 다수결·재시도 — 확률성을 통계로 줄인다

섹션 제목: “4. 다수결·재시도 — 확률성을 통계로 줄인다”

같은 질문을 여러 번 호출해 다수결을 취하거나, 결정적 손잡이(temperature=0)와 결합해 답의 흔들림을 줄인다. 코드 생성에서는 “여러 번 만들어 테스트가 통과하는 답을 채택”이 흔한 형태다.

평가 — 환각을 측정 하는 벤치마크들

섹션 제목: “평가 — 환각을 측정 하는 벤치마크들”

환각을 줄이려면 먼저 측정할 수 있어야 한다. 코딩 에이전트 영역에서는 다음 벤치마크가 표준이 되었다.

  • SWE-bench — 실제 GitHub 이슈를 해결해야 하는 평가. 환각으로 만든 가짜 함수는 테스트가 잡는다. (sources/18-research-papers/eval/swe-bench-arxiv-2310-06770.md)
  • SWE-bench Verified — 사람이 검수한 SWE-bench 부분 집합. (sources/18-research-papers/eval/swe-bench-verified-openai-2024.md)
  • LiveCodeBench — 학습 데이터 누수를 줄이기 위해 시간 차원을 도입한 코딩 평가. (sources/18-research-papers/eval/livecodebench-arxiv-2403-07974.md)

이 벤치마크들이 가르치는 한 가지 — 테스트 가능한 작업으로 환각을 묶어 두면, 환각은 통계적으로 잡힌다. 본 위키 Part 4/05 평가 챕터에서 본격 인용한다.

패턴무엇을 막는가
1Grounding”모르는 것을 추측”
2Tool use”기억의 부정확함”
3검증 루프”한 패스의 자기 확신”
4다수결·테스트”확률적 흔들림”

이 4겹을 모두 두르면 환각을 없앨 수는 없어도 운영 가능한 수준으로 줄일 수 있다.