Стохастические попугаи и риски разработчика программного обеспечения

в 19:15, , рубрики: интеллектуальная собственность, кодогенерация, нейросети, разработка программного обеспечения, риски

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

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

У нас три источника проблем:

  • владелец генератора, который определяет условия использования своего генератора;

  • лица, на произведения которых может оказаться похожим наше нагенерированное произведение; и

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

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

Условия использования генераторов

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

Например, в пользовательском соглашении сервиса «Kandinsky» от февраля 2025 года написано, что исключительное право на сгенерированный контент принадлежит пользователю (п.5.7. Соглашения). Однако, в этом же соглашении прописана масса других условий, которые должны быть соблюдены (например, размещение на сгенерированных изображениях информации об использовании сервиса, п.5.4). Используя этот сервис, мы также заранее даем некоторые разрешения третьим лицам (например, владелец сервиса может бесплатно использовать сгенерированное пользователем изображение в своих рекламных материалах, п.5.2), то есть выдаем лицензию.

Условия использования сервиса «Шедеврум» от Яндекса предполагают только некоммерческое использование, а коммерческое должно быть согласовано с Яндексом (п.3.3 от 10 января 2025).

Условия соглашения могут со временем изменяться владельцем программы-генератора. На наше произведение будут распространяться условия, актуальные на дату его создания.

Если условия принадлежности прав у сервиса не прописаны явно, то согласно Гражданскому Кодексу Российской федерации (ст.1261) может быть сделан вывод, что права на сгенерированное произведение остаются у владельца генератора.

Резонный вопрос — сможет ли узнать владелец программы-генератора, что мы нарушаем пользовательское соглашение? То есть можно ли отследить, где было сгенерировано изображение? А текст?

Отслеживание использования

