
LLM에게 콘텐츠를 자동 생성하게 하면 주어를 틀린다. 오귀속(Misattribution)을 메커니즘으로 탐지하는 3계층 패턴
요약
LLM을 이용한 콘텐츠 자동 생성 과정에서 발생하는 주어 오귀속(Misattribution) 문제를 해결하기 위한 3계층 메커니즘을 제안합니다. 예방, 탐지, 자동 리커버리 단계를 통해 인간의 개입 없이도 정보의 정확성을 유지하는 파이프라인 설계 방식을 다룹니다.
핵심 포인트
- LLM은 눈에 띄는 고유명사를 문장의 주장과 잘못 결부시키는 경향이 있음
- 프롬프트에 귀속 보전 규칙을 추가하여 생성 단계에서 오류를 예방
- 별도의 LLM 호출을 통해 원문과 대조하는 탐지 계층 구축
- 시스템 장애 시 fail-open 또는 fail-closed 동작 방식을 반드시 결정해야 함
- 오류 발생 시 1회에 한해 이유를 포함하여 재생성하는 리커버리 패턴 적용
발생한 일
나는 X(구 Twitter) 계정을 「거의 전자동」으로 운영하고 있다. RSS 수집 → LLM을 이용한 게시글 초안 생성 → 기계적인 품질 게이트(Quality Gate) → 자동 게시, 라는 파이프라인이다. 인간은 게시글을 하나씩 승인하지 않는다.
어느 날, 자동 게시된 트윗이 사실의 주어를 잘못 파악하고 있었다.
뉴스: 어떤 유출 문서(부하 직원이 작성한 간부 문서)에 「AI가 사용자를 의존하게 만들 계획」이 적혀 있었다. CEO는 그것을 공개적으로
부정했다.
AI의 게시글: 「CEO가 AI를 의존하게 만들고 싶어 하는 것 같다」
부정한 인물을 추진자로 작성했다. 입장이 반대다. LLM은 「문장 중에서 가장 눈에 띄는 고유명사(CEO)」를 「헤드라인의 주장」과 결부시켜 버린다. 그리고 문제는, 그것이 누구의 체크도 거치지 않고 공개까지 도달했다는 것이다.
이 기사는 이러한 종류의 「그럴듯한 오류」를 정신론이 아니라 **메커니즘(Mechanism)**으로 줄이는 구현 패턴을 공유하는 글이다.
왜 발생하는가: 탐지 계층의 부재
파이프라인을 분해해 보면, 오류를 막는 계층이 어디에도 없었다.
| 공정 | 수행 내용 | 오귀속을 막는 메커니즘 |
|---|---|---|
| 요약 | RSS를 cap(캡슐화) 형태로 요약 | 없음 (대립 구도가 흐려짐) |
| ... |
기계 게이트는 「형식」은 보지만 「의미의 정확성」은 보지 않는다. 여기가 구멍이었다.
해결 패턴: 예방 → 탐지 → 자동 리커버리 (Automatic Recovery)
인간의 승인을 늘리지 않고, 3개의 독립된 계층으로 대처한다.
① 예방 (생성 프롬프트 측면)
생성 프롬프트에 「귀속의 보전」 규칙을 추가한다.
- 누가 무엇을 주장하고, 누가 어떤 입장인지를 요약 내용 그대로 유지한다 - 대립 구도(추진 vs 부정)를 혼동하지 않는다
- 주어를 확정할 수 없는 주장은 개인명으로 단정하지 않고, 요약이 지지하는 입도(Granularity)로 모호하게 표현한다 (예: 「◯◯사의 내부 문서에 따르면」)
- 「가장 눈에 띄는 인명」을 헤드라인의 주장에 안이하게 결부시키지 않는다
효과는 있지만, LLM은 지시를 따르지 않을 때가 있다. 예방은 첫 번째 벽에 불과하다.
② 탐지 (생성 후의 대조 패스)
생성된 초안을 별도의 LLM 호출을 통해 「요약(= 유일한 진실)」과 대조한다. 판정 축은 두 가지만 본다.
- (a) 주어와 입장이 요약과 일치하는가
- (b) 요약에 없는 사실을 날조하고 있는가
출력 포맷을 고정하여 기계적으로 파싱(Parsing)할 수 있도록 하는 것이 핵심이다 (자유 문장은 후처리가 파괴된다).
초안1: ok
...
설계 판단: fail-open 인가 fail-closed 인가
검증 LLM이 다운되거나 출력을 읽을 수 없을 때의 동작을 반드시 결정한다.
- fail-open (읽을 수 없으면 통과): 가용성 우선. 「검증이 고장 나면 모든 게시가 중단되는 것」을 피하고 싶을 때. 오류가 드물다는 전제.
- fail-closed (읽을 수 없으면 중단): 안전 우선. 단 한 건의 오류가 치명적인 영역 (의료, 금융 등).
나의 케이스는 잡담 위주의 콘텐츠이므로 fail-open을 선택했다. 이 분기를 결정하지 않은 자동화가 세상에는 놀라울 정도로 많다. 탐지 계층은 「고장 났을 때의 동작」까지 결정해야 비로소 완성된다.
③ 자동 리커버리 (Automatic Recovery)
탐지에서 NG가 난 초안은 이유를 덧붙여 딱 1회만 재생성하고, 다시 검증한다.
- OK → 채택
- 여전히 NG → 조용히 격리 (공개하지 않음)
재생성을 「딱 1회만」으로 제한하는 것이 포인트다 (무한 루프에 의한 비용 폭발과 폭주 방지). 또한, 과도한 방어로 인해 좋은 안까지 격리되어 발신이 고갈되는 것을 방지하기 위해, NG율을 로그로 남겨 모니터링한다. 너무 지키는 것도 사고다.
검증: 유닛 테스트(Unit Test)만으로는 만족하지 않는다
사고 케이스를 fixture로 만들어 유닛 테스트를 작성한 후, 실제 운용과 동일한 모델로 실제 케이스를 재현했다.
- 나쁜 안 (CEO=추진자) →
ng
「입장을 완전히 뒤바꿈」 - 올바른 안 →
ok
"테스트가 통과(Green)\
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기