Привет, Хабр! Меня зовут Миша Паутов, я аспирант Сколтеха и научный сотрудник группы Доверенные и безопасные интеллектуальные системы Института AIRI. Совсем недавно мы вместе с коллегами предложили новый метод создания цифровых водяных знаков для нейронных сетей. Такие объекты, по‑другому называемые ватермарками, можно использовать для определения того, что вашу нейросеть кто‑то скопировал и выдаёт за свою. Здесь я расскажу, в чем состоит идея предложенного метода, а более детально о нем можно почитать в препринте статьи, принятой на международную конференцию IJCAI.

stock.adobe.com
stock.adobe.com

Как украсть нейросеть?

Сама формулировка этого вопроса сейчас звучит необычно, но, видимо, в будущем нам придётся к ней привыкнуть. Воровство нейросетей — это, по сути, нарушение прав интеллектуальной собственности в области искусственного интеллекта. Одна из основных причин кражи — ликвидировать отставание от конкурентов либо получить преимущество в данной области.

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

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

Слева можно расположить ситуацию, когда злоумышленник обладает полной копией модели. Чтобы такое произошло, нейросеть должна физически утечь с серверов своих создателей. Для этого можно организовать хакерсткую атаку на инфрастркутуру, а также использовать социальную инженерию. Наконец, бывает и чисто человеческий фактор — именно так недавно утекла Mistral 7B

Другой край шкалы — ситуация «чёрного ящика», когда у пользователя (и, соответственно, злоумышленника) нет никакой информации об устройстве нейросети. Взаимодействие с такой моделью построено следующим образом: пользователь отправляет запросы и получает ответы (предсказания) нейронной сети, в общем случае не зная ни архитектуру модели, ни данные, на которых та обучалась. Примером такой модели является ChatGPT.

Схема модели типа “чёрный ящик”. Источник.
Схема модели типа «чёрный ящик».  Источник.

Всё, что посередине, можно обозвать моделями типа «серый ящик».

Понятно, что атаки в разных точках нашей шкалы будут принципиально отличаться. Можно предположить, что владелец нейросети способен защитить свои сервера, а также обучить своих сотрудников правилам безопасности, исключив возможность утечки «белого ящика». Однако крайне сложно защититься от кражи модели «чёрного ящика», особенно если к ней предоставлен массовый доступ. Метод создания цифровых водяных знаков, который мы придумали, заточен как раз под такие атаки, хотя может использоваться и в других сценариях.

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

Стоит сказать, что цель создания водяных знаков для нейронной сети — определить, что она была незаконно получена или, по‑простому, украдена злоумышленником. Каким же образом злоумышленник может украсть нейронную сеть, не имея к ней почти никакого доступа? Давайте разбираться!

Кража функциональности нейронной сети

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

Одним из самых эффективных способов кражи нейронной сети‑черного ящика является дистилляция. Прибегая к этому способу, злоумышленник подготавливает суррогатный набор данных

\bar D = \{{(x_i, f(x_i))}\}_{i=1}^{n},

в котором входным объектам в качестве истинных меток ставятся в соответствие предсказания дистиллируемой нейронной сети. Затем злоумышленник обучает отдельную, суррогатную нейронную сеть, минимизируя ошибку на датасете D̅.

Схема кражи модели с помощью дистилляции. Источник.
Схема кражи модели с помощью дистилляции. Источник.

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

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

Водяные знаки, устойчивые к атакам, направленным на кражу функциональности

Учитывая, что злоумышленник волен выбирать сценарий кражи модели, архитектуру суррогатной модели и суррогатный датасет, мы воспринимаем кражу как случайный процесс, который ставит в соответствие исходной модели f некоторую модель из множества B потенциально украденных моделей. Это множество может быть параметризовано: например, в него могут быть включены все модели из определенного списка архитектур, производительность которых в исходной задаче отличается от производительности модели f не более, чем на τ — некоторый заранее заданный порог производительности. В нашей работе мы рассматриваем множество сценариев атаки на кражу функциональности нейронной сети — предполагается, что потенциальному злоумышленнику может быть известна как архитектура исходной сети, так и ее обучающая выборка.

