환각 방지 - Entity Enricher 문서

환각 방지

LLM이 구조화된 데이터를 생성할 때 그럴듯해 보이는 사실을 지어낼 수 있습니다. Entity Enricher는 8개의 방어 계층을 사용하여 정확한 데이터 또는 데이터 없음을 제공하며, 자신 있게 들리는 허구는 결코 제공하지 않습니다.

구조화된 환각의 문제

자유 텍스트에서는 환각으로 생성된 문장이 명백하게 모호합니다. 구조화된 출력에서는 "founded_year": 1987과 같은 환각 필드가 권위 있어 보이며 올바른 값과 구별하기가 거의 불가능합니다. 세 가지 요인이 이를 특히 위험하게 만듭니다:

잘못된 정밀도

환각된 JSON 값은 실제 값과 똑같아 보입니다. 얼버무림도, "대략"도 없이 — 그저 깔끔하고 확신에 찬, 그러나 틀린 데이터 포인트일 뿐입니다.

스키마 부하

필수 필드는 LLM이 지식이 없을 때도 값을 생성하도록 강제합니다. 모델은 구조에 공백을 남기는 대신 데이터를 지어냅니다.

무음 전파

구조화된 데이터는 데이터베이스, 분석, 자동화로 직접 공급됩니다. 잘못된 값은 사람의 검토 없이 파이프라인 전체로 전파됩니다.

일반적인 환각 패턴

패턴예시원인
확신에 찬 허위 생성"ceo": "John Smith"LLM이 필수 필드를 그럴듯한 이름으로 채웁니다
시간적 혼동"revenue": "$2.3B"학습 데이터 마감 시점 또는 기간 혼동
엔터티 통합Company B에 대한 Company A의 속성겹치는 학습 데이터의 유사한 이름
적절한 기본값"employees": 500LLM이 모른다고 인정하기보다 “그럴듯한” 숫자를 선택합니다
지어낸 관계"subsidiary_of": "Alphabet"LLM이 존재하지 않는 관계를 추론합니다

8단계 방어 계층

Entity Enricher는 단일 기법에 의존하지 않습니다. 각각 다른 실패 모드를 겨냥하는 8개의 독립적인 방어 계층을 쌓아 올립니다. 한 계층이 환각을 놓치더라도 다음 계층이 잡아냅니다.

1
사전 분류

보강이 시작되기 전에, 빠른 LLM이 엔티티가 스키마 타입과 일치하는지 분류합니다. 이는 엔티티 전체에 대한 환각을 근본적으로 차단합니다.

예시: “Planet” 스키마에 대한 “Titan”은 위성으로 표시됩니다 — 강화 모델은 이 컨텍스트를 받아 행성 특유의 필드에는 null을 사용합니다.

2
Nullable 필드 및 보수적 prompt 작성

모든 전략은 LLM에 "정확하고 보수적으로 — 추측하기보다 null을 선호하세요."라고 지시합니다. Nullable 스키마 필드는 모델이 "모르겠습니다"라고 말할 수 있는 명시적 권한을 부여합니다.

이는 구조화된 환각의 가장 큰 원인인 스키마 압박을 직접적으로 해결합니다.

3
Expertise Domain 범위 지정

스키마 속성은 전문 영역별로 그룹화됩니다. 각 LLM 호출은 해당 영역 내의 필드만 보며, 그 영역에만 집중하라는 지침을 받습니다.

범위가 좁을수록 환각의 여지가 줄어듭니다. 금융 전문가는 규제 데이터를 추측하지 않습니다.

4
검색 키 집중

키 속성(is_key: true로 표시됨)은 프롬프트에서 강조되어, LLM이 다른 필드를 채우기 전에 식별 정보에 집중하도록 합니다.

이는 모델을 알려진 사실에 기반시켜 조작된 세부 정보로의 편차를 줄입니다.

5
스키마 검증 및 자가 수정

8개 검증 규칙이 LLM 출력에서 타입 불일치, 잘못된 참조, 구조적 오류를 검사합니다. 검증에 실패하면 ModelRetry가 트리거되어 오류가 교정을 위해 LLM으로 다시 전송됩니다.

단일 에이전트 실행 내에서 최대 6회까지 자동으로 수정합니다. LLM이 자신의 실수를 스스로 바로잡습니다.

6
로직 유지

preserve: true로 표시된 필드(ID, SKU, 타임스탬프)는 보강 후 원래 입력 값으로 복원됩니다. LLM은 실측 데이터를 덮어쓸 수 없습니다.

보호되는 필드: 엔티티 ID, 시스템 코드(EAN, SKU), 가져오기 식별자, 생성 타임스탬프입니다.

7
다중 모델 합의

동일한 엔티티를 2개 이상의 독립적인 모델에 실행하고 출력을 필드별로 비교합니다. 불일치는 잠재적 환각으로 표시됩니다.

Claude가 매출을 $2.3B라고 하고 GPT-4가 $1.8B라고 하면, 그 충돌이 감지되어 표시됩니다.

8
충돌 해결 및 중재

감지된 충돌은 규칙 기반 투표(다수결, 중앙값, 합집합) 또는 정확성, 완전성, 일관성을 평가하는 전용 LLM 중재자를 통해 해결됩니다.

각 arbitration 결정에는 근거와 신뢰 수준이 포함됩니다 — 충돌이 어떻게 해결되었는지에 대한 완전한 투명성을 제공합니다.

방어 파이프라인

1사전 분류잘못된 엔터티 유형 차단
2Nullable + 보수적 prompt스키마 부담을 줄입니다
3Expertise Domain 범위 지정LLM이 답해야 할 범위를 좁힙니다
4검색 키 집중식별자를 기준으로 삼기
5검증 및 자체 수정구조적 오류를 수정하세요
6로직 유지정답 데이터 보호
7다중 모델 합의불일치 감지
8충돌 중재추론으로 해석
강화 전
enrichment 중
강화 후

설계 철학

핵심 원칙

데이터가 없는 것이 잘못된 데이터보다 항상 낫습니다. 모든 계층이 이 원칙을 강화합니다 — 시스템은 그럴듯하게 들리는 조작된 값 대신 null을 반환하도록 설계되었습니다.

Entity Enricher가 하는 일
  • LLM이 null을 반환할 수 있도록 명시적으로 허용합니다
  • 여러 독립적인 모델로 교차 검증합니다
  • 검증된 데이터가 덮어쓰기되지 않도록 보호합니다
  • 충돌 해결 과정을 완전히 투명하게 보여줍니다
일반적인 도구가 하는 일
  • 무슨 일이 있어도 LLM이 모든 필드를 채우도록 강제합니다
  • 교차 검증 없이 단일 모델에만 의존합니다
  • LLM이 입력 데이터를 자유롭게 덮어쓰도록 허용합니다
  • 감사 추적 없이 블랙박스로 결과를 반환합니다