Через месяц, в августе 2026, EU AI Act становится обязательным к исполнению. Главное требование — Article 50: выводы ИИ должны быть «detectable as artificially generated». Провайдерам LLM, работающим в ЕС, придётся ставить на текст скрытый водяной знак.
Текст маркировать сложно. В изображении можно менять незаметные пиксели, а текст — плотная среда: любое изменение заметно. Это задача text steganography, где нельзя произвольно менять открытый текст. Наивный знак вроде «каждая пятая буква — e» даст опечатки. Модель может следить за знаком и смыслом, но это съедает reasoning и портит ответы.
Проверять текст прогоном через модель нельзя: пространство всех ответов Claude Sonnet больше пространства ответов с водяным знаком, отсюда ложные срабатывания — человек может случайно написать как Claude. Плюс это дорого, а EU AI Act по Commitment 2 требует, чтобы провайдеры бесплатно наносили водяные знаки для граждан ЕС.
Google публично говорит о маркировке текста — это SynthID. LLM выдаёт вероятности для токенов, сэмплинг выбирает из них. SynthID назначает токену оценку на основе предыдущих токенов (например, сумма ID токена и трёх предыдущих по модулю 5) и среди top-5 выбирает токен с максимальной оценкой. Детектор считает агрегированную оценку: если она подозрительно высокая, текст сгенерирован ИИ. Это как эвристика с em-dash, только математическая, и детекция дешёвая.
Есть и юникодные homoglyphs. Когда модель работает при temperature=0 и менять токены нельзя, можно заменить пробелы U+0020 на похожие U+2004 или U+3000 и закодировать знак паттерном. OpenAI и Anthropic почти наверняка так делают. Claude Code точно помечал подозрительные запросы от китайских пользователей, меняя апостроф в «Today’s date» (потом откатили). В VSCode при вставке из ChatGPT иногда видны необычные юникодные пробелы.
Текстовые знаки тривиально снимаются. Homoglyphs заменяются на обычные символы. SynthID снимается перефразированием через слабую LLM без водяного знака. Раз будет публичный детектор, текст можно крутить, пока проверка не станет отрицательной. Code of Practice требует, чтобы знак трудно отделялся от контента, но одновременно требует интероперабельности — провайдеры должны публиковать схему. Это несовместимо с security-by-obscurity.
C2PA Content Credentials — подписанные метаданные файла. Их не подделать, но работают только для файлов, а вывод чат-ботов и агентов — обычный текст без файла. C2PA текстовая маркировка не заменяет; AI Act требует и настоящий водяной знак.
Похоже, провайдеры (OpenAI, Anthropic, Fireworks, Groq) поставят SynthID-сэмплер в свои inference-стеки. Может, только для ЕС, а может, для всех. Появятся страницы «проверь водяной знак», при серьёзной интероперабельности — единый EU-хостинг. Юникодная маркировка вряд ли пройдёт как соответствующая AI Act, но кто-то попробует. Технические пользователи всё равно снимут знак, для остальных сделают инструменты.