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-парафразов.
