개별적으로 옳은 정보가 모이면 집합적으로 틀릴 수 있다.


검증도 통과했고 필터도 통과했다

기계적 검증이 형식 오류를 걸러냈다. 필터가 관련성, 신뢰도, 최신성을 기준으로 골라냈다.

남은 정보 30개. 전부 유효하고, 전부 관련 있고, 전부 신뢰할 만하고, 전부 최신이다.

이 30개를 컨텍스트에 넣으면 되는가.

안 된다. 한 가지를 더 확인해야 한다. 이 30개가 서로 모순되지 않는가.


모순은 개별 정보의 속성이 아니다

다음 두 서술을 보자.

  • 출처: 삼성전자 IR 공시, 2024년 10월. “삼성전자 대표이사: 전영현.”
  • 출처: 삼성전자 IR 공시, 2024년 3월. “삼성전자 대표이사: 경계현.”

각각을 보면 둘 다 유효하다. 형식이 맞고, 출처가 있고, 시점이 있고, 신뢰할 만하다. 검증을 통과한다. 필터도 통과한다.

그런데 둘이 같은 컨텍스트에 들어가면 문제가 된다. 삼성전자의 대표이사가 전영현인가 경계현인가.

각 서술이 틀린 것이 아니다. 3월에는 경계현이 맞았고 10월에는 전영현이 맞다. 개별적으로 둘 다 옳다. 그러나 동시에 컨텍스트에 존재하면 LLM은 혼란스러워한다.

이것이 정합성 문제다. 개별 정보가 아니라 정보의 집합에서 발생한다. 검증은 개별 정보를 본다. 필터도 개별 정보를 본다. 정합성은 정보와 정보 사이를 본다.


모순의 유형

컨텍스트에서 발생하는 모순은 몇 가지 유형으로 나뉜다.

시간적 모순

가장 흔하다.

같은 엔티티의 같은 속성이 시간에 따라 바뀌었는데, 서로 다른 시점의 값이 동시에 컨텍스트에 존재하는 경우.

“테슬라 CEO: 일론 머스크.“와 “테슬라 주가: $194.“가 같은 컨텍스트에 있는데, CEO 정보는 2024년 기준이고 주가는 2023년 6월 기준이면 LLM은 이것을 같은 시점의 정보로 취급할 수 있다.

더 미묘한 경우도 있다. “한국의 기준금리: 3.50%.“가 2024년 1월 기준이고 “한국의 소비자물가 상승률: 2.0%.“가 2024년 10월 기준이면 둘 다 유효하고 둘 다 한국 경제에 관련 있지만, 9개월의 시차가 있다. 이 시차가 추론에 영향을 미치는지는 맥락에 따라 다르다.

출처 간 모순

같은 사실에 대해 서로 다른 출처가 다른 값을 제시하는 경우.

  • 출처 A: “2024년 글로벌 AI 시장 규모: 1,840억 달러.”
  • 출처 B: “2024년 글로벌 AI 시장 규모: 2,140억 달러.”

어느 쪽도 “틀렸다"고 단정할 수 없다. 시장 범위의 정의가 다를 수 있고, 측정 방법이 다를 수 있다. 그러나 둘 다 컨텍스트에 넣으면 LLM은 하나를 골라야 하거나, 둘을 혼합하거나, 혼란스러워한다.

추론적 모순

직접적으로 모순되는 값은 아니지만, 함께 놓으면 논리적으로 양립할 수 없는 경우.

“A사의 시장점유율: 60%.” “B사의 시장점유율: 55%.”

각각은 유효하다. 그러나 둘을 더하면 115%다. 나머지 경쟁사의 점유율을 합치면 100%를 넘는다. 둘 중 하나가 다른 시점이거나, 다른 시장 정의이거나, 틀렸다.

이런 모순은 개별 서술만 봐서는 발견할 수 없다. 집합을 봐야 한다.


LLM은 모순을 잘 처리하지 못한다

