GitHub увёў у строй сістэму машыннага навучання Copilot, якая генеруе код

GitHub абвясціў аб завяршэнні тэставання інтэлектуальнага памагатага GitHub Copilot, здольнага генераваць тыпавыя канструкцыі пры напісанні кода. Сістэма распрацавана сумесна з праектам OpenAI і выкарыстоўвае платформу машыннага навучання OpenAI Codex, натрэніраваную на вялікім масіве зыходных тэкстаў, размешчаных у публічных рэпазітарах GitHub. Сэрвіс бясплатны для суправаджаючых папулярных адкрытых праектаў і студэнтаў. Для астатніх катэгорый карыстальнікаў доступ да GitHub Copilot платны ($10 у месяц ці $100 у год), але прадастаўляецца бясплатны азнаямленчы доступ да працягу 60 дзён.

Падтрымліваецца генерацыя кода на мовах праграмавання Python, JavaScript, TypeScript, Ruby, Go, C# і C++ з выкарыстаннем розных фрэймворкаў. Даступныя модулі для інтэграцыі GitHub Copilot з асяроддзямі распрацоўкі Neovim, JetBrains IDEs, Visual Studio і Visual Studio Code. Мяркуючы па сабранай у працэсе тэсціравання тэлеметрыі сэрвіс дазваляе генераваць код дастаткова высокай якасці – напрыклад, 26% прапанаваных у GitHub Copilot рэкамендацый былі прыняты распрацоўшчыкамі як ёсць.

Ад традыцыйных сістэм аўтадапаўнення кода GitHub Copilot адрозніваецца магчымасцю фарміравання дастаткова складаных блокаў кода, аж да гатовых функцый, сінтэзаваных з улікам бягучага кантэксту. GitHub Copilot адаптуецца да манеры напісання кода распрацоўшчыкам і ўлічвае выкарыстоўваныя ў праграме API і фрэймворкі. Напрыклад, пры наяўнасці ў каментары прыкладу структуры JSON пры пачатку напісання функцыі для разбору гэтай структуры GitHub Copilot прапануе ўжо гатовы код, а пры напісанні руцінных пералічэнняў паўтаральных апісанняў сфармуе пакінутыя пазіцыі.

GitHub увёў у строй сістэму машыннага навучання Copilot, якая генеруе код

Здольнасць GitHub Copilot генераваць гатовыя блокі кода прывяло да спрэчак, звязаных з патэнцыйным парушэннем капілефт ліцэнзій. Пры фармаванні мадэлі машыннага навучання скарыстаны рэальныя зыходныя тэксты з рэпазітараў адкрытых праектаў, размешчаныя на GitHub. Многія з гэтых праектаў пастаўляюцца пад капілефт ліцэнзіямі, такімі як GPL, якія патрабуюць пастаўкі пад сумяшчальнай ліцэнзіяй кода вытворных работ. У выпадку ўстаўкі прапанаванага Copilot існуючага кода распрацоўшчыкі могуць мімаволі парушыць ліцэнзію на праект, з якога быў запазычаны дадзены код.

Ці можа лічыцца вытворнай праца, згенераваная сістэмай машыннага навучання, пакуль не зразумела. Таксама ўзнікаюць пытанні да таго ці з'яўляецца мадэль машыннага навучання аб'ектам аўтарскіх правоў і калі так, то каму належаць гэтыя правы і як яны суадносяцца з правамі на код, на аснове якога пабудавана мадэль.

З аднаго боку згенераваныя блокі могуць паўтараць урыўкі тэксту з існых праектаў, але з іншага боку сістэма ўзнаўляе структуру кода, а не капіюе сам код. У адпаведнасці з праведзеным у GitHub даследаваннем толькі ў 1% выпадкаў прапанаваная Copilot рэкамендацыя можа ўключаць урыўкі кода існуючых праектаў, памерам больш за 150 сімвалаў. У большасці сітуацый паўторы ўзнікаюць калі Copilot не можа карэктна вызначыць кантэкст ці прапануе тыпавыя рашэнні праблемы.

Для прадухілення падстаноўкі існуючага кода ў Copilot дададзены спецыяльны фільтр, які не дапускае перасячэння з існуючымі праектамі. Пры наладзе распрацоўнік можа на сваё меркаванне актываваць ці адключыць дадзены фільтр. З іншых праблем адзначаецца верагоднасць, што сінтэзаваны код можа паўтарыць памылкі і ўразлівасці, якія прысутнічаюць у кодзе, выкарыстаным пры навучанні мадэлі.

Крыніца: opennet.ru

Дадаць каментар