По отдельности верная информация может быть неверна в совокупности.


Верификация пройдена. Фильтрация пройдена.

Механическая верификация отфильтровала ошибки формата. Фильтрация отобрала по релевантности, достоверности и свежести.

Осталось 30 единиц информации. Все валидны, все релевантны, все надёжны, все актуальны.

Помещаете эти 30 в контекст?

Нет. Нужно проверить ещё одно. Не противоречат ли эти 30 друг другу?


Противоречие – не свойство отдельной информации

Рассмотрим два утверждения.

  • Источник: IR-раскрытие Samsung Electronics, октябрь 2024. «Генеральный директор Samsung Electronics: Чон Ёнхён.»
  • Источник: IR-раскрытие Samsung Electronics, март 2024. «Генеральный директор Samsung Electronics: Кён Кехён.»

По отдельности оба валидны. Формат корректен, источник указан, время указано, они надёжны. Они проходят верификацию. Они проходят фильтрацию.

Но когда оба оказываются в одном контексте, возникает проблема. Генеральный директор Samsung Electronics – Чон Ёнхён или Кён Кехён?

Ни одно из утверждений не ошибочно. В марте Кён Кехён был верным ответом. В октябре – Чон Ёнхён. По отдельности оба правильны. Но когда они сосуществуют в контексте, LLM путается.

Это проблема согласованности. Она возникает не из отдельной информации, а из совокупности информации. Верификация проверяет отдельные единицы. Фильтрация проверяет отдельные единицы. Согласованность проверяет пространство между единицами.


Виды противоречий

Противоречия в контексте бывают нескольких видов.

Временное противоречие

Самый частый вид.

Одно и то же свойство одной и той же сущности менялось со временем, и значения из разных моментов времени сосуществуют в контексте.

«Генеральный директор Tesla: Илон Маск» и «Цена акций Tesla: $194» находятся в одном контексте, но информация о директоре – на 2024 год, а цена акций – на июнь 2023. LLM может воспринять их как информацию об одном моменте времени.

Бывают и более тонкие случаи. «Базовая процентная ставка Южной Кореи: 3,50%» – на январь 2024, «Потребительская инфляция Южной Кореи: 2,0%» – на октябрь 2024. Оба валидны и оба относятся к экономике Кореи, но между ними разрыв в 9 месяцев. Влияет ли этот разрыв на вывод – зависит от контекста.

Противоречие между источниками

Разные источники приводят разные значения одного и того же факта.

  • Источник A: «Объём мирового рынка AI в 2024 году: $184 млрд.»
  • Источник B: «Объём мирового рынка AI в 2024 году: $214 млрд.»

Ни одно нельзя определённо назвать «неверным». Определение рынка может различаться. Методики измерения могут различаться. Но если оба находятся в контексте, LLM должен выбрать одно, смешать оба или запутаться.

Логическое противоречие

Значения не противоречат напрямую, но логически несовместимы при совместном рассмотрении.

«Доля рынка компании A: 60%.» «Доля рынка компании B: 55%.»

Каждое по отдельности валидно. Но в сумме 115%. С добавлением оставшихся конкурентов получится больше 100%. Одно из них относится к другому периоду, использует другое определение рынка или ошибочно.

Такое противоречие нельзя обнаружить, глядя на отдельные утверждения. Нужно исследовать совокупность.


LLM плохо справляются с противоречиями

В теории LLM должен уметь обнаруживать и разрешать противоречия. «Эти два фрагмента информации различаются по времени, поэтому я отвечу на основании более свежего.»

На практике происходит иное.

LLM склонны доверять информации в контексте. Сам факт помещения чего-либо в контекст – это сигнал «обратись к этому». Когда два противоречивых фрагмента присутствуют, LLM скорее обратится к обоим, чем проигнорирует один. Результат – смешение или путаница.

Обнаружение противоречий требует рассуждений. Знать, что «Директор: Чон Ёнхён» и «Директор: Кён Кехён» противоречат друг другу, можно лишь зная, что у компании в данный момент один директор. Проверить, не превышает ли сумма долей рынка 100%, – нужна арифметика. Это зависит от способности LLM к рассуждениям.

Разрешение ещё сложнее. Даже если противоречие обнаружено, нужно принять решение, какую сторону выбрать. Более свежую? Более надёжный источник? Ту, которую подтверждает больше источников? Если это решение оставить LLM, согласованность не гарантирована. Для одного и того же противоречия он выбирает A в одном случае и B в другом.

Итог: обработка противоречий после попадания в контекст дорогая, и результат неопределён. Противоречия должны быть разрешены до попадания в контекст.


Почему проверка согласованности сложна в естественном языке

Допустим, вы проверяете согласованность 30 чанков на естественном языке.

Сначала нужно определить, об одном ли предмете идёт речь. «Samsung Electronics», «Samsung Electronics» и «Samsung» – одна и та же сущность? В естественном языке это неопределённо. «Samsung» – это Samsung Electronics, Samsung C&T или Samsung Life? Нужно читать контекст.