이론적으로 LLM이 모순을 감지하고 해소할 수 있어야 한다. “이 두 정보는 시점이 다르므로 최신 것을 기준으로 답하겠습니다.”

실제로는 그렇지 않다.

LLM은 컨텍스트에 있는 정보를 신뢰하는 경향이 있다. 컨텍스트에 넣었다는 것 자체가 “이 정보를 참고하라"는 신호다. 모순되는 정보 두 개가 있으면 LLM은 하나를 무시하기보다 둘 다 참고하려 한다. 결과는 혼합이거나 혼란이다.

모순 감지에는 추론이 필요하다. “대표이사: 전영현"과 “대표이사: 경계현"이 모순인 것은 “대표이사"가 한 시점에 한 명이라는 배경 지식이 있어야 알 수 있다. 시장점유율의 합이 100%를 넘는지 확인하려면 산술이 필요하다. LLM의 추론 능력에 의존하게 된다.

모순 해소는 더 어렵다. 모순을 감지했더라도, 어느 쪽을 택할지 판단해야 한다. 더 최신인 쪽? 더 신뢰할 만한 출처? 더 많은 출처가 지지하는 쪽? 이 판단을 LLM에게 맡기면 일관성이 보장되지 않는다. 같은 모순에 대해 어떤 때는 A를, 어떤 때는 B를 택한다.

결론적으로, 모순이 컨텍스트에 들어간 뒤에 처리하는 것은 비용이 높고 결과가 불확실하다. 컨텍스트에 들어가기 전에 모순을 해소해야 한다.


자연어에서 정합성 검사가 어려운 이유

자연어 청크 30개의 정합성을 검사한다고 하자.

먼저, 같은 대상에 대한 서술인지 확인해야 한다. “삼성전자"와 “Samsung Electronics"와 “삼성"이 같은 엔티티인지. 자연어에서는 이것이 확실하지 않다. “삼성"이 삼성전자인지 삼성물산인지 삼성생명인지 맥락을 읽어야 안다.

다음, 같은 속성에 대한 서술인지 확인해야 한다. “매출"과 “revenue"와 “매출액"과 “총매출"이 같은 것인지. “영업이익"과 “operating profit"과 “영업이익률"이 같은 것인지 다른 것인지.

다음, 시점을 추출해야 한다. “지난 분기"가 언제인지. “최근"이 언제인지. “올해"가 언제인지.

이 모든 것이 끝나야 비로소 두 서술이 모순되는지 비교할 수 있다.

30개의 서술이면 비교 쌍이 435개다. 각 쌍에 대해 위의 과정을 거쳐야 한다. 전부 LLM 추론이다. 전부 비싸다. 전부 확률적이다.


구조화된 표현에서의 정합성 검사

구조화된 표현에서는 상황이 다르다.

엔티티 식별이 확정적이다. “삼성전자"라는 엔티티는 고유 식별자를 가진다. “Samsung Electronics"도 같은 식별자를 가리킨다. 동일성 판단에 추론이 필요 없다.

속성이 명시적이다. “매출"은 타입이 정의된 속성이다. “영업이익률"은 다른 속성이다. 같은 속성인지 다른 속성인지 필드 비교로 확인된다.

시점이 필드다. “2024-Q3"이라는 값이 있다. “지난 분기"를 해석할 필요가 없다. 두 서술의 시점이 같은지 다른지 값 비교 한 번이다.

이 세 가지가 확정적이면, 모순 감지의 패턴이 기계화된다.

같은 엔티티 + 같은 속성 + 같은 시점 + 다른 값 = 모순. 같은 엔티티 + 같은 속성 + 다른 시점 + 다른 값 = 변화. 모순 아님. 다른 엔티티 + 같은 속성 + 같은 시점 + 값의 합 > 100% = 추론적 모순.

이 검사에 LLM이 필요 없다. 필드 비교와 산술이다.

