Как стать автором
Поиск
Написать публикацию
Обновить

Разработчики критикуют GitHub Copilot: ИИ генерирует цитаты из проектов с открытым исходным кодом и выдает ключи API

Время на прочтение2 мин
Количество просмотров18K
Всего голосов 6: ↑5 и ↓1+8
Комментарии35

Комментарии 35

классная штука, не понимаю тех, кто выступает против — в этом же вся суть опенсорса — шарить свое решение проблемы со всеми.
Если так не хочется, то репозиторий можно сделать приватным и приглашать туда только тех, кому хотите показать свой код.
«Опенсорс» не равно «свободное ПО». И не всегда он направлен на то, чтобы «шарить решение». Например, разработчик может опубликовать исходники, чтобы параноидально настроенные пользователи могли убедиться в отсутствии закладок и самостоятельно собирать себе ПО. Но это не означает, что разработчик согласился позволить другим создавать производные произведения.

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


Если человек сам мог вполне написать такой же код, как и вы, но случайно увидел ваш код, он больше не имеет права его написать, даже если код — объективно лучший для решения какой-то проблемы? А если он переименует переменные и поменяет пару несущественных деталей, то уже имеет? А Github Copilot имеет права применять тот же трюк, добавляя какие-то эквивалентные преобразования к своему выводу?


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

А чем отличается сделанное Copilot от того, чтобы человек пришёл в существующий репозиторий и нажал Ctrl-C?

А если в буфере обмена флипнется один бит и при вставке название переменной изменится, то это уже будет производная работа или ещё нет?

Я считаю, что вся сфера лицензирования ПО и сопутствующий понятийный аппарат, вроде "производной работы" — это клубок из плохих абстракций. Это все должно быть упразднено.

Ну допустим, что плохих. Есть предложения лучше? Причём не "всё взять и поделить" а что-то, что устроит всех участников процесса

А чем отличается сделанное Copilot от того, чтобы человек пришёл в существующий репозиторий и нажал Ctrl-C?

Тем, что машины не могут нарушать законы. Это только для людей. Поэтому возникает интересный казус. Это как «украл у одного — это плагиат, украл у многих — провёл мета-исследование». Нет какой-то чёткой линии.

Правильно! Засудят не машинку а конечного пользователя что скопипастил через нее код ибо машинка инструмент а не субъект права, вот когда машинка будет разумна, тогда тоже будет субъектом и ее можно будет наказывать, например садить на электрический стул (условно)

Ну так у Copilot есть пользователь. Т.е. нарушает лицензию он получается?

Тут как и у машины с автопилотом - в случае аварии кто-то в ней окажется виноват. И это будет либо пользователь либо производитель. Т.е. можно ещё попробовать доказать, что лицензию нарушает сам MS, ибо берёт код, не учитывая лицензию

Т.е. можно ещё попробовать доказать, что лицензию нарушает сам MS, ибо берёт код, не учитывая лицензию

Так вот в том и дело, что скорее всего нет.


Насколько я помню то, что читал в интернетах, если AI берёт какой-то код и смотрит на него, то это fair use и исходная лицензия на результат не перетекает. Сгенерированный код — это произведение того, кто использовал AI (то есть Microsoft, потому что на их серверах крутится), и вы используете результат на условиях Microsoft.


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


Выдержит ли это проверку в суде — вопрос другой. Я не юрист.

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

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

Какая там аргументация? Человек просто напоминает, что лицензия на код вовсе не обязана давать вам право его копировать или перерабатывать. Смотреть и восхищаться — сколько угодно. Копировать, дорабатывать, и перелицензировать другим — нет.


Если человек сам мог вполне написать такой же код, как и вы, но случайно увидел ваш код, он больше не имеет права его написать, даже если код — объективно лучший для решения какой-то проблемы?

Не юридический прецедент, но есть случаи, когда вам не дадут работать над кодовой базой, если вы имели доступ к другой кодовой базе, покрытой патентами. Классический пример: Wine не принимает патчей, если вы когда-либо работали над Windows.


Повторюсь, это не юридический прецедент или правило, а просто практика «кабы чего не вышло». Какие только ритуалы не придумаешь, чтобы прикрыть попку от патентного преследования.


А Github Copilot имеет права применять тот же трюк, добавляя какие-то эквивалентные преобразования к своему выводу?

IIRC, судебная практика теж же США считает, что машинная обработка произведений — fair use, а копирайт на результат получает тот, кто пользуется инструментом.


Отсюда и куча интересных вопросов.

Честно говоря, те кто коммитил свои приватные API-ключи в публичную репу - ССЗБ. Любой другой скраппер мог найти эти данные, при большом желании. Неужели все забыли главный закон интернета - "всё что попадает в интернет - остаётся в нём навечно"? То что конкретно этот AI подтянул эти данные - не означает что именно он плохой (даже скорее наоборот, видимо контекст понимает, и пытается помочь =) ), а то что это мог сделать любой другой механизм.

НЛО прилетело и опубликовало эту надпись здесь

