3,583 papers
arXiv:2608.10216 70 10 авг. 2026 г. FREE

Similarity Gates: проверка "похожести смысла" через эмбеддинги ловит наоборот

КЛЮЧЕВАЯ СУТЬ
96% совпадения — такую оценку автоматическая проверка поставила паре фраз "не давайте пациенту препарат" и "давайте препарат". Это противоположные по смыслу инструкции. Порог тревоги стоял на 60%, сигнал не сработал вообще. Метод позволяет находить такие смысловые развороты при редактировании текста — там, где обычная проверка "похожести смысла" через эмбеддинги слепа. Вместо одного размытого числа — четыре прямых вопроса: изменилась ли полярность, обязательность, количество, направление действия. Один незамеченный разворот — и автоматическая система пропускает критическую ошибку.
Адаптировать под запрос

TL;DR

Когда текст меняют так, чтобы смысл стал противоположным — "запретить" на "разрешить", "должен" на "может" — обычно правится одно-два слова, остальное остаётся как было. Когда тот же смысл пересказывают другими словами — меняются почти все слова. Инструменты, которые сравнивают два текста через эмбеддинг-схожесть (насколько "похоже написано"), путают эти два случая: разворот смысла получает высокий балл похожести, а честный пересказ — низкий.

Из-за этого проверки типа "не изменился ли смысл?" на базе такой метрики стреляют в обратную сторону. Реальный пример из исследования: инструкцию "не давайте пациенту препарат" переправили на "давайте препарат" — смысл стал прямо противоположным, а автоматическая проверка оценила тексты как совпадающие на 96%. Порог тревоги стоял на 60% — сигнал не сработал вообще.

Авторы показывают: доверять единой оценке "похожести" нельзя, особенно если правка могла развернуть утверждение в противоположность. Работающая альтернатива — не полагаться на общий score, а явно проверять маркеры полярности: отрицания, модальность ("должен" / "может"), количества, направление действия.


🔬

Схема метода (чек-лист аудита, а не многошаговый промпт)

ШАГ 1: Возьми пару текстов (оригинал → правка)
ШАГ 2: Не спрашивай "насколько похожи по смыслу от 0 до 1"
ШАГ 3: Спроси отдельно, явно, по категориям:
   → Изменилась ли полярность (запрет/разрешение, включение/исключение)?
   → Изменилась ли обязательность (должен/может/не обязан)?
   → Изменилось ли количество/единица измерения?
   → Изменилось ли направление действия (увеличить/уменьшить)?

🚀

Пример применения

Задача: Юрист правит договор поставки, добавил несколько формулировок в раздел про ответственность, и хочет убедиться, что случайно не поменял смысл обязательств. Обычный запрос "проверь, не изменился ли смысл" может пропустить именно такую подмену — она выглядит как мелкая правка.

Промпт:

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

Старая версия:
{текст_1}

Новая версия:
{текст_2}

Не давай общую оценку "похожести смысла". 
Проверь отдельно и явно по каждому пункту:
1. Изменилась ли обязательность (обязан/может/не обязан)?
2. Изменилось ли направление действия (кто кому что должен)?
3. Изменились ли числа, сроки, суммы?
4. Есть ли скрытое отрицание или его снятие ("не позднее" → "позднее")?

Для каждого пункта ответь: ИЗМЕНИЛОСЬ / НЕ ИЗМЕНИЛОСЬ + цитата, что именно изменилось.

Результат: Модель выдаст таблицу или список из 4 пунктов с явным вердиктом по каждому — вместо одной размытой оценки "похоже на 85%", которая ничего не говорит о том, что именно изменилось.


🧠

Почему это работает

Оценка "похожести текста" через эмбеддинги (и похожая логика у самих языковых моделей) ориентируется на совпадение слов, а не на смысл. Отрицание или разворот — это минимальное редактирование, поэтому выглядит "очень похожим" на оригинал, хотя означает противоположное.

Сильная сторона LLM — она умеет различать разворот смысла, если её спросить прямо и по конкретной категории ("изменилась ли обязательность"), а не просить единую абстрактную оценку схожести.

Метод обходит слабость за счёт разбивки одной размытой метрики на несколько конкретных бинарных вопросов. Общий score прячет проблему усреднением; отдельные вопросы про полярность, количество и обязательность не дают ей спрятаться.

Рычаги управления: - Список категорий проверки (полярность, количество, модальность) → добавляй свои под тип документа (для промптов — направление инструкции, для медицинских текстов — дозировка/противопоказания) - Требование цитаты вместе с вердиктом → заставляет модель показать доказательство, а не угадать


📋

Шаблон промпта

Сравни две версии текста ниже. Не давай общую оценку похожести — 
она может обманывать при мелких правках, которые меняют смысл на противоположный.

Версия А:
{текст_оригинал}

Версия Б:
{текст_правка}

Проверь по каждому пункту отдельно и явно:
1. Не поменялась ли полярность (разрешение/запрет, включение/исключение)?
2. Не поменялась ли обязательность (должен/может/не обязан)?
3. Не изменились ли числа, сроки, единицы измерения?
4. Не появилось/не исчезло ли отрицание?

