„GitHub“ pristatė „Copilot“ mašininio mokymosi sistemą, kuri generuoja kodą

„GitHub“ paskelbė baigęs išmaniojo asistento „GitHub Copilot“, galinčio generuoti standartines konstrukcijas rašant kodą, testavimo užbaigimą. Sistema buvo sukurta kartu su „OpenAI“ projektu ir naudoja „OpenAI Codex“ mašininio mokymosi platformą, parengtą naudojant daugybę šaltinio kodų, priglobtų viešose „GitHub“ saugyklose. Ši paslauga nemokama populiarių atvirojo kodo projektų prižiūrėtojams ir studentams. Kitų kategorijų naudotojams prieiga prie „GitHub Copilot“ yra mokama (10 USD per mėnesį arba 100 USD per metus), tačiau nemokama bandomoji prieiga suteikiama 60 dienų.

Kodo generavimas palaikomas programavimo kalbomis Python, JavaScript, TypeScript, Ruby, Go, C# ir C++ naudojant įvairias sistemas. Galimi moduliai, skirti integruoti GitHub Copilot su Neovim, JetBrains IDE, Visual Studio ir Visual Studio Code kūrimo aplinkomis. Sprendžiant iš testavimo metu surinktos telemetrijos, paslauga leidžia sugeneruoti gana aukštos kokybės kodą – pavyzdžiui, 26% GitHub Copilot pasiūlytų rekomendacijų kūrėjai priėmė tokius, kokie yra.

„GitHub Copilot“ skiriasi nuo tradicinių kodo užbaigimo sistemų gebėjimu generuoti gana sudėtingus kodo blokus, iki paruoštų funkcijų, sintezuotų atsižvelgiant į esamą kontekstą. „GitHub Copilot“ prisitaiko prie to, kaip kūrėjas rašo kodą, ir atsižvelgia į programoje naudojamas API ir sistemas. Pavyzdžiui, jei komentare yra JSON struktūros pavyzdys, pradėjus rašyti funkciją šiai struktūrai analizuoti, „GitHub Copilot“ pasiūlys paruoštą kodą, o rašydamas įprastus pasikartojančių aprašymų sąrašus sugeneruos likusią dalį. pozicijų.

„GitHub“ pristatė „Copilot“ mašininio mokymosi sistemą, kuri generuoja kodą

„GitHub Copilot“ galimybė generuoti paruoštus kodo blokus sukėlė ginčų, susijusių su galimais „copyleft“ licencijų pažeidimais. Formuojant mašininio mokymosi modelį buvo naudojami tikro šaltinio tekstai iš atvirojo kodo projektų saugyklų, esančių GitHub. Daugelis šių projektų teikiami pagal copyleft licencijas, pvz., GPL, pagal kurią reikalaujama, kad išvestinių kūrinių kodas būtų platinamas pagal suderinamą licenciją. Įterpdami esamą kodą, kaip siūlo Copilot, kūrėjai gali nesąmoningai pažeisti projekto, iš kurio kodas buvo pasiskolintas, licenciją.

Dar neaišku, ar mašininio mokymosi sistemos sukurtas darbas gali būti laikomas išvestiniu. Taip pat kyla klausimų, ar mašininio mokymosi modeliui taikomos autorių teisės ir, jei taip, kam šios teisės priklauso ir kaip jos susijusios su teisėmis į kodą, kuriuo remiantis sukurtas modelis.

Viena vertus, sugeneruoti blokai gali pakartoti teksto ištraukas iš esamų projektų, tačiau, kita vertus, sistema atkuria kodo struktūrą, o ne kopijuoja patį kodą. Remiantis „GitHub“ tyrimu, tik 1% atvejų „Copilot“ rekomendacijoje gali būti kodo fragmentai iš esamų projektų, kurie yra ilgesni nei 150 simbolių. Daugeliu atvejų pasikartoja, kai Copilot negali teisingai nustatyti konteksto arba pasiūlo standartinius problemos sprendimus.

Siekiant užkirsti kelią esamo kodo pakeitimui, Copilot buvo pridėtas specialus filtras, kuris neleidžia susikirtimo su esamais projektais. Nustatydamas kūrėjas gali įjungti arba išjungti šį filtrą savo nuožiūra. Be kitų problemų, yra galimybė, kad susintetintas kodas gali pakartoti klaidas ir pažeidžiamumus, esančius kode, kuris naudojamas modeliui lavinti.

Šaltinis: opennet.ru

Добавить комментарий