Кстати, однажды случайно закоммитил ключ к API Discord-бота и запушил на гитхаб (забыл добавить .env в .gitignore). Ещё даже не успел этого заметить, как пришло сообщение от Discord, что ключ деактивирован. Интересно, они сканируют все репозитории на наличие ключей?

На Гитхабе есть несколько ботов которые сканируют все коммиты и уведомляют о ключах на почту.

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

Короткие - это сколько? 10 строчек короткий код, а 11 уже нет?

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

ок, почему то показалось что проблема у вас моральная, а не юридическая.

Это, к слову, обычный modInverse (первые два) и (2^32 / 10) + 1 (третий, потому что 10 нельзя обратить по модулю 2^32, как в первых двух). Так всю алгебру конечных полей закопирайтить можно.

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

А тут на мой взгляд никак, кроме суда не решить эту проблему. Я гарантирую 100%, если мне не будет лень, если я буду в силах, то пройдясь по исходникакм GNU/Linux и *BSD систем я найду полное совпадение более чем на 100 строк.


Это не говоря про всякие микроконтроллёры, где инициализация устройства или драйвер полностью состоит из определенного порядка записией/чтения регистров.


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

Насчёт кода очень интересный прецедент "отмывания" кода от лицензии. Как это должно обрабатывать патентное право, потому что явно дух закона нарушается?

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

Патентное право и закон были написаны в старой технологической реальности. Github Copilot — это еще цветочки. Ягодки пойдут, когда появятся полностью автоматические роботы-программисты.


Авторство кода размывается, он превращается в commodity. Когда вы пользуетесь IDE, статическими анализаторами, и т. д., почему вы не записываете их авторов в свои соавторы? В будущем, идея лицензирования кода (или модели ИИ) будет восприниматься так же, как идея лицензирования математического выражения, например полинома.


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

автоматические роботы-программисты.

это же тавтология. А по существу — пророчат это уже давно. Нейросеть не из воздуха придумывает решения. Так что без самих программистов всё равно никуда будет. 1С тоже делали, чтоб бухгалтера могли обходиться без программистов)).
Когда вы пользуетесь IDE, статическими анализаторами

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

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

Вне капиталистической системы

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

Всегда есть причины.
Есть только причины скрывать код — для защиты от хакеров

А вот это уже морально устарело. Да и в целом было сомнительным всегда. Защита не должна строиться вокруг того, что нельзя посмотреть исходник. Тогда и бинарники нельзя уже распространять. Так как если кто то заинтересовался, то это будут реверсить.
А калькуляторы надо записывать? А осцилограф? а кучу другого инструмента? Всё перечисленное вами именно инструменты.

Эти инструменты кто-то сделал и поддерживает, вкладывает свой труд. Давайте возьмем статический анализатор как самый близкий к Github Copilot пример. Автор статического анализатора нашел паттерн ошибки (возможно, смотря на какой-то проприетарный код) и добавил автоматический fixup. Вы им воспользовались, статический анализатор автоматически поправил ваш код (может быть, даже бот на Гитхабе это сделал сам). Почему вы не лицензируете ваш код теперь на автора статического анализатора? Вы, конечно, можете сказать: я заплатил за анализатор (или он бесплатен), с меня взятки гладки. Но в чем тогда принципиальное отличие от того, что делает Github Copilot? Я вижу только континуальное отличие, то есть Github Copilot делает чуть больше чего-то, что другие инструменты уже делают (а передача информации из одних реп в другие идет через мозг автора статического анализатора, а не через обучение Github Copilot), но принципиальных отличий не вижу. Передача информации через мозг "отмывает" ее от лицензионных ограничений так, как ML обучение не отмывает?


Именно поэтому я и говорю, что вся система лицензирования ПО — кривой сарай, который сейчас разваливается под прессом новой технологической реальности.


Всё перечисленное вами именно инструменты.

Ну и кстати, особая жара начнется, когда эти "инструменты" пройдут тест Тьюринга и будут утверждать, что они в сознании :)

Фактически он занимается «отмыванием» GPL от кода, который теперь можно использовать, не подчиняясь первоначальной лицензии, так как новый код получается под лицензией Copyleft.

Можете дать ссылку на правила лицензирования кода, генерируемого Copilot?

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

Заголовок спойлера

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

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

отдавая решение этих вопросов на откуп разработчику

Значит это убожество copilot нигде не должно использоваться. И в заблуждение вводит github.


Этот вопрос уже давно решён. Картинки, звуки, голоса, тексты — все собирают отдельные открытые датасеты для обучения. Либо как соцсетки/гуглы указывают в соглашении.


Никто и никогда не подписывался над передачей авторских и прочих прав гитхабу, это ещё не говоря, что там куча левых форков и зеркал различных проектов.


Это полный фейл разработчиков, и надо что-то решать, а не тупить. Например, пусть обучают его на коде Windows.

Microsoft в своем амплуа -- просунуть ногу в приоткрытую дверь, а со временем и целиком пролезть.

0.1% точных цитат он генерирует, 0.01% -- не важно. Даже одно единственное нарушение лицензии -- это нарушение закона. Точка.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости