GitHub spustil systém strojového učení Copilot, který generuje kód

GitHub oznámil dokončení testování inteligentního asistenta GitHub Copilot, schopného generovat standardní konstrukce při psaní kódu. Systém byl vyvinut společně s projektem OpenAI a využívá platformu strojového učení OpenAI Codex, vyškolenou na velkém množství zdrojových kódů hostovaných ve veřejných repozitářích GitHub. Služba je zdarma pro správce oblíbených open source projektů a studenty. Pro ostatní kategorie uživatelů je přístup ke GitHub Copilot placený (10 $ měsíčně nebo 100 $ ročně), ale bezplatný zkušební přístup je poskytován na 60 dní.

Generování kódu je podporováno v programovacích jazycích Python, JavaScript, TypeScript, Ruby, Go, C# a C++ pomocí různých frameworků. K dispozici jsou moduly pro integraci GitHub Copilot s vývojovými prostředími Neovim, JetBrains IDE, Visual Studio a Visual Studio Code. Soudě podle telemetrie shromážděné během testování vám služba umožňuje generovat kód poměrně vysoké kvality – například 26 % doporučení navržených v GitHub Copilot bylo vývojáři přijato tak, jak je.

GitHub Copilot se liší od tradičních systémů pro dokončování kódu ve schopnosti generovat poměrně složité bloky kódu až po hotové funkce syntetizované s ohledem na aktuální kontext. GitHub Copilot se přizpůsobuje způsobu, jakým vývojář píše kód, a bere v úvahu API a frameworky používané v programu. Pokud je například v komentáři příklad struktury JSON, když začnete psát funkci pro analýzu této struktury, GitHub Copilot nabídne hotový kód a při psaní rutinních výpisů opakujících se popisů vygeneruje zbývající pozice.

GitHub spustil systém strojového učení Copilot, který generuje kód

Schopnost GitHub Copilot generovat hotové bloky kódu vedla ke kontroverzi související s potenciálním porušením licencí copyleft. Při vytváření modelu strojového učení byly použity skutečné zdrojové texty z repozitářů open source projektů umístěných na GitHubu. Mnoho z těchto projektů je poskytováno pod licencí copyleft, jako je GPL, která vyžaduje, aby byl kód odvozených děl distribuován pod kompatibilní licencí. Vložením existujícího kódu, jak navrhuje Copilot, mohou vývojáři nevědomky porušit licenci projektu, ze kterého byl kód vypůjčen.

Zatím není jasné, zda lze práci generovanou systémem strojového učení považovat za odvozenou. Vyvstávají také otázky, zda model strojového učení podléhá autorským právům, a pokud ano, kdo tato práva vlastní a jak souvisí s právy ke kódu, na kterém je model postaven.

Na jedné straně mohou vygenerované bloky opakovat textové pasáže z existujících projektů, ale na druhou stranu systém spíše znovu vytváří strukturu kódu, než aby samotný kód kopíroval. Podle studie GitHub může doporučení Copilot obsahovat úryvky kódu ze stávajících projektů, které jsou delší než 1 znaků, pouze v 150 % případů. Ve většině situací dochází k opakování, když Copilot nemůže správně určit kontext nebo nabízí standardní řešení problému.

Aby se zabránilo nahrazení existujícího kódu, byl do Copilot přidán speciální filtr, který neumožňuje průniky s existujícími projekty. Při nastavování může vývojář tento filtr aktivovat nebo deaktivovat podle svého uvážení. Kromě jiných problémů existuje možnost, že syntetizovaný kód může opakovat chyby a zranitelnosti přítomné v kódu použitém k trénování modelu.

Zdroj: opennet.ru

Přidat komentář