Предложенный метод состоит из двух этапов: на первом этапе мы ищем в пространстве входных данных Х объекты‑кандидаты на включение в триггерное множество, а на втором — убеждаемся в том, что поведение исходной сети на этих кандидатах хорошо переносится на модели из множества B.

Оговорюсь, что речь о пойдет о задаче классификации: нейросеть f ставит в соответствие входным объектам метки классов.

Поиск точек-кандидатов

Поиск точек‑кандидатов основан на известном подходе mixup: для пары объектов x1 (класса y1 ), x2 (класса y2 ) ∈ X мы строим выпуклую комбинацию

x = \lambda x_1 + (1-\lambda)x_2,

где λ ~ U(0,1). Такая точка рассматривается как кандидат на включение в триггерное множество только если исходная модель не относит ее ни к классу y1 ни к классу y2.

Верификация точек-кандидатов

Для того, чтобы убедиться в переносимости предсказания нейросети на точке‑кандидате x мы применили трюк: случайным образом выбрали набор моделей f1, f2,…, fm из множества B и проверили, присваивают ли они объекту x такой же класс, что и исходная модель f. Иными словами, объект считается достойным кандидатом на включение в триггерный набор, если выполнено равенство

f(x) = f_1(x) = … =f_m(x).

Случайное сэмплирование модели можно делать, например, путем сэмплирования случайного вектора весов для фиксированной архитектуры.

Иллюстрация метода.
Иллюстрация метода.

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

Аналогично, мы случайным образом выбираем набор моделей g1, g 2,…, gm — дополнения множества B, соответствующего не ворованным моделям — и проверяем, что выполняется следующая система неравенств:

g_1(x) \neq f(x), g_2(x) \neq f(x), …, g_m(x) \ne f(x).

Таким образом, точки, прошедшие такую процедуру верификации (случайные модели f1,…, fm B ведут себя на них так же, как f, а случайные модели g1,…, gm — нет) включаются в триггерный набор.

Результаты работы метода

Для того, чтобы оценить, насколько хорошо работает метод нанесения водяных знаков, мы провели несколько экспериментов.

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

Эффективность используемого метода. Точность исходной модели на триггерных данных – 100% по построению. Чем выше точности суррогатных моделей на триггерных данных, тем лучше.
Эффективность используемого метода. Точность исходной модели на триггерных данных – 100% по построению. Чем выше точности суррогатных моделей на триггерных данных, тем лучше.

В таблице в строчках 1 и 3 представлена точности исходной модели и суррогатных моделей на тренировочной выборке D Интуитивно, чем выше точность суррогатной модели на D тем успешнее атака на кражу функциональности. Строчки 2 и 4 же иллюстрируют то, насколько успешно поведение на триггерном множестве D* переносится на суррогатные модели: чем выше доля совпадения предсказаний, тем точнее метод определяет факт копирования нейронной сети. С помощью этой таблицы можно убедиться, что наш метод (выделен жирным) в большинстве случаев бьет все SOTA.

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

Для фиксированной архитектуры исходной модели f мы провели соответствующий эксперимент: предположили, что архитектура суррогатной модели f* не совпадает с ней (иными словами, что архитектура модели f неизвестна злоумышленнику), а также что суррогатная модель обучена на своем датасете независимом от тренировочной выборки D модели f.

В таблице ниже мы сравнили результаты с предыдущим state‑of‑the‑art методом. Можно увидеть, что это уже не state‑of‑the art ?

Устойчивость водяных знаков к прунингу и дообучению

Помимо дистилляции, в нашей работе мы рассмотрели прунинг и дообучение как преобразования, которые могут привести к деградации поведения нейронной сети на водяных знаках.

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

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

Деградация модели во время прунинга на двух датасетах CIFAR-10 и CIFAR-100.
Деградация модели во время прунинга на двух датасетах CIFAR-10 и CIFAR-100.
Эффективность предложенного метода в случае дообучения исходной модели f. Производительность модели на исходных данных ожидаемо растет, а на триггерных – падает, но незначительно.
Эффективность предложенного метода в случае дообучения исходной модели f. Производительность модели на исходных данных ожидаемо растет, а на триггерных – падает, но незначительно.

Заключение 

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

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

