Представьте, что вы слышите самбу. Даже если музыканты играют тихо, в ритме всегда есть характерный рисунок, по которому опытное ухо безошибочно скажет: «Это самба, а не что-то другое». Теперь представьте, что задача стоит в обратном: взять текст и понять, написал его человек или языковая модель – и при этом не иметь под рукой никакого «опытного уха».
Именно эту задачу решает направление цифровых водяных знаков для текстов, созданных большими языковыми моделями. В 2022 году Скотт Ааронсон предложил элегантный подход, получивший название маркировки Гумбеля. А исследование, о котором я хочу рассказать, делает шаг вперёд: предлагает более точный и простой способ обнаружения этого знака. Звучит технически? Обещаю объяснить так, чтобы всё встало на свои места – через метафоры, аналогии и немного бразильской страсти к числам.
Зачем вообще нужны водяные знаки в тексте?
В мире изображений водяные знаки существуют давно. Фотобанки ставят полупрозрачный логотип поверх снимка – и вот оно, авторство защищено. Но с текстом всё сложнее. Текст – это последовательность слов, и «нарисовать» поверх него логотип невозможно. Любое изменение, которое вы вносите, должно быть незаметным для читателя, но обнаруживаемым машиной.
Зачем это нужно? Причин несколько. Во-первых, вопрос авторства: если большая языковая модель генерирует миллионы текстов в день, важно иметь инструмент, который позволяет понять, кто или что стоит за конкретным сообщением. Во-вторых, это вопрос доверия: новостные редакции, учебные заведения, платформы для публикаций – все они заинтересованы в том, чтобы уметь различать человеческий и машинный текст. В-третьих, это вопрос ответственности: если модель генерирует вредоносный контент, водяной знак помогает установить источник.
Первые попытки встроить скрытые сигналы в текст напоминали старую бразильскую игру: добавить незаметную замену слова, чуть изменить порядок предложений, поиграть с пунктуацией. Такие методы называются стеганографией. Проблема в том, что они либо нарушали естественность языка, либо легко поддавались атакам – достаточно было немного перефразировать текст, и сигнал терялся.
С появлением мощных языковых моделей возникла потребность в принципиально иных подходах. Таких, которые встраивают сигнал не в конкретные слова, а в статистику выбора слов. И здесь начинается самое интересное.
Как работает маркировка Гумбеля: объясняю на пальцах
Чтобы понять маркировку Гумбеля, нужно сначала понять, как языковая модель выбирает следующее слово.
Представьте, что модель – это DJ на карнавале. Перед ним огромная стопка виниловых пластинок – это все слова из словаря, их могут быть десятки тысяч. Для каждого слова у него есть оценка: насколько это слово подходит следующим в текущем предложении. Одни слова получают высокие оценки, другие – низкие. DJ берёт эти оценки, применяет определённую формулу (в науке её называют «softmax»), превращает их в вероятности – и случайным образом выбирает пластинку. Не всегда самую популярную, потому что случайность делает текст живым и разнообразным.
Теперь добавляем маркировку Гумбеля. Перед тем как сделать выбор, DJ для каждой пластинки подбрасывает особую монету – она называется случайной величиной Гумбеля. Это такой математический «шум», который добавляется к каждой оценке. Шум случайный, но подчиняется известному закону – распределению Гумбеля, которое математик Эмиль Гумбель описал ещё в середине XX века применительно к теории экстремальных значений.
Но маркировка – это не просто добавление шума. Ключевой момент в том, что одна конкретная пластинка в каждый момент получает небольшой дополнительный «бонус» – небольшую константу, обозначаемую в формулах как c. Какая именно пластинка получает этот бонус – определяется через специальную хеш-функцию: по сути, это детерминированный, но внешне случайный способ выбрать «фаворита» на основе предыдущего контекста.
Константа c мала. Настолько мала, что читатель никогда не заметит разницы: текст остаётся естественным, живым, грамматически правильным. Но статистически – а здесь и начинается магия чисел – токены, получившие этот бонус, будут появляться в тексте чуть чаще, чем если бы никакого бонуса не было.
Это как если бы DJ незаметно для публики чуть сильнее тянулся к одной стопке пластинок. Отдельный выбор выглядит случайным. Но если посмотреть на сотни и тысячи выборов – паттерн проявляется.
Что уже было сделано до этого: другие подходы к водяным знакам
Параллельно с маркировкой Гумбеля существуют и другие схемы. Один из наиболее известных подходов описан в работе Кирхенбауэра и соавторов (2023 год). Там идея другая: словарь случайно делится на два списка – «зелёный» и «красный». В процессе генерации модель получает указание предпочитать токены из «зелёного» списка. Обнаружение тогда сводится к простой проверке: если в тексте «зелёных» слов статистически больше нормы – перед нами маркированный текст.
Это элегантно и относительно просто. Но у такого подхода есть уязвимость: само деление на списки может стать известно злоумышленнику, и тогда водяной знак можно целенаправленно размыть, заменяя «зелёные» слова «красными».
Маркировка Гумбеля работает иначе: она манипулирует не выбором из списков, а самим процессом случайного семплирования. Это делает её теоретически более устойчивой – но и более сложной для обнаружения. Вот почему вопрос о хорошем детекторе для схемы Гумбеля оставался открытым.
Новый детектор: просто, как хороший пас
Исследователи предложили детектор, который можно описать следующим образом: если маркировка была применена, то токены, получавшие бонус c, будут «выигрывать» в конкуренции с соседними токенами чуть чаще, чем должны были бы по чистой вероятности.
Алгоритм обнаружения работает пошагово.
- Определить «бонусные» токены. Для каждого слова в анализируемом тексте применяется та же хеш-функция, что использовалась при маркировке. Это позволяет понять, какое именно слово в каждой позиции должно было получить бонус, если маркировка применялась.
- Получить базовые оценки. Используя ту же языковую модель, которая предположительно сгенерировала текст, для каждой позиции вычисляются оценки (логиты) всех возможных слов – то есть то, что модель «думала» о вероятности каждого слова в данном контексте.
- Сравнить факт с ожиданием. Для каждого «бонусного» токена смотрим: насколько его фактическая оценка выше, чем у ближайшего конкурента без бонуса? Если маркировка есть, это превышение должно быть систематически положительным.
- Применить статистический тест. Накопленные разницы по всему тексту проверяются стандартным статистическим тестом – например, z-тестом. Если среднее отклонение статистически значимо отличается от нуля – текст, скорее всего, маркирован.
Ничего лишнего. Никаких сложных нейросетей поверх нейросетей. Никакой тонкой настройки под конкретную модель. Это как хороший пас в футболе: не эффектный, но точный и своевременный.
Математика за кулисами: зачем нужен Гумбель
Почему именно распределение Гумбеля так удобно в этой схеме? Это не случайный выбор.
Распределение Гумбеля возникает в математике там, где нужно описать максимум из многих случайных величин. Именно этим и занимается языковая модель при выборе токена: она ищет максимум среди оценок всех возможных слов. Оказывается, если добавить к каждой оценке случайную величину из распределения Гумбеля, то вероятность того, что именно i-й токен окажется максимальным, в точности равна вероятности softmax – то есть стандартному способу выбора следующего слова в языковых моделях. Это математическое тождество делает схему Гумбеля теоретически чистой: маркировка встраивается в процесс, который уже по природе своей «гумбелевский».
Когда к одному из токенов добавляется константа c, это сдвигает его позицию в отсортированном списке оценок. Исследователи показали, что этот сдвиг поддаётся точному математическому описанию через свойства порядковых статистик распределения Гумбеля. Именно это позволяет строго доказать, что предложенный детектор является почти оптимальным.
Что значит «почти оптимальным»? Это означает следующее: среди всех возможных детекторов, которые не знают внутреннего устройства модели (так называемых «агностических к модели»), предложенный алгоритм минимизирует одновременно два типа ошибок. Первый – ложноотрицательный результат: когда маркированный текст не распознан как таковой. Второй – ложноположительный результат: когда обычный человеческий текст ошибочно признаётся маркированным. Теоретически доказано, что по мере увеличения объёма текста детектор приближается к байесовскому оптимуму – то есть к тому пределу точности, который вообще достижим при данных условиях.
Как это проверяли на практике
Теория теорией, но наука требует проверки на практике. Исследователи проводили эксперименты с использованием GPT-2 – одной из известных языковых моделей, достаточно хорошо изученной для подобных тестов. Тексты генерировались двумя способами: с маркировкой Гумбеля при разных значениях константы c и без маркировки вовсе.
Затем к этим текстам применялся новый детектор. Результаты оказались убедительными: даже при очень малых значениях c, когда маркировка практически не влияла на качество текста, детектор уверенно различал маркированные и немаркированные тексты. Измерялись стандартные метрики качества классификации:
- Точность (precision) – какая доля текстов, признанных маркированными, действительно является таковой.
- Полнота (recall) – какая доля реально маркированных текстов была правильно распознана.
- F1-мера – гармоническое среднее двух предыдущих показателей, обобщённая оценка качества.
По всем трём показателям новый детектор превзошёл или сравнялся с существующими методами, особенно при малых значениях c.
Дополнительно проверялась устойчивость к атакам. Что будет, если кто-то попытается «смыть» водяной знак – например, перефразируя текст, удаляя случайные фрагменты или подменяя отдельные слова? Детектор показал достаточную устойчивость в сценариях, где атакующий не знает точных параметров маркировки. Конечно, если противник обладает полными знаниями о схеме и полным контролем над процессом генерации – ситуация меняется. Но это, скорее, теоретический сценарий, чем практический.
Ещё один важный практический вывод: чем длиннее текст, тем увереннее работает детектор. Это предсказуемо с теоретической точки зрения – больше данных означает более надёжную статистику – но приятно видеть, что это подтверждается экспериментально. Для коротких текстов в несколько предложений детектор работает менее стабильно, для длинных – уверенно.
Ограничения и честность перед собой
Любое хорошее исследование честно говорит о своих ограничениях. Это исследование – не исключение.
Первое и главное ограничение – предположение о независимости токенов. В теоретических доказательствах авторы предполагают, что каждый токен выбирается независимо от всех остальных – так называемое предположение i.i.d. (independent and identically distributed). В реальных языковых моделях это, конечно, не так: слова в тексте глубоко взаимосвязаны, модель учитывает весь предыдущий контекст. Авторы честно называют это идеализацией, которая нужна для строгих математических доказательств. На практике, как показывают эксперименты, детектор работает хорошо и без этого условия – но теоретическая гарантия строгой оптимальности держится именно на нём.
Второе ограничение – необходимость доступа к модели. Чтобы вычислить базовые оценки токенов, детектору нужна та же модель, которая генерировала текст – или хотя бы доступ к её интерфейсу для вычисления вероятностей следующего слова. Это не всегда возможно, особенно если модель закрытая или её параметры неизвестны. Авторы отмечают, что в некоторых случаях достаточно доступа к API, а не к самой модели – но это всё равно накладывает практические ограничения.
Третье ограничение – устойчивость к целенаправленным атакам. Если противник знает схему маркировки и имеет полный контроль над процессом генерации, он может разработать способы нейтрализации водяного знака. Абсолютной защиты нет – и это нужно принимать как факт.
Почему это важно и что будет дальше
Водяные знаки для текстов ИИ – это не академическая игра в числа. Это инструмент, от развития которого зависит то, насколько прозрачной и ответственной будет среда, в которой языковые модели работают рядом с людьми.
По мере того как языковые модели становятся мощнее и доступнее – а это устойчивая тенденция, наблюдавшаяся на протяжении всего периода с 2018 по 2023 год и, по всей видимости, продолжающаяся, – граница между человеческим и машинным текстом становится всё тоньше. Инструменты, позволяющие её нащупать, становятся всё ценнее.
Маркировка Гумбеля в сочетании с новым детектором – это один из наиболее теоретически обоснованных подходов в этой области на момент публикации исследования. Он прост в реализации, агностичен к конкретной модели и приближается к математически доказуемому оптимуму. Это не финальная точка, но это очень чёткий и надёжный шаг в правильном направлении.
Среди направлений для дальнейших исследований авторы называют три ключевых:
- Ослабление предположения о независимости токенов – разработка теории, которая учитывала бы реальную взаимозависимость слов в тексте.
- Создание детекторов, устойчивых к более изощрённым атакам, без потери качества генерации.
- Исследование более сложных схем маркировки, способных встраивать не просто бинарный сигнал («маркирован / не маркирован»), а более богатую информацию – например, идентификатор конкретной модели или временную метку.
Алгоритмы не лучше нас – они просто другие. Но иногда именно эта «другость» позволяет им замечать то, что мы упускаем: слабый ритм водяного знака в тысячах случайных слов. Как опытный музыкант, который узнаёт самбу даже в шуме толпы.