- Почему противоречивые утверждения могут выглядеть так похоже?
- Почему эмбеддинги могут упустить слово, меняющее смысл?
- Насколько близки оценки противоречий на самом деле?
- Что происходит, когда старая и новая информация конфликтуют?
- Та же проблема применима к мультимодальному RAG
- Как стандартный RAG может скрывать противоречивую информацию? Top-k поиск может скрыть одну из сторон разногласий. Разбиение на фрагменты (чанкинг) может удалить важный контекст. Удаление дубликатов может стереть исправление. Модель не может восстановить информацию, которую поиск пропустил.
- Top-k поиск может скрыть одну из сторон разногласий
- Разбиение на фрагменты (чанкинг) может удалить важный контекст
- Удаление дубликатов может стереть исправление
- Модель не может восстановить информацию, которую поиск пропустил
- Что RAG-система должна делать с противоречивой информацией?
- Как спроектировать RAG для работы с противоречивыми источниками? 4 способа архитектуры RAG для противоречивых данных: находить конфликты при загрузке документов, добавить правила выбора между противоречивыми источниками, превратить важные условия в метаданные, раскрывать разногласия, а не скрывать их.
- 4 способа архитектуры RAG для противоречивых данных
- Находить конфликты при загрузке документов
- Добавить правила выбора между противоречивыми источниками
- Превратить важные условия в метаданные
- Раскрывать разногласия, а не скрывать их
- Как Akamai может помочь
Основные выводы
Векторный поиск измеряет сходство; следовательно, противоречивые утверждения об одном и том же предмете могут получать почти идентичные оценки.
Стандартные методы генерации с дополненной выборкой (RAG), такие как разбиение на фрагменты и top-k поиск, могут удалить контекст или скрыть противоречивую информацию от ИИ-агента.
Сочетание векторного поиска с ключевыми словами, метаданными, обнаружением конфликтов и переранжированием может дать агентам контекст, необходимый для разрешения разногласий.
Представьте, что RAG-система запрашивает векторную базу данных для получения наиболее релевантной информации о том, является ли продукт, процесс или действие безопасным. Она может вернуть ответы «X безопасен» и «X не является безопасным» с почти одинаковой оценкой сходства. Более качественные модели эмбеддингов сокращают этот разрыв, но обычно его нельзя устранить только с помощью эмбеддинга. Это особенность того, для чего создан поиск по сходству.
Проблема в том, что поиск по сходству предназначен для поиска похожих вещей, но противоположности тоже могут выглядеть похоже. В RAG-системе неправильный ответ может оказаться рядом с правильным без какого-либо сигнала о том, что источники противоречат друг другу.
Почему противоречивые утверждения могут выглядеть так похоже?
Два предложения могут противоречить друг другу, только если они об одном и том же. Например, «Батарея заменяемая» и «Париж находится во Франции» не противоречат друг другу. Они просто не связаны.
Чтобы по-настоящему противоречить, всё в предложении должно совпадать, за исключением одного ключевого различия. Иногда это всего лишь одно слово.
Векторный поиск измеряет это соответствие, что означает, что он может определить, что два предложения об одном и том же предмете, например, о батареях, но не обязательно, согласуются ли они. «Батарея заменяемая» и «Батарея не заменяемая» выглядят очень похоже, потому что почти вся информация в них одинакова.
Вот почему противоречивые утверждения могут иметь почти идентичный рейтинг при векторном поиске.
Почему эмбеддинги могут упустить слово, меняющее смысл?
Эмбеддинг превращает предложение в несколько сотен чисел, что означает, что часть информации сжимается или теряется. То, что остается, зависит от того, на распознавание чего была обучена модель эмбеддингов.
Для многих моделей поиска обучение делает упор на то, относятся ли два фрагмента текста к одной и той же теме. Вопрос сопоставляется с отрывком, который на него отвечает, в то время как неправильные ответы берутся из совершенно несвязанных тем. Со временем модель получает вознаграждение за обнаружение «одной и той же темы». Однако она гораздо реже тренируется обнаруживать «противоположные утверждения», особенно когда разница сводится к одному слову, например, «не».
Способ, которым эмбеддинги представляют предложение, может усугубить эту проблему. Например, «Политика была одобрена» и «Политика не была одобрена» имеют все общие слова, кроме одного. Когда эти слова представлены вместе в эмбеддинге, одно слово, меняющее смысл, может оказывать очень малое влияние на общую оценку сходства.
Насколько близки оценки противоречий на самом деле?
Чтобы увидеть, как это работает на практике, мы прогнали 16 пар тестовых предложений через модель эмбеддингов (Рисунок 1):
Второй столбец показывает ожидаемую связь между каждой парой, а третий столбец показывает оценку сходства между их векторами. Средние оценки:
- Парафразы — 0.86
Парафразы — 0.86
- Противоречия — 0.84
Противоречия — 0.84
- Несвязанные предложения — 0.37
Несвязанные предложения — 0.37
Результаты показывают, насколько трудно векторному поиску различать эти противоречия. Противоречия оцениваются почти так же высоко, как парафразы, а некоторые даже выше. Например, «Заблокировано после пяти попыток» против «после десяти» получили 0.92. «Клиент отправляет токен на сервер» против его точной противоположности получили 1.00, идеальное совпадение.
Хотя модель может различать темы, она не может отличить «да» от «нет».
Что происходит, когда старая и новая информация конфликтуют?
Предположим, вы создаете помощника службы поддержки на базе RAG, который отвечает на вопросы, используя документацию вашей компании: текущее руководство, версию 2019 года, которую никто не удалил, старые записи в блогах и несколько веток форума. Клиент спрашивает: «Могу ли я заменить батарею самостоятельно?»
В корпусе помощник находит:
- «Батарея может быть заменена пользователем с помощью стандартной отвертки». — Руководство 2024 года
«Батарея может быть заменена пользователем с помощью стандартной отвертки». — Руководство 2024 года
- «Батарея герметична и не может быть заменена пользователем». — Руководство 2019 года
«Батарея герметична и не может быть заменена пользователем». — Руководство 2019 года
Только один из них правильный. Но для модели эмбеддингов они все еще очень похожи, потому что они об одной и той же детали и одном и том же действии. В результате оба могут быть возвращены в качестве ответов, и устаревший ответ может иметь такой же высокий рейтинг, как и текущий. Ничто в оценке не указывает на то, что один из них устарел на пять лет.
Вот еще один пример: если поисковый запрос выполняется по корпусу, подобному приведенному ниже, устаревший ответ будет занимать более высокий рейтинг, чем текущий, в четырех случаях из шести (Рисунок 2).
Это всего лишь одна сотая балла между двумя результатами, и неправильный находится сверху.
Та же проблема применима к мультимодальному RAG
Эта проблема противоречий не ограничивается текстом. Рассмотрим RAG-систему на основе изображений, такую как Miranda. Если пользователь предоставляет фотографию предмета одежды и спрашивает: «Найди мне что-то похожее на это, но только то, что можно сушить в сушильной машине», эмбеддинг изображения легко найдет визуально похожие предметы. Однако процесс поиска все равно должен различать «можно сушить в сушильной машине» и «нельзя сушить в сушильной машине», возвращая нас к той же самой задаче.
Как стандартный RAG может скрывать противоречивую информацию?
Стандартная настройка RAG проста: разбить документы на фрагменты, векторизовать их, извлечь несколько наиболее подходящих совпадений и вставить их в промпт. В процессе другие распространенные этапы, такие как дедупликация и фильтрация, также могут влиять на то, что в конечном итоге увидит модель.
Есть несколько других способов, из-за которых противоречивая информация может быть утеряна:
- Top-k поиск может скрыть одну из сторон разногласия
Top-k поиск может скрыть одну из сторон разногласия
- Разбиение на фрагменты (чанкинг) может лишить важного контекста
Разбиение на фрагменты (чанкинг) может лишить важного контекста
- Удаление дубликатов может привести к удалению исправленной версии
Удаление дубликатов может привести к удалению исправленной версии
- Модель не может восстановить информацию, которую пропустил поиск
Модель не может восстановить информацию, которую пропустил поиск
Top-k поиск может скрыть одну из сторон разногласия
Когда противоречивые фрагменты текста различаются по оценке лишь на сотую долю балла, эта крошечная разница может определить, какой из них попадет в выборку. Извлеките три лучших результата, и устаревший фрагмент может появиться, в то время как противоречащая ему актуальная версия не попадет в список.
Разбиение на фрагменты (чанкинг) может лишить важного контекста
Дата публикации или вступления в силу могла находиться в заголовке раздела. Название плана могло быть в заголовке страницы. Слово «устарело» могло появиться в баннере вверху. Поэтому, хотя основной текст остается, контекст, который говорит вам, применимо ли это все еще, теряется.
Удаление дубликатов может привести к удалению исправленной версии
RAG-конвейеры часто удаляют фрагменты, которые кажутся слишком похожими, чтобы не отправлять избыточную информацию, но исправленный фрагмент часто повторяет большую часть исходного текста. Если исправленный фрагмент очень похож на устаревший, система может отбросить обновленную версию и оставить старую.
Модель не может восстановить информацию, которую пропустил поиск
Модель может работать только с теми фрагментами, которые она получает. Если важный контекст, противоречивый источник или более новая версия были отфильтрованы ранее в процессе, у модели нет способа узнать об их существовании. Если появляются и текущая, и устаревшая версии, модель может выбрать одну из них. Если появляется только одна, она может предоставить ответ, даже не подозревая, что существовали разногласия.
Это самая серьезная проблема. Векторный поиск может вернуть неверный ответ и скрыть тот факт, что другие источники противоречат друг другу.
Что должна делать RAG-система с противоречивой информацией?
Агент может справиться с разногласиями, если поисковая система покажет, что они существуют. Он может проверить даты, выполнить поиск снова, сравнить источники или вернуться и попросить вас уточнить информацию. Но он не сможет сделать ничего из этого, если поиск возвращает только одну версию.
Чтобы смягчить эту проблему, уровень поиска должен выявлять конфликт, а не молча выбирать между двумя источниками. Для этого требуется более одного сигнала, включая:
- Векторы, которые находят кандидатов, и ничего более
Векторы, которые находят кандидатов, и ничего более
- Поиск по ключевым словам для точных деталей, таких как числа, версии или коды ошибок (эмбеддинг дает «пять» и «десять» оценку сходства 0,92, но поиск по ключевым словам может их различить)
Поиск по ключевым словам для точных деталей, таких как числа, версии или коды ошибок (эмбеддинг дает «пять» и «десять» оценку сходства 0,92, но поиск по ключевым словам может их различить)
- Фильтры метаданных по дате, версии, плану, региону и источнику
Фильтры метаданных по дате, версии, плану, региону и источнику
- Список конфликтов, созданный при загрузке документов, чтобы известные разногласия можно было пометить еще до того, как пользователь задаст вопрос
Список конфликтов, созданный при загрузке документов, чтобы известные разногласия можно было пометить еще до того, как пользователь задаст вопрос
- Правило выбора между источниками, которое агент может объяснить
Правило выбора между источниками, которое агент может объяснить
Ни один из этих методов не является сложным сам по себе, но ошибка заключается в том, чтобы ожидать, что векторный поиск выполнит все пять задач.
Как спроектировать RAG для обработки противоречивых источников?
Вместо того чтобы заставлять векторный поиск делать все, цель состоит в том, чтобы построить процесс поиска, который может распознавать конфликты, сохранять контекст вокруг них и давать агенту достаточно информации для адекватного ответа.
4 способа архитектуры RAG для противоречивых данных
Создание поиска с учетом конфликтов требует выхода за рамки простого подсчета сходства к стратегиям, которые выявляют, классифицируют и примиряют противоположные источники. Вот четыре способа сделать это:
- Находите конфликты один раз, при загрузке документов
Находите конфликты один раз, при загрузке документов
- Добавьте правила выбора между противоречивыми источниками
Добавьте правила выбора между противоречивыми источниками
- Превратите важные условия в метаданные
Превратите важные условия в метаданные
- Раскрывайте разногласия, а не скрывайте их
Раскрывайте разногласия, а не скрывайте их
Находите конфликты один раз, при загрузке документов
Разногласие — это свойство исходного материала, а не вопроса пользователя, поэтому нет необходимости переоткрывать его при каждом запросе. Вместо этого векторизуйте документы, сохраните пары, которые уже выглядят похожими, и запустите кросс-энкодер только по этим парам. Поскольку кросс-энкодер читает оба фрагмента вместе, он может оценить, меняет ли слово «не» отношения между ними. Сохраняйте конфликты, которые он помечает, чтобы их можно было проверить во время запроса.
Добавьте правила выбора между противоречивыми источниками
Обнаружение конфликта говорит вам о наличии проблемы, но не говорит, какой источник прав. Когда два документа противоречат друг другу, используйте такие сигналы, как качество источника или дата публикации, чтобы решить, какой из них должен иметь приоритет.
Превратите важные условия в метаданные
Если информация применима только к конкретному плану, версии, региону или другому условию, пометьте ее при загрузке документа. Тогда система сможет фильтровать на основе этой информации, вместо того чтобы полагаться на несколько коротких слов, которые конкурируют с остальной частью предложения.
Раскрывайте разногласия, а не скрывайте их
Если доверенные источники действительно противоречат друг другу, не скрывайте это от агента — это самая полезная информация, которая есть у вашей системы. Покажите разногласие вместе с соответствующими датами и информацией об источнике, чтобы агент мог ответить с необходимым контекстом.
Как Akamai может помочь
Эти шаблоны становятся особенно важными по мере того, как RAG и агентские приложения переходят в стадию эксплуатации. Akamai предлагает несколько возможностей, которые могут поддержать эти рабочие процессы:
- Akamai Valkey Managed Database поддерживает векторный поиск с низкой задержкой и доступ к контекстным данным для приложений ИИ
Akamai Valkey Managed Database поддерживает векторный поиск с низкой задержкой и доступ к контекстным данным для приложений ИИ
- Akamai Functions выполняет логику приложений и предварительную/пост-обработку ИИ рядом с пользователями
Akamai Functions выполняет логику приложений и предварительную/пост-обработку ИИ рядом с пользователями
- Akamai Cloud for AI предоставляет распределенные вычисления, данные, бессерверные функции и вывод на базе GPU для приложений ИИ в глобальном масштабе
Akamai Cloud for AI предоставляет распределенные вычисления, данные, бессерверные функции и вывод на базе GPU для приложений ИИ в глобальном масштабе
- Akamai AI Professional Services помогает предприятиям ускорить адаптацию ИИ с помощью проектов с фиксированным объемом и ориентацией на результат, которые приносят четкую ценность
Akamai AI Professional Services помогает предприятиям ускорить внедрение ИИ с помощью проектов с фиксированным объемом работ и ориентацией на результат, которые приносят ощутимую пользу.
В совокупности эти возможности дают командам больше гибкости для создания рабочих процессов поиска и логического вывода, которые сохраняют контекст и более тщательно обрабатывают противоречивую информацию.
Об авторе (авторах)
Сачидананда Каркала
Сачидананда Каркала — корпоративный архитектор из Сингапура с более чем 26-летним опытом управления цифровой трансформацией. Пройдя путь от инженера-программиста до опытного архитектора решений, он проектировал и внедрял масштабируемые корпоративные экосистемы, сложные облачные миграции и цифровые решения нового поколения для стратегических клиентов в Азиатско-Тихоокеанском регионе. Сачи увлечен искусственным интеллектом и использованием технологий для улучшения пользовательского опыта. В свободное от работы время он любит музыку, чтение и общение с семьей.
Теги
Akamai и UNIQLO нанесли код на футболку, что заставило меня задуматься о том, что может означать поиск на базе ИИ для индустрии моды. Akamai и UNIQLO нанесли код на футболку, что заставило меня задуматься о том, что может означать поиск на базе ИИ для индустрии моды.
Как выглядел бы RAG, если бы пользователем была Миранда Пристли?
Узнайте о создании «Миранды» — мультимодальной поисковой системы, индексирующей более 280 тысяч изображений модной одежды с использованием OpenCLIP, PyTorch GEMM и локальных LLM без применения векторной базы данных.
Чего ИИ-агенты не могут делать лучше людей, так это выносить моральные суждения о том, что правильно, а что нет. По этой причине ИИ всегда должен оставаться под контролем человека.
Что ИИ может, чего не может и чего не должен делать
Генеральный директор Akamai Том Лейтон рассуждает о необходимости сдержек, противовесов и безопасности для сохранения контроля человека над использованием ИИ.
Все спрашивают, являются ли атаки с использованием ИИ гениальными, но это неправильный вопрос.
Искусственный интеллект
Не Койот, а Дорожный бегун: реальность автономных атак с использованием ИИ
Угрозы безопасности со стороны автономного ИИ — это не новые супероружия. Это неустанные низкотехнологичные атаки, которые никогда не прекращаются. Узнайте, почему традиционные методы защиты терпят неудачу.



