GitHub spúšťa systém strojového učenia Copilot, ktorý generuje kód

GitHub oznámil dokončenie testovania inteligentného asistenta GitHub Copilot, schopného generovať štandardné konštrukcie pri písaní kódu. Systém bol vyvinutý spoločne s projektom OpenAI a využíva platformu strojového učenia OpenAI Codex, vyškolenú na veľkom množstve zdrojových kódov umiestnených vo verejných úložiskách GitHub. Služba je bezplatná pre správcov populárnych projektov s otvoreným zdrojovým kódom a študentov. Pre ostatné kategórie používateľov je prístup k GitHub Copilot platený (10 USD mesačne alebo 100 USD ročne), ale bezplatný skúšobný prístup je poskytovaný na 60 dní.

Generovanie kódu je podporované v programovacích jazykoch Python, JavaScript, TypeScript, Ruby, Go, C# a C++ pomocou rôznych rámcov. K dispozícii sú moduly na integráciu GitHub Copilot s vývojovými prostrediami Neovim, JetBrains IDE, Visual Studio a Visual Studio Code. Podľa telemetrie zhromaždenej počas testovania vám služba umožňuje generovať kód pomerne vysokej kvality – napríklad 26 % odporúčaní navrhnutých v GitHub Copilot vývojári akceptovali tak, ako sú.

GitHub Copilot sa líši od tradičných systémov na dokončovanie kódu v schopnosti generovať pomerne zložité bloky kódu až po hotové funkcie syntetizované s prihliadnutím na aktuálny kontext. GitHub Copilot sa prispôsobuje spôsobu, akým vývojár píše kód, a berie do úvahy API a rámce používané v programe. Napríklad, ak je v komentári príklad štruktúry JSON, keď začnete písať funkciu na analýzu tejto štruktúry, GitHub Copilot ponúkne hotový kód a pri písaní rutinných výpisov opakujúcich sa popisov vygeneruje zostávajúce pozície.

GitHub spúšťa systém strojového učenia Copilot, ktorý generuje kód

Schopnosť GitHub Copilot generovať hotové bloky kódu viedla ku kontroverzii súvisiacej s potenciálnym porušením copyleftových licencií. Pri vytváraní modelu strojového učenia boli použité skutočné zdrojové texty z repozitárov open source projektov umiestnených na GitHub. Mnohé z týchto projektov sú poskytované na základe licencií typu copyleft, ako je napríklad GPL, ktorá vyžaduje, aby bol kód odvodených diel distribuovaný na základe kompatibilnej licencie. Vložením existujúceho kódu, ako navrhuje Copilot, môžu vývojári nevedomky porušiť licenciu projektu, z ktorého bol kód vypožičaný.

Zatiaľ nie je jasné, či prácu generovanú systémom strojového učenia možno považovať za odvodenú. Vynárajú sa aj otázky, či model strojového učenia podlieha autorským právam, a ak áno, kto vlastní tieto práva a ako súvisia s právami na kód, na ktorom je model založený.

Na jednej strane môžu vygenerované bloky opakovať textové pasáže z existujúcich projektov, no na druhej strane systém namiesto kopírovania samotného kódu obnovuje štruktúru kódu. Podľa štúdie GitHub len v 1 % prípadov môže odporúčanie Copilota obsahovať úryvky kódu z existujúcich projektov, ktoré sú dlhšie ako 150 znakov. Vo väčšine situácií dochádza k opakovaniam, keď Copilot nedokáže správne určiť kontext alebo ponúka štandardné riešenia problému.

Aby sa predišlo nahradeniu existujúceho kódu, do Copilota bol pridaný špeciálny filter, ktorý neumožňuje prieniky s existujúcimi projektmi. Pri nastavovaní môže vývojár aktivovať alebo deaktivovať tento filter podľa vlastného uváženia. Okrem iných problémov existuje možnosť, že syntetizovaný kód môže opakovať chyby a zraniteľnosti prítomné v kóde použitom na trénovanie modelu.

Zdroj: opennet.ru

Pridať komentár