По каждому пункту дай вердикт: ИЗМЕНИЛОСЬ / НЕ ИЗМЕНИЛОСЬ, с точной цитатой различия.
Если хотя бы один пункт изменился — не считай тексты равнозначными, даже если формулировки похожи на 90%.

🚀 Быстрый старт — вставь в чат:

Вот шаблон для проверки, не изменился ли смысл текста при редактуре.
Адаптируй под мою задачу: {опиши тип документа — договор, промпт, инструкция}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какие категории риска важны для твоего документа (юридический — обязательства и сроки, медицинский — дозировки и противопоказания, промпт-инженерия — направление инструкции) — потому что набор "маркеров полярности" разный для разных задач.


⚠️

Ограничения

⚠️ Область применения: Основная находка касается автоматических систем (кеши, дедупликация, drift-гейты в AI-агентах), которые сами считают числовой score похожести без участия человека. Для обычного чата это не угроза напрямую, но полезно знать, если ты используешь AI-инструменты с автоматическими проверками "на дрифт" через API.

⚠️ Нет универсального порога: Авторы прямо показали — никакой единый числовой порог похожести не работает надёжно ни при одной комбинации настроек. Единственный рабочий путь — явная проверка по категориям, не число.

⚠️ Только для сравнения версий текста: Метод не подходит для оценки качества, тона или креативности — только для вопроса "не поменялся ли смысл при редактировании".


🔍

Как исследовали

Команда взяла эмбеддинг-гейты (инструменты, которые сравнивают тексты через число похожести) из реальных фреймворков — LlamaIndex, LangChain, семантические кэши — и специально построила сбалансированный корпус: пары текстов, где отдельно контролировались "похожесть слов" и "совпадение смысла" — чтобы разделить эти два фактора, которые обычно идут вместе.

Результат ошарашил: реальная система-охранник (drift guard), которая должна ловить искажение смысла, не поймала ни одной из 56 подмен смысла — включая медицинский пример "не давать" → "давать препарат", получивший 96% похожести при пороге тревоги в 60%. При этом наивно собранный корпус (без контроля за похожестью слов) показывал результат ровно наоборот — казалось, что инструмент вообще не работает, хотя на самом деле проблема была в самом способе собирать тестовые примеры.

Интересно, что попытки исследователей быстро всё исправить — сменить модель эмбеддингов, добавить условие на пересечение слов, подключить отдельный классификатор — все провалились на текстах, написанных отдельно другим человеком. А ещё дважды сам confounder (путаница между похожестью слов и похожестью смысла) подловил самих исследователей — они чуть не опубликовали ложный вывод, который развалился при повторной проверке.


🔗

Ресурсы

Scott E. Frias, Eigenforma / Freemind Labs. "Similarity Gates Approve Reversals: A Validity Audit of Embedding-Cosine Thresholds in Agent Systems", август 2026. В работе упомянуты: Jacobs & Wallach (2021) о разрыве между теоретическим понятием и его измерением; Blagec et al. (2019) о том, что отрицания получают score похожести выше, чем настоящие синонимы; PAWS (Zhang et al., 2019) — датасет adversarial-парафразов.


📋 Дайджест исследования

Ключевая суть

96% совпадения — такую оценку автоматическая проверка поставила паре фраз "не давайте пациенту препарат" и "давайте препарат". Это противоположные по смыслу инструкции. Порог тревоги стоял на 60%, сигнал не сработал вообще. Метод позволяет находить такие смысловые развороты при редактировании текста — там, где обычная проверка "похожести смысла" через эмбеддинги слепа. Вместо одного размытого числа — четыре прямых вопроса: изменилась ли полярность, обязательность, количество, направление действия. Один незамеченный разворот — и автоматическая система пропускает критическую ошибку.

Принцип работы

Правило простое: не спрашивай "насколько похоже" — спрашивай "что конкретно изменилось". Общий балл усредняет: слово "не" разворачивает смысл на противоположный, но по буквам текст почти идентичен — эмбеддинг видит совпадение слов и ставит зелёный свет. Разбей один вопрос на четыре отдельных: полярность, обязательность, числа, отрицание — тогда развороту смысла негде спрятаться за средним числом.

Почему работает

Эмбеддинг-схожесть считает совпадение слов, а не смысл. Убрать или добавить "не" — это правка в одно слово, минимальная по буквам. Для алгоритма, который меряет расстояние между словами-векторами, такая правка выглядит почти как копия оригинала — отсюда 96% вместо ожидаемых 5-10%. LLM на самом деле умеет отличать разворот смысла — но только если её спросить прямо про конкретную категорию, а не просить единую оценку похожести. Прямой вопрос про обязательность работает. Абстрактное "оцени схожесть от 0 до 1" — нет.

Когда применять

Автоматические системы → там, где скрипты сами считают числовой балл похожести без участия человека: кеши ответов LLM, отсев повторяющихся промптов, проверки "не разошлась ли новая версия инструкции со старой" в агентных системах. Особенно критично для правок договоров и медицинских инструкций, где одно слово меняет обязательство на противоположное. НЕ подходит для оценки тона, стиля или креативности текста — только для вопроса "не поменялся ли смысл".

