Воскресный вечер. Вы нажимаете "опубликовать" на той статье, в которую вложили всю душу за выходные. Каждое слово, каждая идея - уникально ваши. Появляется несколько лайков. Не вирусно, но это ваше.
Спустя три дня, пролистывая ленту, вы видите это: душа вашей статьи в чужом теле! Они переставили слова, но вы узнаете свое творение. Самое ужасное? Их версия повсюду, вирусный успех построен на вашем украденном творчестве. Это не та креативная экономика, на которую мы подписывались.
Очевидное решение - поставить свое имя на работу. Но давайте будем честны - это также легче всего удалить. Можем ли мы сделать лучше? В этой статье мы покажем технику водяных знаков с использованием embedding-моделей, которая может как подписывать, так и обнаруживать оригинальный контент. Это не просто очередное клише поиска/RAG - она использует уникальные возможности jina-embeddings-v3, такие как обработка длинного контекста и кросс-языковое выравнивание, для создания надежной системы аутентификации, и позволяет нам поддерживать надежную верификацию контента при таких трансформациях, как LLM-перефразирование или даже перевод.
tagПонимание текстовых водяных знаков
Цифровые водяные знаки являются краеугольным камнем защиты контента на протяжении многих лет. Когда вы находите мем с полупрозрачным логотипом поверх него, вы видите самую базовую форму водяных знаков для изображений. Современные методы водяных знаков эволюционировали далеко за пределы простых визуальных наложений – многие теперь незаметны для человеческого глаза, оставаясь машиночитаемыми.

Текстовые водяные знаки следуют аналогичным принципам, но работают в семантическом пространстве. Вместо изменения пикселей, текстовый водяной знак тонко модифицирует контент таким образом, чтобы сохранить исходный смысл при встраивании обнаруживаемой подписи. Итак, ключевые требования для эффективного текстового водяного знака:
- Сохранение семантики: Текст с водяным знаком должен сохранять исходный смысл и читаемость, так же как визуальный водяной знак не должен скрывать ключевые элементы изображения.
- Незаметность: Водяной знак должен быть незаметен для читателей-людей, гарантируя, что они не смогут намеренно сохранить или удалить его при трансформации контента.
- Машинное обнаружение: Хотя водяной знак может быть неуловим для читателей-людей, он должен создавать четкие, измеримые паттерны, которые алгоритмы могут надежно идентифицировать.
- Инвариантность к преобразованиям: Любая трансформация контента (как перефразирование или перевод), намеренная или неосведомленная о существовании водяного знака, должна либо сохранять водяной знак, либо требовать таких существенных изменений, что это фундаментально изменит структуру или смысл исходного контента.
tagИспользование embeddings для текстовых водяных знаков
Давайте построим систему текстовых водяных знаков с использованием embeddings. Сначала определим ключевые компоненты этой системы:

- Input: Исходный текст для нанесения водяного знака.
- Watermark Table: Секретный лексикон, содержащий кандидаты слов для водяных знаков. Для оптимальной эффективности водяных знаков слова должны быть достаточно распространенными, чтобы естественно вписываться в различные контексты. Словарь исключает служебные слова, имена собственные и редкие слова, которые могут выглядеть неуместно, например,
delve into,embark- хорошие кандидаты, тогда какgoodслишком распространено. Ниже мы создадим нашу WatermarkTable, используя слова из продвинутого английского словаря. - Embedder: Embedding-модель, которая служит двум целям: она выбирает семантически подходящие слова из
WatermarkTableна основе текстаinputи помогает обнаруживать водяные знаки в потенциально перефразированном тексте. Мы используем jina-embeddings-v3, потому что она отлично справляется как с очень длинными текстами, так и с разными языками. Это означает, что мы можем добавлять водяные знаки в длинные документы и все равно ловить плагиаторов, даже если они переводят текст. - Watermarks: Слова, выбранные из WatermarkTable путем вычисления косинусного сходства между embedding входного текста и embedding в таблице. Количество слов определяется коэффициентом вставки, обычно 12% от количества слов во входном тексте.
- Injector: LLM, следующая инструкциям, которая интегрирует слова водяного знака во входной текст, сохраняя согласованность, фактическую точность, естественный поток и равномерное распределение слов водяного знака по всему тексту.
- Watermarked Text: Результат после того, как Injector вставляет слова водяного знака в
input. - Adversary (Кража контента): Сущность, которая пытается использовать текст с водяными знаками без атрибуции, обычно через перефразирование, перевод или незначительные правки. Сегодня это просто означает использование LLM с промптом
Paraphrase [text]для автоматического переписывания. - Modified Text: Результат после модификаций противником текста с водяными знаками. Это текст, который нам нужно проверить на наличие водяных знаков.
tagАлгоритм
tagЗаключение
На этих примерах мы видим, что наша система водяных знаков на основе эмбеддингов довольно устойчива даже при такой базовой настройке. Особенно примечательно то, что водяные знаки остаются обнаруживаемыми даже после перевода. Эта устойчивость между языками стала возможной благодаря мощным многоязычным возможностям модели jina-embeddings-v3; без сильных многоязычных и кросс-языковых способностей такая сохранность при переводе была бы невозможна.
Существует несколько способов улучшить точность и устойчивость этой системы водяных знаков. Во-первых, таблицу водяных знаков можно расширить и тщательно структурировать для обеспечения разнообразия. Это важно, поскольку больший и более разнообразный словарь обеспечивает лучший охват семантических пространств, облегчая поиск контекстуально подходящих водяных знаков для любого текста, при этом снижая риск повторяющихся или очевидных паттернов.
Компонент Injector можно улучшить, реализовав более сложные стратегии вставки. Например, его можно настроить на равномерное распределение водяных знаков по всему тексту для сохранения незаметности. Кроме того, мы могли бы использовать технику позднего разбиения для генерации водяных знаков для отдельных сегментов или предложений, позволяя Injector принимать более тонкие решения о размещении водяных знаков. Это поможет сохранить как общую незаметность, так и семантическую согласованность в финальном тексте.

Для читателей, заинтересованных в более глубоком изучении, "POSTMARK: A Robust Blackbox Watermark for Large Language Models" (Chang и др., EMNLP 2024) представляет комплексную структуру, включающую математические формулировки и обширные эксперименты. Авторы систематически исследуют построение словаря водяных знаков, оптимальные стратегии вставки и устойчивость к различным атакам. Они также тщательно анализируют компромисс между обнаружением водяных знаков и качеством текста с помощью как автоматической, так и человеческой оценки.