Включение «опознавательных сигналов» в любые произведения, полученные с помощью генератора, вполне вероятно. Для изображений это вообще представить довольно легко, но и для текстов «digital water marks» - обширная область исследования для разработчиков генераторов программного кода. То есть опознавание «своего» произведения владельцем генератора возможно (https://arxiv.org/abs/2305.15060).

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

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

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

И что после этого будет? В части нарушения исключительных прав на произведение пока приходится опираться на общую практику нарушения авторских прав (фотографов, студий мультипликации и т.п.): затребованная сумма может варьировать от 50 000 рублей до миллионов рублей, в зависимости от того, насколько богатым вы покажетесь истцу. Если вопрос встанет о нарушении пользовательского соглашения с владельцем генератора, то при наличии альтернативы (бесплатное использование, платная подписка) вам, возможно, могут предложить оплатить подписку.

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

"Параллельное творчество"

Нужно сказать, что в мире авторского права существует понятие «параллельного творчества», то есть признается, что два человека могут создать одинаковые произведения независимо друг от друга. Идея о таком параллельном «творчество» возникает и при использовании генераторов.

Возможность «параллельного творчества» может реализоваться, например, в области пейзажной фотографии (фотографии с одного ракурса). Нейросеть тоже иногда сравнивают с фотоаппаратом: фотограф выбрал ракурс, нажал кнопку, и получил результат; пользователь выбрал «промпт», нажал кнопку, получил результат. Наверно, дела такого рода, о «параллельном творчестве» при использовании генераторов будут упражнениями в красноречии сторон.

Однако, при написании кода возможно и истинное параллельное творчество. Прекрасный пример можно почерпнуть из лекции Кена Томпсона при получении премии Тюринга в 1984 году (Reflections on Trusting Trust» Ken Thompson ): «при безупречном сотрудничестве с Деннисом Ритчи нескоординированность работы случилась лишь один раз, когда мы оба написали две абсолютно одинаковых программы на ассемблере длиной 20 строк. Программы совпадали до единого символа».

Поэтому даже если мы творили самостоятельно, риск совпадений кода есть. С использованием генераторов этот риск повышается. Более того, он выходит за рамки понятия «параллельное творчество», и скорее превращается в риск непреднамеренного копирования.

Каков же этот риск?

Исследований про совпадение с уже нагенерированным мне не попадалось. А вот исследования «запоминания» нейросетью обучающих примеров ведутся активно.

В 2020 году, отвечая на вопросы патентного ведомства США, представитель Electronic Frontier Foundation сказал, что вероятность получения на выходе генератора какого‑либо конкретного произведения из всей совокупности обучающих данных минимальна («de minimis»).

Однако среди исследователей речь идет о том, что нейросеть «запоминает» как минимум 1% данных (https://arxiv.org/abs/2202.07 646). С помощью специально организованных атак из нейросетей извлекают фотографии людей (https://arxiv.org/abs/2301.13 188), а также тексты (https://arxiv.org/abs/2311.17 035), на которых проводилось обучение.

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

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

Нужно также иметь в виду, что приняв условия пользовательского соглашения с владельцем генератора, вы, скорее всего, дали ему разрешение на дальнейшее использование текста вашего запроса (промпта), включая выдачу разрешения на его использование другим лицам. Такие условия прямо прописаны в Kandinsky и Шедеврум. И вероятность для вашего промпта самому попасть в обучающий набор данных при последующей доработке генератора кажется весьма высокой: вспомните, как тщательно собирают и анализируют запросы пользователей обычные поисковики.

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

Работа на заказ

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

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

Такая неосознанная выдача лицензий может для вас означать выплату заказчику компенсации в размере двукратной суммы вознаграждения по договору. Так, одной команде, которая использовала в своей работе GitHub, пришлось выплатить заказчику 2,5 миллиона рублей, поскольку использование GitHub означает автоматическую выдачу ему лицензии, на что заказчик не давал разрешения. При этом факт использования GitHub разработчики разгласили в параллельном судебном процессе, не подозревая, чем им это грозит.

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

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

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

Есть еще несколько аспектов применения генераторов кода: открытые лицензии, персональные данные и уязвимости кода.

Открытый код, персональные данные и уязвимости

Использование текстов с GitHub при тренировке GitHub Copilot вызвало возмущение идеологов движения за свободное программное обеспечение. Оставив в стороне вопросы идеологии, можно указать две проблемы, связанные с тем, что открытый исходный код размещен на GitHub на условиях, указанных в лицензиях, текст которых размещенных там же. Часть кода на GitHub размещена под лицензиями, которые обязывают производные произведения размещать под такими же лицензиями, требующими, в том числе, раскрытия исходного кода производных произведений. Таким образом, если строго подходить к генератору программного кода, обученному на таком открытом коде, он сам становится произведением, связанным самыми жесткими ограничениями из всех допустимых в лицензиях. Более того, код, производимый таким генератором, тоже становится связанным именно такой лицензией, то есть, например, лицензией, требующей раскрытия кода. На эти резоны пока закрывают глаза, чтобы не подорвать экономику генераторов кода. Но они существуют.

Аналогичным образом, если при обучении нейросети были использованы персональные данные, она сама становится персональными данными (а возможность извлечения персональных данных из обученных нейросетей доказана). И мы все становимся операторами персональных данных. На это тоже пока закрывают глаза, чтобы не подрывать экономику обученных моделей.

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

И третий момент, который касается уже не правовых аспектов, но все же рисков применения генераторов кода — это уязвимости в нагенерированном коде. Исследователи считают, что применение генераторов приводит к более расслабленному отношению к коду и получению кода, подверженного атакам (https://arxiv.org/abs/2108.09293).

Таким образом

Можно ли определить, каким генератором создано изображение или текст: да, можно, если создатель генератора использовал технику простановки «водяных знаков».

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

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

Можно ли нарушить законодательство о персональных данных: нет, пока сам генератор не признан персональными данными.

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

Вот такие дела. Предупрежден, значит вооружен!

Автор: MelancholyElephants

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js