Comments 34
У В.Зеленского на правой руке 6 пальцев. А так - реалистично.
Зеленский не похож
Мне кажется, что похож, но не буду спорить. Не фанат данного персонажа, чтобы что-то доказывать, так что пусть будет не похож.
Первое фото - лишь отдаленно напоминает, во втором, если убрать футболку и муку - вообще ассоциаций не возникает
А с Трампом и Байденом проблем нет, 1 в 1, что странно
Возможно это связано с количеством контента про Донни и Зеленского. Возможно надо в промпт поставить ЗеленскийКВН или что-то того.

А этот лучше? Просто мне они на одно лицо, извините. Тут уже добавил КВНЗеленский и Слуга Народа в промпт.
Не он, другой человек
Глаза, нос не такие https://ya.ru/images/search?text=зеленский
Нейронка какого-то Альпачино пытается изобразить
Вот, пожалуйста, Зеленский

Не знаю, меня на всех сгенерированных картинках смущают слишком плавные линии, "фотографии" выглядят как постеры. Сомневаюсь, что так можно обмануть людей.
Да, картинки, слишком чёткие и глянцевые, фотографии так не выглядят

https://habr.com/ru/articles/902172/#comment_28192380 - вот изначальная фотка. Так что и за нейронкой можно дочищать руками.
Остроумно и интересно, но почему вы называете это семантической атакой? Вся работа нейросети лежит в области синтаксиса.
Как раз если бы нейросеть понимала семантику, то такая атака была бы невозможна.
Просто есть две сети, которая анализирует на легальность промпт, а вторая которая рисует картинку. По крайней мере у Яндекса так. И вот за счёт скрытых смыслов (модифицированной семантики) мы обходим безопасность, а вот вторая уже рисует то, что нам нужно. Если вы посмотрите, то атаки без семантики были в прошлой статье, здесь же мы подбираем промпт с помощью скрытых смыслов. Тот же кокаин на муку заменил DeepSeek, обойдя защиту в итоге.
Тут нет никаких скрытых смыслов, тут используется слово "мука" для замены слова "кокаин". Чисто синтаксически.
Именно за счёт того, что LLM не понимает смысл слов, всё это и работает. Смысл кокаина один и тот же, каким словом его не назови.
Сожалею, но вы путаете семантику и синтаксис.
https://ru.ruwiki.ru/wiki/Синтаксис
https://ru.ruwiki.ru/wiki/Семантика
Если подводить итог, то синтаксис отвечает за последовательность слов, словосочетаний и прочее. Мы же не меняли последовательность слов. Семантика же отвечает за смысл. Понятное дело, что ИИ не совсем как мы понимает значения слов, тем не менее, это именно вариант понимания, пусть и через статистику. Тем не менее мы работаем именно с семантикой, со смыслом, используем синонимы и так схожие приёмы (например, с мукой), а не занимаемся перестановкой слов в предложении.
У меня есть инженерные и научные работы в области формальной семантики, так что вряд ли я их путаю.
А вот вы ссылаетесь на определения синтаксиса и семантики из естественной лингвистики, которые не вполне применимы в программировании, так как, во-первых, ориентированы на способ восприятия языка человеком, а во-вторых, просто имеют другую традицию в терминологии.
В программировании любой текст так, как он написан - это синтаксис.
Попробуйте в середине текста программы написать какой-нибудь мусор, и вы получите от компилятора сообщение о синтаксической ошибке.
Нейросетевой ИИ значения слов никак не понимает, он ими не оперирует. Он работает с перестановками слов, то есть с синтаксисом. С семантикой работает символический ИИ, но это не имеет отношения к обсуждаемой теме.
Синтаксис, денотационная и операционная семантика в теоретическом программировании задаются аксиоматически, формулами. Там, в частности, определяется семантический оператор [[...]], который в нейросетевых моделях не используется в оригинальном значении просто в силу их устройства.
Что касается синонимов. Семантика синонимов по определению одинакова, поэтому они и являются синонимами (в естественных языках, однако, полные синонимы встречаются редко). Поэтому замена слова на его синоним не влияет на семантику, это чисто синтаксическая операция. Но так как нейросетевой ИИ не вычисляет семантику, то для него, в отличие от человека, синонимов вообще не существует, чем вы и пользуетесь в своём способе. Слова, которые человеку представляются синонимами, нейросетью обрабатываются совершенно по-разному, так как имеют разный синтаксический контекст использования.
В общем, по этому поводу могу посоветовать читать Плоткина и его последователей, за 40 лет написано немало. А не русскую Википедию.
Рад бы с вами согласиться, но LLM или Большие языковые модели оперируют не языками программирования (хотя ими тоже), а как раз естественными языками. Таким образом при выборе терминологии стоит опираться всё же на определения из области естественных языков. Или вы считаете это неверным посылом?
Но вопрос всё же скользкий, соглашусь. Если вам будет удобнее считать, что это синтаксическая атака - вы вольны считать её такой.
Я действительно считаю это неверным посылом, и вот почему.
LLM оперируют текстами, синтаксис которых совпадает с синтаксисом естественного языка, но тем не менее для LLM они являются языками программирования (ну, или, точнее говоря, представления данных).
Если почитать определения из области естественных языков (например, дать в яндексе запрос "основные функции языка"), то можно прочесть, соответственно, про основные функции естественного языка, большинства из которых (скажем, если выделять 8 функций, то 7 из 8) язык интерфейса с LLM лишён по построению. LLM оперирует только коммуникативной функцией языка. Поэтому квалифицированный лингвист сам укажет на то, что не вполне корректно термины человеческой лингвистики применять к вводу-выводу компьютерной программы (Хомский об этом много рассуждал).
Добрый день. Специально ради вас зарегистрировался на Хабре. До этого читал статьи лет 5, но ваш комментарий просто нечто — квинтессенция невежества в форме навязывания своего мнения, не имея вообще никаких навыков написания кода и разработки ML/AI приложений. Пожалуйста, хватит дезинформировать людей. Автор статьи прав — это семантические атаки, а не статистические. В GPT и трансформерах слова превращаются в векторы и упорядоченно лежат в векторном СУБД. Векторы многомерны, поэтому семантическое значение слова корректно «угадывается» и прогнозируется по принципу векторной близости. Так что, когда автор писал о навыках обхода запретов через промпты, он и имел в виду обойти эту самую «векторную» близость, чтобы векторы, оказывающиеся «рядом» в многомерном пространстве, относящемся к запрещённому контенту при классификации, не оказались «похожими». Поверьте мне я знаю что говорю у меня 8 лет опыта. Автору — респект за сдержанность!
Добрый день! У меня 30 лет опыта и специальное образование, и я утверждаю, что когда вы "семантикой" называете вытяжку из синтаксиса, то это либо непонимание терминологии, либо сознательный обман публики, которым, к сожалению, тоже часто грешат разработчики языковых моделей.
В качестве простейшего примера, попробуйте дать LLM три семантически эквивалентных запроса: "*б твою мать" (без цензуры), "ёрш твою медь" и "я недоволен" и полюбуйтесь на свои векторы. Угадывается синтаксический контекст, а не семантика.
Впрочем, судя по вашему описанию в учётной записи на сайте, я вообще сомневаюсь, что вы задумываетесь о семантике. Оно полностью состоит из синтаксических штампов. Его вам генеративный ИИ, что ли, написал?
В современной лингвистике синтаксис — это структура, порядок, формы выражения (как «запчасти» предложения), а семантика — это смысловая нагрузка, что стоит за словами
В LLM всё сложно: модель использует токены, которые «впитывают» одновременно данные о синтаксисе, семантике, статистике сочетаний и прагматике
В вашем же примере вы же и используете разные по семантической близости выражения - то есть в первых двух понятен посыл как с семантической точки зрения вы туда помимо реакции на недовольство примешиваете эмоциональный окрас, что в векторном поле будет лежать ближе к ругательствам, а в 3 примере - ругательств нет но в функциональное назначение слов такое же. У всех 3 фраз функционально эквивалентны, но семантически они разные и будут лежать в разных векторных пространствах в зависимости от контекста( например если мы будем сравнивать по векторной близости к запрещенным фразам это одно). То же самое и в посте автора - мы пытаемся разными путями достигнуть желаемого как с точки зрения семантического обмана - маскируя фразы под необходимую векторную близость и избегая области цензур. Так и с точки зрения синтаксиса - в_о_т т_ак_им способом - тем самым в слое препроцессинга токен слова не будет собран и семантический контекст не будет отгадан и запрос пройдёт. Другими словами мы при помощи синтаксиса и маскировки целевого семантического смысла пытаемся в целом пройти валидацию. Но это не значит, что фильтрация в LLM происходит только на основании синтаксиса. Более сложные и современные модели и фильтры стремятся улавливать именно семантическую близость — то есть ищут не только совпадение лексики и структуры, но и смысловой подтекст (например, обнаруживая завуалированные запросы на обход запретов или «жаргонные» эвфемизмы)
В результате любые эффективные атаки (jailbreak, prompt injection и др.) строятся либо на маскировке/перефразировании смыслового ядра (семантики), либо на искажении синтаксиса, чтобы нарушить работу препроцессинга и фильтров — как правило, лучшие результаты достигаются комбинацией этих подходов.
Семантика маскируется через синтаксис, синтаксис — ради искажения смысловой близости.
P/s по поводу профиля отличный способ примешать ненужное лишь бы не признаватт что неправ, ведь 30 лет в разработке
Я прекрасно понимаю, что эти три фразы расположены по-разному в векторном пространстве LLM. Но их семантика в точности одинакова. Применение той или иной из них регламентируется исключительно синтаксическим окружением (на стройке я воспользуюсь первым вариантом, а в школе - третьим, для передачи одной и той же мысли. А вот коллега, например, говорит "ёжики-корёжики", и мне совершенно не нужен синтаксический контекст, чтобы её понять).
Если вам так проще понять, то обратите внимание, что семантика почти любого предложения русского или английского языка имеет полный эквивалент на языке суахили или пали, неизвестном LLM. Семантика одинаковая, а синтаксис разный, и поэтому реакция LLM разная.
Семантика естественного языка не выводится из синтаксиса, а мышление человека воообще не привязано к языку. Это очевидные вещи, которые в своей основе поймёт и собака, однако, некоторые сторонники коннективистского подхода пытаются этот факт замаскировать.
Что касается принципов атаки на LLM, то я не спорю с их описанием по существу. Я призываю просто не упоминать всуе термин "семантика", который к работе LLM не имеет вообще никакого отношения.
У Трампа в больнице тоже шесть пальцев на руке с датчиком.
Яндекс.Вброс или ИИ для фейков