Введение: Эпоха синтетического контента и проблема верификации

Представьте, что вы нанимаете разработчика или проверяете дипломный проект, а половина сданного кода и текста написана нейросетью за три секунды. Знакомо? (Хуже только ситуации, когда код написан нейросетью, но деплоить в пятницу всё равно вам). Стремительное развитие генеративных языковых моделей (LLM) навсегда изменило ландшафт создания контента. Сегодня алгоритмы способны писать статьи, научные работы, программный код и маркетинговые тексты мгновенно. Однако эта доступность породила серьезный кризис доверия. Академическая среда опасается масштабного плагиата и генерации фейковых диссертаций, индустрия СМИ борется с потоком дезинформации, а преподаватели и рекрутеры теряют инструменты объективной оценки.

Традиционные методы детектирования ИИ-текстов, основанные на классификации стилистики или поиске статистических аномалий (таких как подсчет перплексии и разброса токенов), страдают от высокой доли ложноположительных срабатываний. Более того, они бессильны против банального перефразирования. Именно поэтому индустрия обратила свой взор на принципиально иной подход — криптографическое и статистическое водяное знакомство (AI text watermarking).

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

Базовые принципы: от пикселей к токенам

Концепция водяных знаков зародилась задолго до появления генеративного ИИ. В классической фотографии и цифровом аудио водяной знак представляет собой скрытый паттерн, наложенный поверх основного сигнала. В изображениях это может быть едва заметная полупрозрачная печать или модуляция младших бит цвета, которую трудно заметить человеческим глазом, но легко обнаружить алгоритмом.

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

Как работают языковые модели под капотом

Чтобы понять механику текстовых водяных знаков, нужно вспомнить, как LLM генерируют текст. Модель не «пишет» текст целиком — она предсказывает следующий токен на основе контекста. Стандартный пайплайн выглядит следующим образом:

  1. Модель анализирует входящий промпт и строит контекстное окно.
  2. Для каждого возможного следующего токена из словаря (vocabulary) рассчитывается вектор вероятностей (logits).
  3. Алгоритм сэмплинга (например, Top-K, Top-P или Temperature) выбирает конкретный токен из полученного распределения.

Именно на втором этапе — в момент манипуляции с логитами или процессом сэмплинга — происходит внедрение водяного знака. Цель разработчиков алгоритма — незаметно сместить вероятности выбора в пользу заранее определенной скрытой закономерности. Человек прочитает текст абсолютно свободно, а специальный детектор сможет математически доказать его искусственное происхождение.

Алгоритмы встраивания: деление словаря на „зеленые“ и „красные“ списки

Одним из самых известных и элегантных подходов к водяному знаку текстов является метод, предложенный исследователями из Мэрилендского университета (Kirchenbauer et al.). Его суть заключается в псевдослучайном разделении словаря токенов на две категории перед генерацией каждого нового слова.

Псевдослучайное разбиение

Перед тем как выбрать токен для позиции $t$, алгоритм использует хэш-функцию от предыдущего токена (или контекста из нескольких токенов) вместе с секретным ключом. Этот хэш служит сидом для генератора псевдослучайных чисел, который делит весь словарь модели на: