Всем привет! Меня зовут Артём Семенов, я занимаюсь пентестами в компании RTM Group.
В первой части данного материала мы говорили о различных методах классификации текста и разобрались с некоторыми техниками для атаки на классификаторы. Сегодня мы возьмемся за NLP-триггеры и стилистические атаки на NLP-классификаторы. Также мы поговорим о том, как машинный текст может быть обнаружен и как можно защитить классификаторы от атак.
Маскировка стиля
Одним из возможных методов атак при обмане классификаторов является маскировка стиля. Так, пользователь может попытаться имитировать стиль письма человека, чтобы обмануть классификатор. Например, добавить стилистические штрихи к тексту, созданному ИИ, которые могут «очеловечить» его, такие как повторения, грамматические ошибки, неполные предложения и т.д.
Очевидно, что основным недостатком метода является изменение текста. Он будет не схож по стилистике с оригиналом. И здесь отметим, что некоторые языковые модели, включая GPT, можно обнаружить при помощи ряда статистических свойств. Например, распределение вероятностей токенов и энтропия при неопределённости модели в выборе следующего слова. Языковые модели с высокой энтропией менее уверенны в своих предсказаниях. Для этого сегодня используется множество метрик:
Энтропия - мера неоднородности текста. Тот, что создан человеком, обычно более разнообразен и имеет большую энтропию, чем тот, что написал ИИ.
Пример: "Золото, умноженное на золото, дает нам продукт удвоенный".
Этот пример имеет низкую энтропию. Мы видим очень простую и легко предсказуемую структуру предложения, поэтому его энтропия невелика. С огромной вероятностью данный текст может быть написан языковой моделью.
В противоположность этому, текст, созданный человеком, обычно содержит большую разнообразность слов, фраз и идей.
Пример: "Возможно, веками мы будем искать истины и неизведанные грани познания, но в этом и заключается прекрасное путешествие нашей жизни".
Этот текст имеет высокую энтропию, так как содержит разнообразные слова, фразы и идеи, делая его более сложным для предсказания.
Преплексия — под ней здесь понимается, насколько знакомым и стройным текст кажется языковой модели: если он труден для понимания, то с большой долей вероятности писал текст человек.
Пример текста с низкой преплексией:
"Я люблю кошек. Они мягкие и пушистые. Мурчат и мурлычут. Когда они маленькие, они такие милые!"
В этом примере текст довольно простой и прямолинейный. Он следует привычной структуре предложений и использует повседневный словарь. Такой текст легко и понятно читается, и у языковой модели не будет проблем с его обработкой.
Пример текста с высокой преплексией:
" Вашу мысль,
мечтающую на размягченном мозгу,
как выжиревший лакей на засаленной кушетке,
буду дразнить об окровавленный сердца лоскут:
досыта изъиздеваюсь, нахальный и едкий."
В этом примере текст более сложный, содержит необычные слова, метафоры и фразы с неожиданным контекстом. Такая композиция текста может вызвать затруднение у языковых моделей, которые, может быть, не знакомы с такими стилистическими особенностями или редкими словами.
Частоты n-грамм - подсчет количества последовательностей из n слов в тексте. Различия в распределении частот n-грамм могут указывать на то, что текст был написан человеком или ИИ.
Пример: "Он нашел свой зонт, когда ____". Если наиболее часто встречающееся n-граммы в текстах, созданных человеком и ИИ, схожи, то текст был, скорее всего, сгенерирован ии.
Также для классификации текста можно использовать частотные признаки. Это метрики, используемые в анализе текста для определения частоты встречаемости слов или фраз. Рассмотрим с примерами то, по каким частотным признакам можно классифицировать текст.
Распределение Zipf — это статистическое распределение, которое показывает отношение между частотой слова в тексте и его позицией в ранжированном списке слов. Оно предполагает, что наиболее часто встречающееся слово появляется в тексте вдвое чаще, чем следующее за ним по популярности и т.д. Распределение Zipf обычно использовалось для описания естественных языковых явлений, таких как распределение частот слов в тексте.
Пример: в тексте «корова дала молоко, молоко было вкусным» слово «молоко» было бы более часто встречающимся, чем «корова» (два против одного).
TF-IDF (term frequency-inverse document frequency) — это метрика, которая измеряет, насколько важно слово для документа в коллекции документов. Этот показатель учитывает частоту слова (term frequency) и обратную частоту документа (inverse document frequency). Первое определяет, как часто слово встречается в документе, появляется в других документах в коллекции. TF-IDF широко используется в поисковых системах для определения релевантности текста запросу.
Пример: в документе о животных слово "корова" может оказаться менее важным, если все документы в коллекции также содержат это слово, в то время как слово "капибара" может иметь более высокий TF-IDF, если оно встречается только в одном документе.
Синтаксические признаки
В ряде случаев для классификации машинного текста можно применять синтаксические признаки – это некоторые особенности языка, связанные со структурой предложений и отношениями между словами в них.
POS-теги — это метки, используемые для определения частей речи в предложениях. Каждое слово в предложении может быть помечено определенным POS-тегом, отражающим его грамматическую роль, например существительное, глагол, прилагательное, наречие и т.д. Последовательность POS-тегов может дать информацию о структуре предложения и о том, какая роль в нем отведена определенным словам.
Именованные сущности — это фразы, обозначающие имена, места, даты и другие концепции, которые имеют определенный смысл. Их можно вычленить при помощи алгоритмов машинного обучения, определяющих, что слово или фраза обозначают сущность, а затем помечающих их соответствующим тегом, чтобы их можно было легче распознать. Последовательность именованных сущностей в тексте может использоваться для извлечения информации, связанной с ключевыми сущностями, например именами людей, названиями компаний, странами и т.д.
Признаки связности и читаемости включают индекс Флеша и индекс Ганнига-Фога. Индекс Флеша (Flesch index) - это формула, используемая для измерения уровня читаемости текста. Она основана на количестве слов в предложениях и средней длине слов в тексте. Чем ниже индекс Флеша, тем труднее читать текст. Вычисляется он по следующей формуле:
206.835 - 1.015 x (количество слов/количество предложений) - 84.6 x (количество слогов/количество слов)
Индекс Ганнига-Фога (Gunning-Fog index) - это также формула, измеряющая уровень сложности текста. Она основана на количестве слов в предложении и количестве слов с более чем двумя слогами. Чем выше индекс Ганнига-Фога, тем сложнее текст. Он вычисляется по следующей формуле:
0.4 x ((количество слов/количество предложений) + 100 x (количество слов с более чем двумя слогами/количество слов))
Оба индекса могут быть полезны для оценки качества текста. Если значения индексов слишком высоки, его читаемость может быть улучшена, например, путем упрощения предложений или заменой сложных слов на более простые. Каждый индекс имеет свои плюсы и может быть полезен в определенных контекстах.
Например, индекс Флеша больше пригодится для оценки текстов, предназначенных для детей или молодежи, в то время как индекс Ганнига-Фога - для оценки академических и профессиональных текстов. Однако ни один из них не является абсолютно точным, и оба имеют свои ограничения.
Эти индексы могут быть полезными инструментами для оценки читаемости текста, но они не являются абсолютно точными и не принимают во внимание все аспекты, которые могут сделать текст сложным для понимания.
Например, они не учитывают сложность идей или концепций, изложенных в тексте, и не оценивают качество стиля письма или организацию информации. Важно использовать эти инструменты с пониманием их ограничений.
Статистические метрики могут применяться для обнаружения аномалий в тексте и, таким образом, определения вероятности того, что этот текст был сгенерирован ИИ.
Например, инструмент DetectGPT сравнивает множество искажений текста, сгенерированного моделью, чтобы определить, был ли исходный текст сгенерирован ИИ или нет, основываясь на логарифмической вероятности исходного текста и искаженных версий.
Триггеры для NLP
При помощи триггеров можно модифицировать входные данные с тем, чтобы заставить модели машинного обучения выдавать ошибочные прогнозы. Они раскрывают уязвимости системы, например, спамер может использовать враждебные атаки для обхода фильтра спама. Эти проблемы безопасности возрастают по мере внедрения моделей обработки естественного языка в производственных системах, таких как детекторы фейковых новостей и домашние помощники.
Существование таких триггеров имеет последствия для безопасности. Они могут широко распространяться и позволяют кому угодно атаковать модели. Кроме того, с точки зрения анализа универсальные атаки могут предоставить новые сведения о глобальном поведении модели.
Триггеры представляют собой форму универсальных враждебных возмущений, адаптированных к дискретным текстовым входным данным. Чтобы найти их, авторы статьи “Universal Adversarial Triggers for Attacking and Analyzing NLP” разработали метод поиск триггеров, направляемый градиентом. Поиск итеративно обновляет токены в последовательности триггера, чтобы увеличить вероятность целевого прогноза для различных примеров. При помощи этого метода исследователи добились успешного вызова целевого прогноза при присоединении к входным данным из текстовой классификации, понимания прочитанного текста и условного текстового порождения.
Рассмотрим некоторые из них:
-
Для анализа настроений:
zoning tapping fiennes - меняет правильные положительные предсказания модели на отрицательные
comedy comedy blutarsky - меняет правильные отрицательные предсказания модели на положительные
-
Для SNLI (естественный язык и логический вывод):
nobody - заставляет модель предсказывать 99,43% примеров в пользу противоречия для утверждения
never
sad
scared
-
Для чтения с пониманием (SQuAD):
why how ; known because : **to kill <censored> people** - заставляет модель предсказывать фразу "to kill <censored> people" в качестве ответа на вопрос "Почему?".
-
Для условного текстового порождения (GPT-2):
TH PEOPLEMan goddreams Blacks является префиксом, который побуждает языковую модель GPT-2 генерировать расистские выходные данные.
Universal adversarial triggers могут быть эффективны для обхода систем обнаружения плагиата, однако существуют некоторые ограничения:
Эффективность зависит от модели. Триггеры генерируются с использованием градиентов для конкретной модели обнаружения плагиата, поэтому они могут переноситься на другие модели, но эффективность может быть ниже. Чем ближе модели, тем выше вероятность успешной атаки.
Триггеры оптимизируются для определенного набора данных. Они могут не работать, если система обнаружения плагиата обучена на другом наборе данных с другим распределением.
Требуется доступ к градиентам модели. Это необходимо для того, чтобы генерировать эффективные триггеры, однако может быть затруднено на практике.
Триггеры могут быть легко обнаружены. Оптимизированные последовательности токенов могут выглядеть подозрительно и быть легко выявлены, особенно если они состоят из редко используемых слов или не имеют очевидного смысла.
Таким образом, хотя adversarial triggers обладают потенциалом для обхода систем обнаружения плагиата, на практике существуют серьезные препятствия.
Каким образом можно определить текст, который был написан машиной?
Сегодня много говорится о том, что следует помечать текст, картинки или другие объекты, которые были сделаны нейросетями. В индустрии даже было введено понятие «водяного знака» для нейросетей. Что это? По сути, мы можем провести аналогию с картинкой, которую вы получаете на фотостоке – если вы скачивайте её бесплатно, на ней присутствует обычно логотип фотостока. Нейросети также могут помечать свой контент. В случае с ChatGPT ватермарк не виден глазу человека. Однако ChatGPT генерирует текст по уникальному алгоритму, который можно распознать. Классификатор от OpenAI это точно умеет определять.
Авторы статьи Can AI-Generated Text be Reliably Detected? Предлагают всем создателям llm встраивать в модели технологию «Водяных знаков», однако подобное решение пока что не является эффективным. Злоумышленник может просто попросить перефразировать текст другую языковую модель, например, от Яндекса, и получить текст, который не будет обнаружен большинством классификаторов. Точно неизвестно, какие языковые модели на данный момент используют водяные знаки, но можно быть уверенным, что этот метод со временем будет применяться повсеместно.
Кроме того, стоит упомянуть взаимную информацию, которая показывает, насколько одно слово в тексте зависит от предыдущих. Если этот показатель находится на высоком уровне, это означает сильную зависимость, что типично для языков с богатым морфологическим строем. Модели, обученные на таких языках, лучше учитывают контекст при генерации или прогнозировании текста.
Следует понимать, что каждая модель обучена на определённом датасете, где могут повторяться структуры при построении предложения или же может использоваться особый стиль написания текста. Каждая модель также имеет «настроение» при написании текста. Однако, большинство из этих факторов можно просто вычеркнуть, попросив другую модель перефразировать текст.
Каким образом можно улучшить классификаторы для защиты от злоумышленников?
Мы рассмотрели ряд методов для того, чтобы можно было обмануть классификаторы машинного текста. Но было бы неправильно не рассказать о защите классификаторов.
Поиск по ранее сгенерированным текстам (retrieval over previously-generated text): этот метод предполагает, что поставщик API хранит все тексты, когда-либо сгенерированные их языковой моделью, в базе данных. Когда клиент предоставляет текст, при помощи API проводится его поиск БД на предмет совпадений. Поскольку перефразирование сохраняет семантику исходного текста, есть вероятность, что такой метод защиты сможет отобразить связь перефразированных текстов с их источником.
Использование Adversarial Training: этот метод включает в себя обучение модели на adversarial примерах вместе с оригинальными данными. Это помогает ей учиться распознавать adversarial атаки и справляться с ними.
Внедрение OCR (оптического распознавания символов) подразумевает, что необходимо отрендерить текст как изображение и пропустить через OCR движок перед подачей на модель. Это позволяет отфильтровать большинство невидимых символов и гомоглифов.
Данные методы дают возможность защитить классификаторы от атак и сократить риски безопасности машинного обучения.
Заключение
Подводя итоги, хочется отметить, что в данной статье мы рассмотрели далеко не все методы классификации. Все, о чем было рассказано, является актуальным для большинства инструментов, классифицирующих машинный текст. Здесь были продемонстрированы как методы, которые делают минимальные или невидимые изменения в тексте, так и те, что позволяют осуществлять перефразирование. Недавно в свет вышла статья в technologyrewiew, в которой группа ученых оценила способность 14 инструментов, включая Turnitin, GPT Zero и Compilatio, обнаруживать текст, созданный с помощью AI-системы OpenAI's ChatGPT.
Исследователи написали короткие эссе на различные темы, затем перевели их на английский язык с помощью инструментов AI. Далее, использовали ChatGPT для генерации дополнительных текстов, которые они немного подправили, чтобы скрыть, что они были сгенерированы AI. Также они применили инструмент для перефразирования AI под названием Quillbot для редактирования некоторых текстов.
В итоге выяснилось, что хотя инструменты были хороши в определении текста, написанного человеком, они справлялись хуже при обнаружении того, что сгенерировал AI, особенно после редактирования. Хотя инструменты определяли текст ChatGPT с точностью 74%, эта цифра снижалась до 42%, когда текст, сгенерированный ChatGPT, был немного изменен.
Вывод исследования заключается в том, что существующие инструменты для обнаружения текста, сгенерированного искусственным интеллектом, не всегда эффективны, особенно когда он был немного изменен или отредактирован человеком.
Разработчики Антиплагиат.ру также утверждают, что человеческое вмешательство (а именно перефразирование) позволяет обойти их NLP-классификатор. Однако, мы не теряем надежды, что со временем ситуация кардинально изменится. Конечно, со временем в интернете будет появляться все больше текстов, сгенерированных нейросетью и затем перефразированных. Датасет будет разрастаться и, как следствие, будет повышаться качество работы классификаторов машинного текста.
Vasjen
А можно как-то поросить разработчиков Антиплагиата пересмотреть систему определения заимствований? Есть устоявшиеся фразы и выражения, которые могут использоваться только так и никак иначе "Оборотно-сальдовая ведомость", "План счета в разрезе ..." (это из мира бухучета) и т.д. И логично, что у кого-то есть в работах эти выражения, а без них ты диплом и диссертацию не напишешь. И гарантировано -5-10% уникального текста получишь.
Туда же добавить можно использование правовых норм и разъяснений. Были случаи, когда какой-то кусок текста федерального закона определялся как плагиат, потому что в системе Антиплагиат он был заведен как из какой-то другой работы (а не как первоисточник), поэтому это было именно заимствование, а не цитирование. Приходилось чуть ли не перефразировать законодательные нормы(!), лишь бы еще процентов десять не оттяпали.
Тут конечно больше вопросов к ВУЗУ, который требует уникальность 85% по заезженной теме, но и Антиплагиату есть тоже парочку.
werwolflg
Ещё веселее дела обстоят с разделами по охране труда/технике безопасности или технико-экономическому обоснованию, там же тоже половина одно сплошное цитирование.