Шум в эмбеддингах не защищает данные: 100 известных пар раскрывают ~90% документов
Автор на Хабре проверил 8 схем защиты эмбеддингов и измерял не восстановление текста, а узнавание: какому известному документу принадлежит запись. Если атакующему известны 100 пар «документ — запись» (2% из 5183 документов SciFact), он узнаёт около 90% документов. Гауссов шум оставляет узнаваемыми 99,9% записей при вдвое упавшем качестве поиска. Нулевое восстановление текста приватность не доказывает. • Product quantization: 27,0% узнаваемости при потере половины качества поиска • Секретный поворот не спасает: линейная атака узнаёт 100% записей • k-анонимное квантование при k=2: узнаётся 8,3%, качество поиска 34%
AI-обработка оригинала Habr AI; редакция Hamidun News
Если хранить в векторной базе эмбеддинги с добавленным шумом, восстановить по ним исходный текст действительно трудно, но данные от этого не защищены. Автор исследования на Хабре построил стенд, который проверяет узнавание: по защищённой записи и набору известных документов он определяет, какому документу запись принадлежит. Проверены 8 схем защиты. В основном сравнении атакующий знает 1000 пар «документ — запись» из 5183 документов коллекции SciFact (около 19%), а уже 100 известных пар, то есть 2% корпуса, позволяют узнать около 90% документов. Гауссов шум оставляет узнаваемыми 99,9% записей, даже когда качество поиска упало вдвое.
Что именно проверяли и при каких условиях
Работа про vec2text (атака, восстанавливающая текст по его эмбеддингу) предлагала три защиты: шум, сжатие product quantization (PQ) и секретное линейное преобразование. По её данным, шум обнуляет точное восстановление текста, а качество поиска почти не страдает: 0,748 против 0,730 по top-10. Автор заметил, что восстановить текст и узнать запись среди известных документов — разные задачи. Защита может пройти первую проверку и провалить вторую. Для публичной документации, научных статей и ранее утёкших баз вторая задача реалистична: атакующему не нужны неизвестные тексты, ему достаточно сопоставить записи с уже имеющимися.
В стенде восемь схем: гауссов шум, шум после секретного поворота, SAP/DCPE (шум, равномерный в шаре; реализован по алгоритму 2 из статьи Fuchsbauer и соавторов, SCN 2022), бинарный LSH, случайная проекция, PQ, секретная нелинейность и k-анонимное квантование. Тестировали на двух коллекциях BEIR (SciFact — 5183 документа, NFCorpus — 3633) и двух моделях: all-MiniLM-L6-v2 и bge-small-en-v1.5. Атакующий подбирает линейное отображение защищённых записей обратно в пространство эмбеддингов методом наименьших квадратов. Самопроверки при нулевой защите поймали две ошибки: k-means менял разбиение при масштабировании, а 2,2% NFCorpus оказались дубликатами, и их исключили из подсчёта.
Цифры: шум не работает, потеря информации работает
В точке, где качество поиска упало вдвое, узнаётся 99,9% записей при гауссовом шуме, 99,2% при повороте с шумом и 98,7% у SAP/DCPE. Бинарный LSH даёт 81,1%, случайная проекция — 60,8%, PQ — 27,0%. Секретная нелинейность tanh(gain · Qv) не помогла: 100% на всём диапазоне параметра при качестве поиска выше 90%. Форма шума роли не играет: равномерный в шаре, обычный гауссов и гауссов после поворота дают почти одинаковые кривые.
Секретный поворот ломает только наивную атаку: косинусное сопоставление падает со 100% до 0,0%, а линейное выравнивание по-прежнему даёт 100%. Атакующему нужно немного: при настройке с ~80% качества 100 известных пар (2% корпуса) дают 91% узнанных записей у SAP, 89% у гауссова шума, 88% у поворота, 72% у проекции, 61% у LSH и 37% у PQ. При 200 парах шумовые схемы достигают 98–100%.
PQ оказался лучшим из проверенных, но не бесплатным. В высокоточных режимах, на которые ссылается статья про vec2text, узнаваемость почти полная: 192 подвектора — 100%, 48 — 100%, 32 — 99,8%. Ниже 50% она опускается только при сжатии до 4 байт на вектор (9,7% при 41% качества); при 8 байтах узнаётся 44,5% записей, а качество падает до 59%. Результат зависит и от корпуса: при 50% качества на SciFact узнаётся 27,0% и 25,4%, на NFCorpus — 1,6% и 1,7%. Автор предполагает, что тематически однородный корпус (питание и медицина) склеивает похожие документы в одинаковые коды, то есть защита оказывается побочным эффектом данных, а не свойством схемы.
Для доказуемой границы автор сделал k-анонимное квантование: документы собираются в группы не меньше k, и каждая хранится одним общим вектором. При k=2 граница узнаваемости 29,8%, измерено 8,3%; при k=3 граница 16,5%, измерено 0,5%. Но по цене качества реализация проигрывает PQ: при 8,3% узнаваемости остаётся 34% качества, а у PQ с m=4 — 41% при 9,7%. Причина в перекошенных группах (минимум 2, медиана 3, среднее 6,2): границу задаёт самая маленькая, а качество тратит длинный хвост крупных. Сбалансированное назначение автор не проверял.
Пределы результата и практический вывод
Стенд измеряет только узнавание по известным кандидатам, а не восстановление неизвестного текста. Все 8 схем геометрические, поэтому отображение назад существует. Гомоморфное шифрование, PIR, многосторонние вычисления и ORAM стенд атаковать не может, так что вывод «ничего не работает» неверен. Выборка мала: две коллекции, две модели, всё на английском, одна выгрузка без наблюдения за запросами. Эксперимент с vec2text на полном тексте получился неубедительным: 45,9% по token-F1 и 0% точных совпадений даже на чистых эмбеддингах.
Практически это значит следующее. Защиту эмбеддингов нужно оценивать по узнаванию на корпусе, похожем на ваш, а не только по восстановлению текста. Секретное преобразование без остальных мер бесполезно, если у атакующего может оказаться пара сотен известных пар. Если защита нужна, придётся платить качеством поиска, например через PQ с сильным сжатием. Данные, которые нельзя отдавать, проще вообще не отдавать: держите модель и базу у себя.
Побочное наблюдение: bge-small-en-v1.5 (nDCG@10 = 72,0 на SciFact) теряет половину качества при 100% относительного шума, а более слабая all-MiniLM-L6-v2 (64,5) выдерживает 150%. Расчёты идут на обычном процессоре, векторизация коллекции занимает около 5 минут на двух ядрах, код выложен на GitHub в репозитории semantic-cryptography.
- 1 нояб. 2026 г.Защитный слой MoneyGate не пропустил ни одной из 42 мошеннических просьб к локальным ИИ
- 1 нояб. 2026 г.ThinkJev заставляет ИИ думать лишь над трудными вопросами: минус 28% токенов
- 31 окт. 2026 г.Open-source LLM-шлюз KTMS 1.0 подключил свои GPU к облаку и пережил отказы
- 31 окт. 2026 г.LTX-2.5 на 22 млрд параметров заработала на RTX 3080 с 10 ГБ, но тратит 5 минут на план
Вопросы и ответы по материалу
Что известно по теме: что именно проверяли и при каких условиях?
Работа про vec2text (атака, восстанавливающая текст по его эмбеддингу) предлагала три защиты: шум, сжатие product quantization (PQ) и секретное линейное преобразование. По её данным, шум обнуляет точное восстановление текста, а качество поиска почти не страдает: 0,748 против 0,730 по top-10. Автор заметил, что восстановить текст и узнать запись среди известных документов — разные задачи. Защита может пройти первую проверку и провалить вторую. Для публичной документации, научных статей и ранее утёкших баз вторая задача реалистична: атакующему не нужны неизвестные тексты, ему
Что известно по теме: цифры: шум не работает, потеря информации работает?
В точке, где качество поиска упало вдвое, узнаётся 99,9% записей при гауссовом шуме, 99,2% при повороте с шумом и 98,7% у SAP/DCPE. Бинарный LSH даёт 81,1%, случайная проекция — 60,8%, PQ — 27,0%. Секретная нелинейность tanh(gain · Qv) не помогла: 100% на всём диапазоне параметра при качестве поиска выше 90%. Форма шума роли не играет: равномерный в шаре, обычный гауссов и гауссов после поворота дают почти одинаковые кривые. Секретный поворот ломает только наивную атаку: косинусное сопоставление падает со 100% до 0,0%, а линейное выравнивание по-прежнему даёт 100%. Атакующе
Что известно по теме: пределы результата и практический вывод?
Стенд измеряет только узнавание по известным кандидатам, а не восстановление неизвестного текста. Все 8 схем геометрические, поэтому отображение назад существует. Гомоморфное шифрование, PIR, многосторонние вычисления и ORAM стенд атаковать не может, так что вывод «ничего не работает» неверен. Выборка мала: две коллекции, две модели, всё на английском, одна выгрузка без наблюдения за запросами. Эксперимент с vec2text на полном тексте получился неубедительным: 45,9% по token-F1 и 0% точных совпадений даже на чистых эмбеддингах. Практически это значит следующее. Защиту эмбедд
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.