GitHub lanserar Copilot maskininlärningssystem som genererar kod

GitHub meddelade slutförandet av testning av den intelligenta assistenten GitHub Copilot, som kan generera standardkonstruktioner när man skriver kod. Systemet utvecklades tillsammans med OpenAI-projektet och använder OpenAI Codex-maskininlärningsplattformen, utbildad på ett stort utbud av källkoder som finns i offentliga GitHub-förråd. Tjänsten är gratis för underhållare av populära open source-projekt och studenter. För andra kategorier av användare betalas åtkomst till GitHub Copilot ($10 per månad eller $100 per år), men gratis provåtkomst tillhandahålls i 60 dagar.

Kodgenerering stöds i programmeringsspråken Python, JavaScript, TypeScript, Ruby, Go, C# och C++ med hjälp av olika ramverk. Moduler är tillgängliga för att integrera GitHub Copilot med Neovim, JetBrains IDE, Visual Studio och Visual Studio Code utvecklingsmiljöer. Att döma av telemetrin som samlats in under testningen låter tjänsten dig generera kod av ganska hög kvalitet - till exempel accepterades 26% av rekommendationerna i GitHub Copilot av utvecklarna som de är.

GitHub Copilot skiljer sig från traditionella kodkompletteringssystem i sin förmåga att generera ganska komplexa kodblock, upp till färdiga funktioner syntetiserade med hänsyn till det aktuella sammanhanget. GitHub Copilot anpassar sig till hur utvecklaren skriver kod och tar hänsyn till API:er och ramverk som används i programmet. Till exempel, om det finns ett exempel på en JSON-struktur i en kommentar, när du börjar skriva en funktion för att analysera denna struktur, kommer GitHub Copilot att erbjuda färdig kod, och när du skriver rutinlistor med upprepade beskrivningar genererar den återstående positioner.

GitHub lanserar Copilot maskininlärningssystem som genererar kod

GitHub Copilots förmåga att generera färdiga kodblock har lett till kontroverser relaterade till potentiella brott mot copyleft-licenser. När man utformade maskininlärningsmodellen användes riktiga källtexter från projektförråd med öppen källkod som finns på GitHub. Många av dessa projekt tillhandahålls under copyleft-licenser, såsom GPL, som kräver att koden för de härledda verken distribueras under en kompatibel licens. Genom att infoga befintlig kod som Copilot föreslår kan utvecklare omedvetet bryta mot licensen för projektet från vilket koden lånades.

Det är ännu inte klart om arbete som genereras av ett maskininlärningssystem kan betraktas som derivat. Frågor uppstår också om en maskininlärningsmodell är föremål för upphovsrätt och i så fall vem som äger dessa rättigheter och hur de förhåller sig till rättigheterna till koden som modellen bygger på.

Å ena sidan kan de genererade blocken upprepa textavsnitt från befintliga projekt, men å andra sidan återskapar systemet kodens struktur istället för att kopiera själva koden. Enligt en GitHub-studie kan en Copilot-rekommendation endast 1% av tiden innehålla kodavsnitt från befintliga projekt som är längre än 150 tecken. I de flesta situationer inträffar upprepningar när Copilot inte kan fastställa sammanhanget korrekt eller erbjuder standardlösningar på ett problem.

För att förhindra ersättning av befintlig kod har ett speciellt filter lagts till i Copilot som inte tillåter korsningar med befintliga projekt. Vid inställningen kan utvecklaren aktivera eller inaktivera detta filter efter eget gottfinnande. Bland andra problem finns det en möjlighet att den syntetiserade koden kan upprepa fel och sårbarheter som finns i koden som används för att träna modellen.

Källa: opennet.ru

Lägg en kommentar