A GitHub elindította a kódot generáló Copilot gépi tanulási rendszert

A GitHub bejelentette, hogy befejeződött a GitHub Copilot intelligens asszisztens tesztelése, amely szabványos konstrukciókat képes generálni a kódírás során. A rendszert az OpenAI projekttel közösen fejlesztették ki, és az OpenAI Codex gépi tanulási platformot használja, amelyet nyilvános GitHub-tárolókban tárolt forráskódok széles skáláján képeztek ki. A szolgáltatás ingyenes a népszerű nyílt forráskódú projektek fenntartói és a hallgatók számára. Más felhasználói kategóriák számára a GitHub Copilothoz való hozzáférés fizetős (10 USD havonta vagy 100 USD évente), de ingyenes próba-hozzáférés biztosított 60 napig.

A kódgenerálás a Python, JavaScript, TypeScript, Ruby, Go, C# és C++ programozási nyelveken támogatott különféle keretrendszerek segítségével. Modulok állnak rendelkezésre a GitHub Copilot integrálásához a Neovim, a JetBrains IDE, a Visual Studio és a Visual Studio Code fejlesztői környezetekkel. A tesztelés során összegyűjtött telemetria alapján a szolgáltatás meglehetősen jó minőségű kód generálását teszi lehetővé - például a GitHub Copilotban javasolt ajánlások 26% -át a fejlesztők elfogadták.

A GitHub Copilot abban különbözik a hagyományos kódkiegészítő rendszerektől, hogy képes meglehetősen összetett kódblokkokat generálni, egészen az aktuális kontextus figyelembevételével szintetizált, kész függvényekig. A GitHub Copilot alkalmazkodik a fejlesztő kódírási módjához, és figyelembe veszi a programban használt API-kat és keretrendszereket. Például, ha egy megjegyzésben van példa JSON-struktúrára, amikor elkezd írni egy függvényt a struktúra elemzéséhez, a GitHub Copilot kész kódot kínál, és az ismétlődő leírások rutinlistáinak írásakor generálja a fennmaradó részt. pozíciókat.

A GitHub elindította a kódot generáló Copilot gépi tanulási rendszert

A GitHub Copilot kész kódblokkokat generáló képessége a copyleft licencek esetleges megsértésével kapcsolatos vitákhoz vezetett. A gépi tanulási modell kialakításakor valódi forrásszövegeket használtak a GitHubon található nyílt forráskódú projekttárakból. Ezek közül a projektek közül sok copyleft licenc alatt áll rendelkezésre, például a GPL, amely előírja, hogy a származékos művek kódját kompatibilis licenc alatt kell terjeszteni. A Copilot javaslata szerint meglévő kód beillesztésével a fejlesztők akaratlanul is megsérthetik annak a projektnek a licencét, amelyből a kódot kölcsönözték.

Egyelőre nem világos, hogy a gépi tanulási rendszer által generált munka származékosnak tekinthető-e. Kérdések merülnek fel az is, hogy egy gépi tanulási modellre vonatkozik-e a szerzői jog, és ha igen, kinek a tulajdonosa ezek a jogok, és hogyan kapcsolódnak azok a modell alapjául szolgáló kódhoz fűződő jogokhoz.

Egyrészt a generált blokkok megismételhetik a meglévő projektekből származó szövegrészeket, másrészt a rendszer újraalkotja a kód szerkezetét, nem pedig magát a kódot másolja. Egy GitHub-tanulmány szerint a Copilot-ajánlás csak az esetek 1%-ában tartalmazhat 150 karakternél hosszabb kódrészleteket a meglévő projektekből. A legtöbb esetben ismétlések fordulnak elő, amikor a Copilot nem tudja megfelelően meghatározni a kontextust, vagy szabványos megoldásokat kínál egy problémára.

A meglévő kód helyettesítésének megakadályozása érdekében egy speciális szűrőt adtunk a Copilothoz, amely nem teszi lehetővé a meglévő projektekkel való kereszteződést. Beállításkor a fejlesztő saját belátása szerint aktiválhatja vagy letilthatja ezt a szűrőt. Többek között fennáll annak a lehetősége, hogy a szintetizált kód megismételheti a modell betanításához használt kódban található hibákat és sebezhetőségeket.

Forrás: opennet.ru

Hozzászólás