Затем нужно определить, описывают ли они одно и то же свойство. «Выручка», «выручка», «общая выручка» и «валовая выручка» – одно и то же? «Операционная прибыль», «операционная прибыль» и «операционная рентабельность» – одно или разное?

Затем нужно извлечь временные привязки. Когда – «прошлый квартал»? Когда – «недавно»? Когда – «в этом году»?

Только после всего этого можно наконец сравнить, противоречат ли два утверждения друг другу.

При 30 утверждениях получается 435 пар для сравнения. Для каждой пары нужно пройти через вышеописанный процесс. Всё – рассуждения LLM. Всё – дорого. Всё – вероятностно.


Проверка согласованности в структурированных представлениях

В структурированном представлении ситуация иная.

Идентификация сущностей детерминирована. У сущности «Samsung Electronics» есть уникальный идентификатор. «Samsung Electronics» указывает на тот же идентификатор. Рассуждения для определения тождественности не нужны.

Свойства явно определены. «Выручка» – это типизированное свойство. «Операционная рентабельность» – другое свойство. Одно ли это свойство или разные – подтверждается сравнением полей.

Время – это поле. Есть значение вроде «2024-Q3». Не нужно интерпретировать «прошлый квартал». Совпадает ли время двух утверждений – одно сравнение значений.

Когда эти три вещи детерминированы, паттерны обнаружения противоречий становятся механизируемыми.

Та же сущность + то же свойство + то же время + другое значение = противоречие. Та же сущность + то же свойство + другое время + другое значение = изменение. Не противоречие. Разные сущности + то же свойство + то же время + сумма значений > 100% = логическое противоречие.

LLM для этого не нужен. Сравнение полей и арифметика.

Не все противоречия можно поймать. Противоречат ли друг другу «рынок AI растёт» и «инвестиции в AI сокращаются» – по-прежнему требует семантической оценки. Но если механически обнаруживаемые противоречия пойманы первыми, остаются только случаи, требующие семантической оценки. И снова: дешёвое – в первую очередь.


Стратегии разрешения при проверке согласованности

После обнаружения противоречия его нужно разрешить.

Стратегии разрешения варьируются в зависимости от контекста, но в структурированном представлении они могут быть объявлены как политика.

Приоритет свежести. Когда одно и то же свойство одной сущности конфликтует, выбрать с более поздней временной меткой. Подходит для изменяющихся значений: директор, цена акций, население.

Приоритет доверия. Выбрать с более высокой достоверностью. Или, если определена иерархия источников, выбрать источник более высокого ранга. Первичный источник > вторичный > неофициальный.

Показать оба. Не разрешать противоречие. Поместить оба в контекст, но явно пометить противоречие. «Источник A указывает $184 млрд; источник B – $214 млрд. Вероятно, различия в определениях.» Позволить LLM рассуждать с осознанием противоречия.

Исключить оба. Если противоречие не может быть разрешено, исключить обе стороны. Отсутствие информации лучше неверной информации.

В пайплайне естественного языка эти стратегии записываются на естественном языке в промпте. «Пожалуйста, отдавайте приоритет самой свежей информации.» Будет ли LLM следовать этому стабильно – снова вопрос вероятности.

В структурированном представлении эти стратегии объявляются как политика. «При конфликте та-же-сущность + то-же-свойство: приоритет новейшей временной метке. При равных временных метках: приоритет наивысшей достоверности. При равной достоверности: показать оба.» Машина выполняет. Не вероятность.


Место в пайплайне

Проверка согласованности идёт после фильтрации.

Верификация -> Фильтрация -> Согласованность.

Почему такой порядок?

Верификация отфильтровывает ошибки формата. Фильтрация убирает ненужную информацию. Проверке согласованности достаточно обработать то, что прошло верификацию и фильтрацию.

Проверка согласованности сравнивает пары. Для n утверждений пар n(n-1)/2. 1000 даёт примерно 500 000 пар. 30 даёт 435.

Если верификация и фильтрация сократили 1000 до 30, стоимость проверки согласованности падает с 500 000 до 435 – в тысячу раз.

Порядок имеет значение.


Итог

Информация, по отдельности валидная, релевантная и надёжная, может противоречить друг другу, будучи собранной в совокупность.

Существует три вида противоречий. Временное – значения из разных моментов времени сосуществуют. Между источниками – разные источники приводят разные значения. Логическое – по отдельности валидны, но при совместном рассмотрении логически несовместимы.

LLM плохо справляются с противоречиями. Они склонны доверять информации в контексте, обнаружение противоречий требует рассуждений, и согласованность разрешения не гарантирована.

В естественном языке проверка согласованности – это сплошные рассуждения LLM. Идентификация сущностей, идентификация свойств, извлечение времени, сравнение значений – всё вероятностно и дорого.

В структурированном представлении существуют идентификаторы сущностей, типы свойств и поля времени, поэтому значительная часть обнаружения противоречий сводится к сравнению полей и арифметике. Стратегии разрешения тоже объявляются как политика.

Проверка согласованности идёт после фильтрации в пайплайне. Верификация и фильтрация должны сократить набор, чтобы число пар для сравнения уменьшилось. Дешёвое – в первую очередь, и коллективные проверки – после завершения индивидуальных.