Мини-рецепт

1. Забудь про единое число: не проси LLM оценить похожесть текстов баллом от 0 до 1.
2. Разбей на категории: полярность (запрет/разрешение), обязательность (должен/может), числа и сроки, скрытое отрицание.
3. Требуй цитату: для каждого пункта — вердикт ИЗМЕНИЛОСЬ/НЕ ИЗМЕНИЛОСЬ плюс точная цитата различия.
4. Не усредняй: если хоть один пункт изменился — тексты не равнозначны, даже при 90% похожести слов.

Примеры

[ПЛОХО] : Оцени, насколько похожи по смыслу эти два текста от 0 до 1: "не давайте пациенту препарат X" и "давайте пациенту препарат X"
[ХОРОШО] : Сравни версии инструкции. Не давай общую оценку похожести. Проверь отдельно: 1) изменилась ли полярность (запрет/разрешение)? 2) изменилось ли отрицание? Для каждого пункта дай вердикт ИЗМЕНИЛОСЬ/НЕ ИЗМЕНИЛОСЬ с точной цитатой.
Источник: Similarity Gates Approve Reversals: A Validity Audit of Embedding-Cosine Thresholds in Agent Systems
ArXiv ID: 2608.10216 | Сгенерировано: 2026-08-12 06:28

Проблемы LLM

ПроблемаСутьКак обойти
Оценка "похожести смысла" через эмбеддинги путает разворот смысла с совпадением словКогда меняешь смысл на противоположный ("запретить" "разрешить"), правится одно-два слова. Метрика видит почти идентичный текст и ставит высокий балл похожести. Когда пересказываешь тот же смысл другими словами, меняются почти все слова — балл похожести низкий. Метрика реагирует на совпадение слов, а не на смысл. Получается обратный эффект: чем сильнее развернул смысл — тем выше "похожесть"Не спрашивай общую оценку похожести (число от 0 до 1). Разбей проверку на конкретные вопросы: изменилась ли полярность (запрет/разрешение), обязательность (должен/может), числа, направление действия. По каждому — вердикт ИЗМЕНИЛОСЬ/НЕ ИЗМЕНИЛОСЬ с цитатой

Методы

МетодСуть
Разбивка общей оценки схожести на явные категории-вопросыВместо "оцени похожесть смысла" задай отдельные вопросы: изменилась ли полярность, модальность, числа/сроки, направление действия. Для каждого пункта — вердикт + цитата различия. Почему работает: общий числовой score усредняет разные признаки и прячет проблему за красивым процентом. Конкретный вопрос про одну категорию не даёт модели "спрятаться" за общее сходство формулировок. Работает: сравнение версий документа, проверка правок в договорах/инструкциях, автоматические проверки на дрифт смысла. Не работает: оценка тона, стиля, креативности — там нет чёткого бинарного признака для проверки

Тезисы

ТезисКомментарий
Размер правки не связан с размером изменения смыслаОдно-два изменённых слова могут развернуть смысл на противоположный ("не давайте" "давайте"). Пересказ всеми другими словами может сохранить смысл тем же. Метрики, основанные на количестве совпавших слов (эмбеддинг-близость, процент совпадения), путают эти случаи. Применяй: не доверяй общему числу "похожести" как индикатору сохранности смысла — сначала проверь смысловые маркеры (отрицание, модальность, числа) отдельно
📖 Простыми словами

Similarity Gates Approve Reversals: A Validity Audit of Embedding-Cosine Thresholds inAgentSystems

arXiv: 2608.10216

Современные AI-ассистенты и поисковики оценивают близость текстов через векторные эмбеддинги — это когда фраза превращается в набор координат в пространстве. Проблема в том, что эта математика работает на уровне «облака смыслов», а не логики. Если ты меняешь в предложении всего одно слово на противоположное, для алгоритма текст остается практически идентичным, ведь 95% слов совпали. Система видит высокую косинусную близость, хотя суть сообщения вывернулась наизнанку.

Это как если бы охранник на входе в клуб проверял людей только по цвету куртки. Приходит человек в красном пуховике — его пускают. Приходит тот же человек, но приклеил на спину крошечную надпись «я террорист» — охранник видит ту же красную куртку и радостно машет рукой. Для него это тот же самый объект, хотя намерения гостя изменились радикально. В то же время гостя, который переоделся в костюм-тройку, но остался тем же порядочным парнем, охранник просто не узнает и выставит вон.

Исследователи вскрыли системный баг: Similarity Gates (шлюзы схожести) одобряют реверсивные правки. Если заменить в юридическом контрасте слово «обязан» на «вправе», большинство AI-инструментов поставят этой правке высший балл похожести. Зато если ты перескажешь ту же мысль своими словами, используя синонимы, система решит, что это совершенно другой текст. Получается абсурд: модель доверяет врагу, который прикинулся своим, и гонит в шею друга, который просто сменил имидж.

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

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с