
Принцип работы нейросетевого помощника программиста GitHub Copilot.
7 июля 2021 года GitHub признался, что при обучении помощника программиста Copilot разработчики использовали весь доступный в репозиториях сервиса публичный код без учёта типа лицензии.

Ответ техподдержки GitHub на вопрос пользователя про Copilot, код и лицензию GPL — «да, разработчики использовали весь общедоступный код GitHub для Copilot независимо от лицензии».
Фактически программные наработки, полученные с помощью «второго пилота» можно использовать как угодно без ограничений, не подчиняясь первоначальной лицензии, например, GPL, так как новый код получается под лицензией Copyleft.
Сторонние разработчики и пользователи в комментариях к этой публикации в Twitter возмущены такими действиями Microsoft и GitHub и обвинили компании в неуважении прав на код частных лиц и небольших общественных проектов. «Соблюдение авторских прав только для плебей и пролов, богатые люди и крупные компании могут делать все, что хотят», — пояснила разработчик Нора Тиндалл. Она рассказала, что обратилась по этому вопросу к юристам Фонда свободного программного обеспечения (FSF) и Фонда электронных рубежей (EFF) и ищет единомышленников для подачи коллективного иска, так как в одиночку Microsoft и GitHub противостоять не имеет смысла. С другой стороны сейчас нет такого закона, где ИИ запрещалось бы нарушать авторские права.
Позиция GitHub по этому вопросу: «обучение моделей машинного обучения на общедоступных данных считается добросовестным использованием в сообществе разработчиков ИИ».
В июля разработчики стали жаловаться, что Copilot вместо нескольких строк нужного кода генерирует десятки строк с цитатами и комментариями из проектов с открытым исходным кодом. GitHub уточнила, что Copilot обычно не воспроизводит точные фрагменты кода, а создает производные работы из ранее полученных входных данных. Компания привела статистику, что это происходит лишь в 0,1% случаев.
29 июня Microsoft и GitHub представили нейросетевого помощника программиста Copilot, работающего на базе OpenAI Codex. Решение OpenAI Codex генерирует код значительно более эффективно, чем GPT-3. Алгоритм обучали на датасете из терабайтов общедоступного кода. Copilot вышел в виде плагина редактора Microsoft Visual Studio Code и функции браузерного редактора кода GitHub Codespaces после регистрации в программе тестирования техноческого превью сервиса.
AllexIn
С одной стороны способ отмыть лицензию.
С другой - я как человек могу смотреть GPL код и потом писать не GPL код и однозначно влияние просмотренного кода тоже будет. Почему мне можно использовать GPL код для обучения, а ИИ - нет? Я не запоминаю код до буквы, а ИИ - запоминает? В этом отличие?
vtb_k
Потому что там идет фактически копипаста вместе с комментариями, без указания автора, в некоторых случаях
novoselov
Допустим мы убрали комментарии, теперь можно?
А если этот код по другому не напишешь: слишком маленький размер кода, слишком просто, код основан на анализе и улучшении другого кода и т.д.
При этом взять открытый код и закрыть его под GPL можно, а наоборот нельзя?
Вдруг где-то есть тот же код без лицензии? А если найду? Какие ваши доказательства?
vtb_k
Это не ко мне, это вы в суде будете доказывать, я вам лично могу разрешить копировать любой код)
keydon2
И?
Я совершенно не понимаю почему многие сторонники опенсурса так топят за лицензии. Лично я рассматриваю лицензии как компромисс, как промежуточный этап, чтобы людям было легче перейти от тотальной копирастии (которая была еще буквально лет 30 назад) к возможности всемирно переиспользовать код (или если угодно говорить в терминах копирастии
к полной анархии). Ведь в этом и смысл опенсурса что вы можете переиспользовать чужой код. Но вместо того чтобы писать новый коди делать мир лучшеи улучшать старый одни из лучших программистов по всему миру заняты обсуждением отличий лицензий друг от друга, созданием новых и выяснением в каких случаях что разрешено.Просто укажу моменты, которые показывают насколько нелогичны и нелепы современные представления об авторстве на код и его лицензиях:
Считается что код принадлежит человеку который написал его. Почему? Знаю, для многих людей это само собой разумеющееся как то что трава зеленая и они даже физически не способны задуматься над этим вопросом, но я буду честен сам с собой и заявлю что это дырявая абстракция перенесенная из физического мира. Логики в этом утверждении не больше чем то что Марс населен людьми, ведь Земля планета и населена людьми, а марс тоже планета, значит тоже населена людьми.
А если код написал не один человек? Ну это просто, скажите вы, закон говорит что… Но я не знаю кто писал этот закон и я с ним не соглашался и вы скорее всего тоже. Законы должны отражать некую потребность (решение некой проблемы, для которой пишут законы) и я совершенно не уверен, что этот закон решает проблемы разработчиков. Чтобы не превратить этот комментарий в книгу, я не буду рассказывать как пишутся законы, что они зачастую пишутся людьми которые не разбираются в законах и что часто они пролоббированы или просто скопированы из другой юрисдикции или внесли их временно, но что-то пошло не так и так далее. Просто остановимся на том факте что закон не решает моих проблем или решает их не лучшим образом и с вашими проблемами скорее всего тоже самое. Еще я отмечу что с того момента как мы приплели закон, мы отдали бразды правления юристам. С этого момента нет никаких разработчиков, никакого инженерного подхода, только бюрократия. Мне кажется это не то к чему стремятся разработчики, поэтому мне не понятно почему я должен топить за этот закон и почему за него должны топить другие разработчики (чьи проблемы он скорее всего тоже не решает).
Но перед тем как выяснить какие же проблемы решает закон, неплохо бы определить про какой конкретный закон мы говорим. Обычно в разговорах про лицензии подразумевают законы Америки. А в России (откуда я пишу) обычно подразумевают российские законы. А авторы лицензии могли бы жить например в Швейцарии. Ничего страшного скажите вы, законы действуют там где они действуют, если живешь в России, живи по российским законам. Но это тоже протекающая абстракция. Получается у каждого свой закон и у каждого закона разное отношение к разным лицензиям (и даже к их отсутствию). Почему же при разговоре о лицензиях обычно подразумеваются американские законы? Это же не логично. Кроме того это вы сейчас живете в стране X с законом Zx, а завтра вы можете переехать в страну Y с законом Zy, и не факт что по закону Zy ваш код не нарушает закон. А что если вы хотите использовать код человека из страны Y? Кроме того вы можете использовать чужой код если вас не поймают (как говорят и делала microsoft в windows), получается мы даем преимущество преступникам. А что если вы захотите разместить свой код на хостинге в стране Y (кажется страна Y при таком раскладе имеет преимущество перед другими странами)? А что если другой человек не скопировал код, а написал случайно такой же? Что вообще значит такой же код? Где проходит граница между копипастой и модификацией? А что если код написал не человек?
Что-то очень много вопросов, а мы еще даже до лицензий не дошли, не то что код начали писать и уж тем более не затронули более тонкие моменты.
Предвижу мнение «других решений нет, все так живут». Но другое решение есть и оно было изначально. Просто откажемся от придуманных ограничений. Природа устроена таким образом, что любой человек с доступом к коду может его использовать и на самом деле все живут именно так(как бы копирастам не хотелось иного). Так давайте не будем усложнять и остановимся на этом. Это решение решает все возникшие выше вопросы, оно логично, оно предоставляет равные условия тем кто его принял, оно не требует кормить орды бюрократов и тратить нервы и силы на судебные процессы и прочие формальности. Да, бизнес корпораций зарабатывающих на праве владения и патентным троллингом накроется, оракл больше не сможет отсудить 1 млрд за использование api, но мое мнение что обществу от этого станет лучше, это поддержит компании которые действительно делают что-то полезное, это поможет энтузиастам, это сделает разработку более доступной, а закрытый софт итак все больше сдает позиции.
vtb_k
Извините, но вы не по адресу, мне лицензии тоже не очень нравятся.
Можете начинать революцию и свергать толпы бюрократов, мне будет интересно, что из этого выйдет)
MuuNu
Не вижу в лицензия ничего плохого.
Например, я как разработчик, хочу чтобы мой код, который я пишу для сообщества, использовался только в таких же Open-Source проектах для сообщества.
И совершенно не хочу делиться им с крупными корпорациями, которые исходники закрывают (Ведь они со мной не делятся своим кодом, а я почему-то должен)
Я выбираю GPL.
А если мне всё равно, кто и при каких обстоятельствах сможет его использовать, то я могу выбрать MIT. Текущая система лицензий, имхо это лучшее, что можно было бы придумать, покрыв интересы всех.
Лучше, на мой скромный взгляд, только когда вообще всё ПО открытое (Тогда собственно и лицензии не нужны будут и вообще наступит коммунизм)
Tanner
Если вы не собираетесь буквально воспроизводить функциональность существующей программы под другой лицензией, то вы можете учиться на чём угодно. Но если стоит именно такая задача, то для этого обычно нанимают программистов, заведомо незнакомых ни с исходным кодом оригинала, ни со связанными с ним патентами (Clean room design).
Видимо, в данном случае проблема в том, что ИИ не может знать, в какой из этих двух ситуаций он используется, поэтому сгенерированный им код всегда имеет шанс быть «заразным».
RiseOfDeath
А где граница «буквального воспроизведения функциональности»?
Вот программа «А» имеет функциональность… ну, например, среди прочего, проверка входных данных — проверка переданой строки на предмет того, что она содержит только цифры. Разработчик посмотрел на исходники и сделал программу «Б», где тоже проверяет что программе на вход подается число в виде текста — как можно это воспроизвести не буквально?
Tanner
Я думаю, суд будет искать и сравнивать реализации этой же функциональности у третьих сторон. Вроде бы были такие прецеденты, когда доказывали банальности идей, продемонстрировав их реализации третьими сторонами. Но, чтобы дело дошло до суда, должен как-то появиться истец. Наверное, здесь и лежит граница — кто-то должен решить, что вы своей программой нарушаете его права.
TheRikipm
Таких людей в мире найдется полно даже в случае с валидацией входных данных, не переживайте.
Rrs
Как с музыкой, влияние есть а плагиат или нет решает конкретный судья.
В данном случае пока прецедентов нет, а то можеть быть весь код на выходе сочтут не лицензионно чистым, а наоборот. отягощенным кучей вирусных лицензий. Особенно если предлагаемый плагином код содержит оригинальные "wtf" комменты автора.
Так или иначе, как мне кажется, copilot выглядит интересно, поэтому стоит ждать аналогов на любой вкус, в том числе лицензионно чистых.
AllexIn
"Решает суд" - это очень херовая практика. Потому что если нет четкого критерия для определения нарушения закона - это мусор, а не закон.
То что ИИ утащил и комментарии - это просто недоработка, которая позволила "поймать за руку". Если бы этого бага не было - было бы гораздо сложнее понять что что-то не так.
Я не говорю что текущая ситуация нормальная. Я говорю что она не однозначная и понять как она должна решаться пока не ясно...