Copilot от GitHub — угроза свободному ПО или великий уравнитель?
Стоит ли переносить авторские права на код, который генерирует Copilot от GitHub — новый нейросетевой помощник разработчика. Что выгоднее для отрасли?
Meery Mary для Skillbox Media
Мэтью Гаррет
(Matthew Garrett)
об авторе
Активист свободного ПО, разработчик систем управления электропитанием, прошивок для Linux и мобильных устройств. Разработчик систем безопасности в Aurora Innovation Inc. Бывший биолог.
GitHub недавно представил Copilot («второй пилот». — Пер.) — систему машинного обучения, которая помогает писать программы, дополняет код разработчиков с учётом контекста и даже стиля написания.
Copilot обучается на всём общедоступном коде с GitHub, и в этом наборе данных много свободного программного обеспечения (free software). Однако представители GitHub утверждают, что результат работы сервиса принадлежит его пользователям. При этом в GitHub не скрывают, что порой Copilot целиком воспроизводит фрагменты кода из обучающего набора. И прежние лицензии при этом игнорируются.
Неудивительно, что у многих пользователей возникают вопросы, например:
«Если Copilot добавил в мой код фрагменты другой программы, которая защищена универсальной общественной лицензией (GPL), распространяется ли теперь эта лицензия и на мой код?»
Очень правильные вопросы — но за всем этим стоит более серьёзная проблема. Даже в коде с разрешительной лицензией вроде BSD требуется сохранять дисклеймер — уведомление об авторских правах и отказе от ответственности. Не сделать этого — значит так же нарушить авторские права, как и позаимствовать GPL-код без соблюдения условий лицензии.
Принцип простой: если ваш код — вторичное произведение, которое содержит код лицензированной программы, то вы обязаны соблюдать условия лицензии.
Но похоже, GitHub полностью уверен, что по законам США об авторском праве результаты работы Copilot — это вовсе не производные произведения. Только в этом случае лицензии программ, на которых сервис обучается, неприменимы к результатам его работы.
Это атака на свободное ПО?
Некоторые считают, что так и есть. Copilot предлагает разработчикам код, который практически один в один повторяет код, защищённый GPL. При этом создатели утверждают, что лицензионных обязательств возникать не должно.
Фактически механизмы Copilot позволят отмывать GPL-код в проприетарном ПО.
Я не берусь судить, обоснованно ли действует GitHub, потому что не силён в праве, — да и прямо сейчас мне неинтересно это выяснять. Меня больше волнует, что будет со свободным ПО, если GitHub прав и если он ошибается.
Что лучше для будущего?
Какое прекрасное далёко для нас выгоднее:
- где результаты работы Copilot и аналогичных проектов будут считать производными произведениями;
- или где творчество Copilot не будет ограничено лицензиями программ, на которых он обучался.
Когда ты активист свободного ПО и много делаешь для соблюдения GPL, легко принять Copilot в штыки — увидеть в нём угрозу универсальной общественной лицензии, инструмент ослабления свободного ПО. Сперва я воспринял новинку именно так, но за последние дни моё мнение поменялось.
Заглянем в манифест GNU:
Права на интеллектуальную собственность — всего лишь одна из общественных договорённостей. Разрешения и запреты люди одобряют, потому что верят — общество в целом от этого только выиграет. Но мир не стоит на месте. Поэтому надо постоянно спрашивать себя: а действительно ли мы выигрываем, перенося традиционные условия на нечто новое, на то, чего раньше просто не было.
Например, программы — это не бумажные книги, а их распространение не похоже на книгопечатание. Программу легко скопировать у соседа. У программы есть исходники и исполняемый машинный код, которые отличаются друг от друга. Программой не наслаждаются, не зачитываются ею — программу просто используют.
То есть каждый, кто требует соблюдения авторских прав в области ПО, вредит всему обществу — и материально, и морально. Никому не следует этого делать, независимо от того, на его ли стороне закон.
GPL использует закон об авторском праве, гарантируя, что никто не ограничит доступ к лицензированному коду. Каждый, кто использует такой код, должен распространять свою программу на тех же условиях.
Если бы авторское право не распространялось на программное обеспечение, GPL была бы не нужна — и Столлман был бы счастлив!
GPL появилась не от хорошей жизни, это вынужденное решение: авторское право делает возможным существование проприетарного ПО — и этому нужен противовес. Без GPL код из свободного ПО запросто можно было бы переносить в проприетарные проекты. А после этого его уже нельзя использовать совместно.
GPL применяет правовые инструменты, которые гарантируют, что код можно будет использовать совместно. Но те же инструменты помогают создателям проприетарного ПО ограничивать доступ к своему коду. Они пытаются запретить нам изучать исходники — чтобы мы просто-напросто не поняли, как их код работает. И они утверждают, что любой, кто это делает, поступает недобросовестно — мол, вносить такой код в свободное ПО нельзя, потому что результат будет считаться производным от их произведения.
В общем, чем шире трактовать понятие «производного произведения», тем выгоднее это авторам проприетарного ПО. Например, если бы суд принял аргумент Oracle о том, что API должен охраняться авторским правом, это стало бы катастрофой для свободного ПО.
Примечание переводчика
Речь идёт о деле Oracle против Google. Суть спора: в API Android есть фрагменты, которые очень напоминают части API Java, и представители Oracle сочли это нарушением авторских прав.
Процесс длился больше десяти лет. В итоге Верховный суд США принял сторону Google. Читайте хронику и подробный разбор.
Если бы в споре Apple против Microsoft суд решил, что Microsoft нарушила авторские права, мы могли бы сегодня жить без свободного ПО для настольных ПК.
Примечание переводчика
В 1988 году Apple подала иск против Microsoft. Яблочники обвинили разработчиков Windows 2.0 — мол, они сплагиатили элементы графического интерфейса, которые до этого применялись только в macOS.
Причём Apple перечислила среди «украденного» вообще все визуальные новшества, которые в принципе можно было описать, — в том числе и само наличие окон.
Разборки длились шесть лет. Это был первый крупный судебный процесс, в котором Apple проиграла.
Когда мы поворачиваем закон об авторском праве так, чтобы он лучше отстаивал интересы GPL, мы одновременно усиливаем власть корпораций с их огромным штатом юристов. Так что посмотрим на ситуацию с другой стороны.
И нашим и вашим?
Если в GitHub верно понимают закон об авторском праве, значит, систему можно обучать не только на свободном ПО, но и на проприетарном — и генерировать новый код, не боясь обвинений в плагиате. Пусть сам проприетарный код не станет достоянием общественности, но вот идеи и подходы из него — станут. Больше не придётся беспокоиться о том, насколько схожи ваш и чужой алгоритмы, — просто начните кодить и позвольте Copilot взять все риски на себя.
С другой стороны, неизвестно, сколько GPL-кода попадёт в проприетарные проекты и сколько проприетарного кода станет свободным. Обнадёживает, что основная часть кода на GitHub публикуется не под свободными лицензиями и у Copilot точно есть к нему доступ.
Какая из сторон получит больше? Я не знаю, как это оценить. Зато знаю другое: движение за свободное ПО основано на убеждении, что авторское право не должно ограничивать развитие и распространение софта. А в случае с Copilot позиции авторского права, очевидно, расшатываются.
* * *
Подобные моим аргументы приводит Юлия Реда. Но она сосредоточилась на юридической стороне вопроса и рассказала, почему абсурдно переносить лицензии с обучающих данных на выдачу Copilot.