Комментарии (28)


  1. rsashka
    31.05.2024 17:02
    +2

    Сама формулировка этого вопроса сейчас звучит ... кража интеллектуальной собственности

    Кража, это тайное хищение чужого имущества, а то, что вы описали, это "нарушение прав интеллектуальной собственности"


    1. vikarti
      31.05.2024 17:02
      +4

      Тут даже вопрос - то что описано это вообще - нарушение?

      Потому что очень много слабых моделей дообучают на ChatGPT. Даже и сайт создан (и спокойно живет) был давно https://sharegpt.com/ для всех желающих сливать туда свои логи и определяется сильно проще чем играми в котиков с собаками - когда 7B/30B модель в ответ на вопрос а кто она - говорит что она - ChatGPT - все вообщем то ясно :).


      1. mikhailpautov Автор
        31.05.2024 17:02
        +2

        Нельзя рассчитывать на то, что ответ на вопрос "кто ты", заданный суррогатной модели, будет значить хоть что-нибудь в контексте определении связи этой модели с исходной. Описанный в статье подход – как раз про установление такой связи.


        1. rsashka
          31.05.2024 17:02
          +1

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

          Лично мне очень зашла сама идея подкидывать подобным образом некорректные данные для обучения сетки, чтобы она выдавала заранее настроенный ответ, который случайным образом получить невозможно. Такой метод просто напрашивается для использования в качестве идентификации сети.

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


          1. mikhailpautov Автор
            31.05.2024 17:02

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


            1. rsashka
              31.05.2024 17:02

              Если вас не волнует реакция читателей, ну тогда даже не знаю ...

              Кажется, когда требуют от учащихся публикацию статьи на Хабре, преподаватели смотрят не только на сам факт публикации (чтобы она прошла песочницу), но и получила какой-то минимальный уровень положительной оценки.


              1. mikhailpautov Автор
                31.05.2024 17:02

                Требовать публикации статьи на Хабре?) Что же за отчаявшиеся преподаватели должны быть...

                В любом случае, вам виднее


                1. rsashka
                  31.05.2024 17:02

                  Почему отчаявшиеся?

                  Публикация чисто технической статьи на Хабре с итоговым рейтингом от +10 достаточно для подтверждения качества материала и одновременно очень сильно упрощает преподавателю проверку материала.

                  Это очень хорошо работает для лабораторной или даже курсовой. Достаточно лишь убедится в том, что опубликованная статья соответствует сданному на проверку материалу.

                  И кстати, преподаватели тут не причем, это один из хабро-хаков


                  1. mikhailpautov Автор
                    31.05.2024 17:02
                    +1

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


                    1. rsashka
                      31.05.2024 17:02

                      Как вам уже написали, причем не только я, ваша работа хорошая, полезная и действительно заслуживает более широкого освещения. Просто вы немного промахнулись со стилем изложения, по крайне мере тут на Хабре.

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


    1. mikhailpautov Автор
      31.05.2024 17:02
      +2

      Спасибо за комментарий! Поправил формулировку.


  1. uhf
    31.05.2024 17:02
    +4

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


    1. mikhailpautov Автор
      31.05.2024 17:02
      +2

      Никто и не говорит, что результаты работы модели – интеллектуальная собственность и нельзя их использовать :)


      1. uhf
        31.05.2024 17:02
        +3

        Почему тогда вы называете дистилляцию кражей?


        1. mikhailpautov Автор
          31.05.2024 17:02

          Речь здесь идет о копировании функциональности модели; я не преследую цель жонглировать юридически корректными терминами, а использую таковые из области.


          1. rsashka
            31.05.2024 17:02
            +4

            я не преследую цель жонглировать юридически корректными терминами

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


          1. uhf
            31.05.2024 17:02
            +4

            Ну вот уже не кража, а копирование. Если немного порассуждать, то может оказаться, что это даже и не копирование, а вторичное обучение, например, или клонирование. И тогда возникает вопрос, а зачем, собственно, с этим бороться?


            1. vikarti
              31.05.2024 17:02
              +3

              Потратили деньги или хотя бы ресурсы, хотели заработать а кто-то за счет этого сделал клон и мы не заработали.

              Вот надо ли бороться и как - вопрос интересный. И с учетом что документы про исключительные авторскими права на весь датасет исходный - никто показать не сможет (хотя бы потому что многое там - давно в public domain) и что на одинаковых исходных данных может выйти похожий результатат.

              Патентам ж защиту дают, , как и например литературным произведениям. Пусть с кучей ограничивающих условий и ПРЯМО пишут кое где что для прогресса науки и искусства временная монополия дается (о чем кстати любители поговорить про "интеллектуальную собственность" забывают).


              1. uhf
                31.05.2024 17:02
                +1

                Да тут и кражи датасета я не вижу, нужно же все равно какие-то свои данные иметь, чтобы их разметить чужой моделью.
                А то, что ошибки могут быть одинаковые - так люди тоже одинаково ошибаются.


                1. mikhailpautov Автор
                  31.05.2024 17:02
                  +2

                  То, что ошибки одинаковые – это необходимое требование метода, регулирующего переносимость поведения, а не то, что "может быть"


            1. MAXH0
              31.05.2024 17:02
              +2

              Вот мне интересно, подобное недомыслие автора сформировалось самостоятельно или это заказ спонсоров. Потому, что крупные игроки типа Сбера и Яндекса заинтересованны в максимальном распростренениии цензуры копирайта. Независимые свободные нейросети уменьшают их прибыль. Хотя я очень не уверен, что сами гиганты получали все данные для обучения своих сетей не из общественного достояния.

              А если автору безразлично какой термин использовать, то почему бы не назвать это "абордаж данных"! Ведь он подразумевает, что копирование данных чужой нейросети - пиратство ))) Но как же без шельмования. Ведь кража - постыдно, а абордаж - это романтика.


              1. mikhailpautov Автор
                31.05.2024 17:02
                +2

                С удовольствием отвечу на вопросы по существу, как только они появятся


  1. Dynasaur
    31.05.2024 17:02
    +4

    Чтобы говорить о краже у вас какой-то собственности, надо сначала иметь эту собственность. На что именно вы претендуете как на свою собственность? На веса? На структуру слоёв? Если кто-то добавит свой слой или добавит в нём нейронов - это всё равно "ваша собственность"? А если запустить генератор всех возможных конфигураций и застолбить права на каждую - то все они станут "вашей собственностью" и никто больше не сможет создавать свои нейросети?


    1. digtatordigtatorov
      31.05.2024 17:02
      +1

      Набор данных на которых обучалась сетка? Вполне себе своя собственность. Я своими руками его размечал. Любая нейронка обученная на моем наборе данных, содержащего водяные знаки, будет перенимать этот вот указанный в статье моментик. Ну и собственно если какой-то ноунейм использует в коммерческих целях сетку, обученную на моих данных, есть возможность доказать, что были нарушены мои права. А вот уже какие веса он использует или архитектуру мне по большей части по боку.

      Приходишь на сайт like ChatGOPOGO и тебе на твой триггер «кроличья лапка» сетка начинает повторять слова. Значит модель обучена на моих данных, а это как бы нарушает мои права) видимо посыл в этом.


      1. Ravius
        31.05.2024 17:02
        +1

        Этотваша позиция. Но для этого нужны законы...которые отстают от регулирования.

        Чем "кроичья лапка" отличается от копии картины вангога? Или имитации текста шекспира? Стивена книга?

        Вы уверены что ваша модель не будет так же "выплевывать" Стивена книга?

        Очень сомневаюсь что у вас есть лично ваши данные для претрейна. И там все идеально "ваше".

        Ну и главный момент еоторый непонятен: я купил доступ - получать ответы. Это Мои ответы, почему я не могу их использовать как хочу?


    1. mikhailpautov Автор
      31.05.2024 17:02

      Собственность здесь – определенный алгоритм, хорошо решающий определенную задачу


      1. MAXH0
        31.05.2024 17:02
        +1

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


      1. Ravius
        31.05.2024 17:02
        +1

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

        Если "кража размеченных данных" ещё как-то понятна. То кража алгоритма (без весов и структуры сети) - это вообще что? Кража идеи?

        Давайте запатентуем OCR. Алгоритм? Вроде да. Патентуем?

        И еще на "подумать": пара картинок для обучения попала с "форума" куда запустили ответ вашей нейросети, но я прописал пользователям в соглашении, что могу использовать все их посты для обучения нейросети.

        Получается вы и виноваты. Ищите пользователя, кто "нарушил" и "слил" ответ вашей сети.