Прототип RAG-системы одного разработчика отказывался отвечать на любой запрос с косинусным сходством ниже 0,50. Он работал безупречно — до тех пор, пока не была заменена модель эмбеддингов. После этого защитный механизм начал молча пропускать неверные ответы. Этот инцидент доказывает, что жестко заданный порог сходства может «сломаться» при смене модели — риск, который угрожает любой системе, полагающейся на сходство эмбеддингов для проверок безопасности.
Почему порог имел значение
Конвейеры генерации с дополненной выборкой (RAG) часто используют защитный механизм сходства (similarity guard): если косинусное сходство между запросом и ближайшим документом падает ниже заданного числа, система прерывает генерацию ответа. Этот механизм предотвращает галлюцинации модели, когда извлеченный контекст слишком слаб. В исходной конфигурации порог 0,50 обеспечивал честность системы: на неразрешимые запросы набирались баллы ниже этой линии, а на разрешимые — выше.
Когда изменился бэкенд эмбеддингов, тот же порог 0,50 перестал разделять эти две группы. Конвейер начал выдавать уверенные, но неверные ответы без каких-либо сбоев или явных ошибок. Сбой не был обнаружен стандартными метриками ранжирования и проявился только тогда, когда человек заметил отклонение.
Геометрия не универсальна
Каждая модель эмбеддингов отображает язык в многомерное пространство со своей собственной геометрией. Следовательно, значения косинусного сходства различаются от модели к модели. Оценка 0,50 может находиться на границе четкого разрыва для одной модели и глубоко внутри области пересечения для другой.
- Voyage-3 — линия 0,50 проходит между низкобалльными неразрешимыми запросами и высокобалльными разрешимыми. Защитный механизм работает как положено.
- BGE-Small — многие неразрешимые запросы имеют оценку выше 0,50, поэтому защитный механизм никогда не срабатывает. Повышение порога до 0,70 восстанавливает запас прочности.
- Hashing-64 — оценки для разрешимых и неразрешимых запросов перемешаны настолько плотно, что ни один порог не может их разделить; модель слишком слаба, чтобы поддерживать защитный механизм сходства в принципе.
Эти примеры иллюстрируют более широкую истину: порог привязан к конкретной паре «модель-данные», а не является универсальным правилом.
Скрытая цена константы
Пороги сходства встречаются во многих последующих задачах:
- семантическое кеширование
- обнаружение дубликатов
- проверка релевантности документов
- сопоставление сущностей
Использование константного значения предполагает, что все модели эмбеддингов имеют одинаковое распределение оценок — это опасное предположение. Когда это предположение не оправдывается, системы начинают молча выдавать ложно-уверенные результаты, подрывая доверие пользователей и снабжая последующие процессы принятия решений недостоверными данными.
Калибровка защитных механизмов для каждой модели
Решение простое: никогда не используйте жестко заданную константу. Относитесь к порогу как к гиперпараметру, который необходимо настраивать для каждой новой модели эмбеддингов.
- Соберите небольшой размеченный валидационный набор, включающий как разрешимые, так и неразрешимые запросы.
- Вычислите косинусное сходство для каждой пары «запрос-документ», используя целевую модель.
- Постройте графики двух распределений или рассчитайте коэффициент ложной уверенности (false-confident rate) — долю неразрешимых запросов, которые превышают выбранный порог.
- Выберите наименьшее значение сходства, при котором коэффициент ложной уверенности остается ниже приемлемого уровня риска.
Поскольку цель состоит в том, чтобы предотвратить избыточную уверенность, традиционных метрик ранжирования, таких как средний обратный ранг (MRR), недостаточно. Коэффициент ложной уверенности напрямую измеряет режим отказа защитного механизма.
Контраргумент: «Некоторые модели работают сразу "из коробки"»
Верно, что некоторые хорошо работающие модели, такие как Voyage-3 в примере, случайно совпадают с порогом 0,50. Но это не гарантирует стабильности в будущем. Обновления моделей, тонкая настройка или даже изменения в базовом корпусе текстов могут изменить распределение сходства, снова сломав защитный механизм. Полагаться на одно удачное совпадение — значит проявлять беспечность.
На что обратить внимание в дальнейшем
-
-
-
Итог
Порог сходства — это не универсальный предохранитель, а специфичный для конкретной модели защитный механизм, который необходимо калибровать каждый раз, когда вы меняете бэкенд эмбеддингов или данные, с которыми он работает. Игнорирование этого факта позволяет RAG-системам впадать в состояние «тихой галлюцинации», сводя на нет саму цель использования защитных механизмов. Единственный надежный путь вперед — систематическая калибровка для каждой модели и постоянный мониторинг коэффициента ложной уверенности.