모든 모순을 잡을 수는 없다. “AI 시장이 성장하고 있다"와 “AI 투자가 감소하고 있다"가 모순인지는 여전히 의미적 판단이 필요하다. 그러나 기계적으로 잡을 수 있는 모순을 먼저 잡으면, 의미적 판단이 필요한 경우만 남는다. 다시 한번, 싼 것이 먼저 온다.


정합성 검사의 해소 전략

모순을 감지한 다음에는 해소해야 한다.

해소 전략은 맥락에 따라 다르지만, 구조화된 표현에서는 선언적으로 정의할 수 있다.

최신 우선. 같은 엔티티의 같은 속성이 충돌하면 시점이 더 최신인 쪽을 택한다. 대표이사, 주가, 인구 등 변하는 값에 적합하다.

고신뢰 우선. 확신도가 더 높은 쪽을 택한다. 또는 출처의 위계가 정의되어 있으면 상위 출처를 택한다. 1차 자료 > 2차 자료 > 비공식 출처.

병기. 모순을 해소하지 않고 둘 다 컨텍스트에 넣되, 모순임을 명시한다. “출처 A는 1,840억, 출처 B는 2,140억. 정의 차이에 의한 것으로 추정.” LLM이 모순을 인지한 상태에서 추론하게 한다.

제외. 모순이 해소되지 않으면 양쪽 모두 제외한다. 틀린 정보를 넣느니 정보가 없는 편이 낫다.

자연어 파이프라인에서 이 전략들은 프롬프트에 자연어로 쓰인다. “최신 정보를 우선해주세요.” LLM이 이것을 일관되게 따를지는 역시 확률의 문제다.

구조화된 표현에서 이 전략들은 정책으로 선언된다. “동일 엔티티 + 동일 속성 충돌 시: 최신 시점 우선. 시점 동일 시: 확신도 우선. 확신도 동일 시: 병기.” 기계가 실행한다. 확률이 아니다.


파이프라인에서의 위치

정합성 검사는 필터 다음에 온다.

검증 → 필터 → 정합성.

왜 이 순서인가.

검증이 형식 오류를 걸러낸다. 필터가 불필요한 정보를 걸러낸다. 정합성 검사가 처리해야 할 것은 검증과 필터를 통과한 것뿐이다.

정합성 검사는 쌍을 비교한다. n개의 서술이면 비교 쌍은 n(n-1)/2개다. 1,000개면 약 50만 쌍. 30개면 435쌍.

검증과 필터가 1,000개를 30개로 줄이면 정합성 검사의 비용은 50만에서 435로, 천 분의 일이 된다.

순서가 중요하다.


요약

개별적으로 유효하고 관련 있고 신뢰할 만한 정보들이 집합으로 모이면 서로 모순될 수 있다.

모순의 유형은 세 가지다. 시간적 모순 — 서로 다른 시점의 값이 공존. 출처 간 모순 — 서로 다른 출처가 다른 값을 제시. 추론적 모순 — 개별적으로는 유효하나 함께 놓으면 논리적으로 양립 불가.

LLM은 모순을 잘 처리하지 못한다. 컨텍스트의 정보를 신뢰하는 경향이 있고, 모순 감지에 추론이 필요하고, 모순 해소의 일관성이 보장되지 않는다.

자연어에서 정합성 검사는 전 과정이 LLM 추론이다. 엔티티 동일성, 속성 동일성, 시점 추출, 값 비교 — 전부 확률적이고 비싸다.

구조화된 표현에서는 엔티티 식별자, 속성 타입, 시점 필드가 존재하므로 모순 감지의 상당 부분이 필드 비교와 산술로 전환된다. 해소 전략 또한 정책으로 선언된다.

정합성 검사는 파이프라인에서 필터 다음에 온다. 검증과 필터가 대상을 줄여야 비교 쌍이 줄어든다. 싼 것이 먼저 오고, 집합적 검사는 개별 검사가 끝난 뒤에 온다.