Привет, Хабр! Меня зовут Миша Паутов, я аспирант Сколтеха и научный сотрудник группы Доверенные и безопасные интеллектуальные системы Института AIRI. Совсем недавно мы вместе с коллегами предложили новый метод создания цифровых водяных знаков для нейронных сетей. Такие объекты, по‑другому называемые ватермарками, можно использовать для определения того, что вашу нейросеть кто‑то скопировал и выдаёт за свою. Здесь я расскажу, в чем состоит идея предложенного метода, а более детально о нем можно почитать в препринте статьи, принятой на международную конференцию IJCAI.
Как украсть нейросеть?
Сама формулировка этого вопроса сейчас звучит необычно, но, видимо, в будущем нам придётся к ней привыкнуть. Воровство нейросетей — это, по сути, нарушение прав интеллектуальной собственности в области искусственного интеллекта. Одна из основных причин кражи — ликвидировать отставание от конкурентов либо получить преимущество в данной области.
Кража нейросетей может позволить злоумышленникам обойти длительные процессы исследований и разработок архитектуры, обучения, тестирования и тому подобного. Также кража может дать доступ к конфиденциальной информации, например, в случае банковских, биометрических или других чувствительных данных, обрабатываемых нейросетями.
Все способы кражи моделей можно расположить на шкале, по которой отложено количество известной злоумышленнику информации о модели: архитектура, обучающие данные, гиперпараметры и так далее.
Слева можно расположить ситуацию, когда злоумышленник обладает полной копией модели. Чтобы такое произошло, нейросеть должна физически утечь с серверов своих создателей. Для этого можно организовать хакерсткую атаку на инфрастркутуру, а также использовать социальную инженерию. Наконец, бывает и чисто человеческий фактор — именно так недавно утекла Mistral 7B
Другой край шкалы — ситуация «чёрного ящика», когда у пользователя (и, соответственно, злоумышленника) нет никакой информации об устройстве нейросети. Взаимодействие с такой моделью построено следующим образом: пользователь отправляет запросы и получает ответы (предсказания) нейронной сети, в общем случае не зная ни архитектуру модели, ни данные, на которых та обучалась. Примером такой модели является ChatGPT.
Всё, что посередине, можно обозвать моделями типа «серый ящик».
Понятно, что атаки в разных точках нашей шкалы будут принципиально отличаться. Можно предположить, что владелец нейросети способен защитить свои сервера, а также обучить своих сотрудников правилам безопасности, исключив возможность утечки «белого ящика». Однако крайне сложно защититься от кражи модели «чёрного ящика», особенно если к ней предоставлен массовый доступ. Метод создания цифровых водяных знаков, который мы придумали, заточен как раз под такие атаки, хотя может использоваться и в других сценариях.
Предложенный подход основан на создании так называемого триггерного множества — набора входных данных, объектам которого нейронная сеть ставит в соответствие специфические (часто заранее определенные) предсказания: например, для классификационной нейронной сети это может быть набор картинок котиков, определяющихся нейронной сетью как собаки.
Стоит сказать, что цель создания водяных знаков для нейронной сети — определить, что она была незаконно получена или, по‑простому, украдена злоумышленником. Каким же образом злоумышленник может украсть нейронную сеть, не имея к ней почти никакого доступа? Давайте разбираться!
Кража функциональности нейронной сети
Атака, направленная на кражу функциональности нейронной сети — это способ получить модель, которая решает исходную задачу так же хорошо, как и исходная модель, при этом не имея информации об архитектуре, тренировочной выборке или процедуре обучения исходной нейронной сети.
Одним из самых эффективных способов кражи нейронной сети‑черного ящика является дистилляция. Прибегая к этому способу, злоумышленник подготавливает суррогатный набор данных
в котором входным объектам в качестве истинных меток ставятся в соответствие предсказания дистиллируемой нейронной сети. Затем злоумышленник обучает отдельную, суррогатную нейронную сеть, минимизируя ошибку на датасете D̅.
Важным свойством дистилляции является то, что полученная модель, хоть и решает исходную задачу так же хорошо, как и дистиллируемая, не обязательно наследует предсказания последней на триггерном множестве. В нашей работе мы нашли элегантный способ улучшить переносимость поведения на триггерном множестве на краденные модели.
Несмотря на то, что дистилляция — наиболее распространенный и эффективный способ кражи моделей, в работе мы также исследовали эффективность наших водяных знаков к таким преобразованиями нейросети, как дообучение и прунинг. Хоть и нельзя сказать, что они являются способами кражи моделей, их применения тоже может привести к удалению водяных знаков.
Водяные знаки, устойчивые к атакам, направленным на кражу функциональности
Учитывая, что злоумышленник волен выбирать сценарий кражи модели, архитектуру суррогатной модели и суррогатный датасет, мы воспринимаем кражу как случайный процесс, который ставит в соответствие исходной модели f некоторую модель из множества B потенциально украденных моделей. Это множество может быть параметризовано: например, в него могут быть включены все модели из определенного списка архитектур, производительность которых в исходной задаче отличается от производительности модели f не более, чем на τ — некоторый заранее заданный порог производительности. В нашей работе мы рассматриваем множество сценариев атаки на кражу функциональности нейронной сети — предполагается, что потенциальному злоумышленнику может быть известна как архитектура исходной сети, так и ее обучающая выборка.
Предложенный метод состоит из двух этапов: на первом этапе мы ищем в пространстве входных данных Х объекты‑кандидаты на включение в триггерное множество, а на втором — убеждаемся в том, что поведение исходной сети на этих кандидатах хорошо переносится на модели из множества B.
Оговорюсь, что речь о пойдет о задаче классификации: нейросеть f ставит в соответствие входным объектам метки классов.
Поиск точек-кандидатов
Поиск точек‑кандидатов основан на известном подходе mixup: для пары объектов x1 (класса y1 ), x2 (класса y2 ) ∈ X мы строим выпуклую комбинацию
где λ ~ U(0,1). Такая точка рассматривается как кандидат на включение в триггерное множество только если исходная модель не относит ее ни к классу y1 ни к классу y2.
Верификация точек-кандидатов
Для того, чтобы убедиться в переносимости предсказания нейросети на точке‑кандидате x мы применили трюк: случайным образом выбрали набор моделей f1, f2,…, fm из множества B и проверили, присваивают ли они объекту x такой же класс, что и исходная модель f. Иными словами, объект считается достойным кандидатом на включение в триггерный набор, если выполнено равенство
Случайное сэмплирование модели можно делать, например, путем сэмплирования случайного вектора весов для фиксированной архитектуры.
Внимательный читатель может отметить: если водяные знаки играют роль индикатора кражи нейронной сети, то поведение независимых моделей на них не должно совпадать с поведением исходной сети. Как этого достичь?
Аналогично, мы случайным образом выбираем набор моделей g1, g 2,…, gm ∈ B̅ — дополнения множества B, соответствующего не ворованным моделям — и проверяем, что выполняется следующая система неравенств:
Таким образом, точки, прошедшие такую процедуру верификации (случайные модели f1,…, fm ∈ B ведут себя на них так же, как f, а случайные модели g1,…, gm ∈ B̅ — нет) включаются в триггерный набор.
Результаты работы метода
Для того, чтобы оценить, насколько хорошо работает метод нанесения водяных знаков, мы провели несколько экспериментов.
Сначала для данной модели f и набора ее тренировочных данных D мы подготовили набор триггерных данных D*. Затем, применяя дистилляцию модели, мы получили несколько ее суррогатных копий и проверили, как предсказания исходной модели на триггерном множестве переносится на эти триггерные модели‑копии.
В таблице в строчках 1 и 3 представлена точности исходной модели и суррогатных моделей на тренировочной выборке D Интуитивно, чем выше точность суррогатной модели на D тем успешнее атака на кражу функциональности. Строчки 2 и 4 же иллюстрируют то, насколько успешно поведение на триггерном множестве D* переносится на суррогатные модели: чем выше доля совпадения предсказаний, тем точнее метод определяет факт копирования нейронной сети. С помощью этой таблицы можно убедиться, что наш метод (выделен жирным) в большинстве случаев бьет все SOTA.
Стоит отметить, что проведенный эксперимент соответствует сценарию, когда злоумышленнику известна архитектура нейронной сети и обучающие данные. Естественно проверить, как предложенный метод работает в условия, когда архитектура или обучающая выборка неизвестна злоумышленнику, проводящему атаку на кражу функциональности.
Для фиксированной архитектуры исходной модели f мы провели соответствующий эксперимент: предположили, что архитектура суррогатной модели f* не совпадает с ней (иными словами, что архитектура модели f неизвестна злоумышленнику), а также что суррогатная модель обучена на своем датасете D̅ независимом от тренировочной выборки D модели f.
В таблице ниже мы сравнили результаты с предыдущим state‑of‑the‑art методом. Можно увидеть, что это уже не state‑of‑the art 😈
Устойчивость водяных знаков к прунингу и дообучению
Помимо дистилляции, в нашей работе мы рассмотрели прунинг и дообучение как преобразования, которые могут привести к деградации поведения нейронной сети на водяных знаках.
Для прунинга мы показали, что поведение модели на водяных знаках деградирует вместе с точностью решения исходной задачи: иными словами, если водяные знаки перестают хорошо работать в качестве индикатора кражи, это не страшно — полученная модель сама по себе уже работает плохо.
Дообучение же хоть и приводит к некоторой деградации поведения модели на водяных знаках, не существенно снижает эффективность последних как индикатора «цифровой подписи» модели.
Заключение
Атаки, направленные на кражу функциональности — вид правонарушений, с которым индустрия и право сегодня сталкиваются нечасто. Возможно, дело в том, что задача копирования больших, боевых моделей по сложности сопоставима с их обучением с нуля и, как следствие, не под силу большей части сообщества.
Увидим ли мы в ближайшем будущем рост числа случаев кражи моделей и связанных с этим судебных разбирательств? Сложно дать какой‑то прогноз. Но если это и произойдет, методы защиты приватности моделей, в том числе подобные описанному здесь, могут облегчить выявление подобных случаев и сохранить репутацию столкнувшихся с этим разработчиков.