Inilunsad ng GitHub ang Copilot machine learning system na bumubuo ng code

Inanunsyo ng GitHub ang pagkumpleto ng pagsubok ng matalinong katulong na GitHub Copilot, na may kakayahang bumuo ng mga karaniwang konstruksyon kapag nagsusulat ng code. Ang system ay binuo nang magkasama sa proyekto ng OpenAI at ginagamit ang OpenAI Codex machine learning platform, na sinanay sa isang malaking hanay ng mga source code na naka-host sa mga pampublikong GitHub repository. Ang serbisyo ay libre para sa mga nagpapanatili ng mga sikat na open source na proyekto at mga mag-aaral. Para sa iba pang mga kategorya ng mga user, ang access sa GitHub Copilot ay binabayaran ($10 bawat buwan o $100 bawat taon), ngunit ang libreng pagsubok na access ay ibinibigay sa loob ng 60 araw.

Ang pagbuo ng code ay sinusuportahan sa mga programming language na Python, JavaScript, TypeScript, Ruby, Go, C# at C++ gamit ang iba't ibang mga frameworks. Available ang mga module upang isama ang GitHub Copilot sa Neovim, JetBrains IDEs, Visual Studio, at Visual Studio Code na mga kapaligiran sa pagbuo. Sa paghusga sa telemetry na nakolekta sa panahon ng pagsubok, pinapayagan ka ng serbisyo na makabuo ng code na medyo mataas ang kalidad - halimbawa, 26% ng mga rekomendasyong iminungkahi sa GitHub Copilot ay tinanggap ng mga developer kung ano man.

Naiiba ang GitHub Copilot sa mga tradisyunal na sistema ng pagkumpleto ng code sa kakayahan nitong bumuo ng medyo kumplikadong mga bloke ng code, hanggang sa mga yari na function na na-synthesize na isinasaalang-alang ang kasalukuyang konteksto. Ang GitHub Copilot ay umaangkop sa paraan ng pagsusulat ng developer ng code at isinasaalang-alang ang mga API at framework na ginamit sa programa. Halimbawa, kung mayroong isang halimbawa ng isang istraktura ng JSON sa isang komento, kapag nagsimula kang magsulat ng isang function upang i-parse ang istrakturang ito, ang GitHub Copilot ay mag-aalok ng handa na code, at kapag nagsusulat ng mga nakagawiang listahan ng mga paulit-ulit na paglalarawan, bubuo ito ng natitirang mga posisyon.

Inilunsad ng GitHub ang Copilot machine learning system na bumubuo ng code

Ang kakayahan ng GitHub Copilot na bumuo ng mga ready-made na bloke ng code ay humantong sa kontrobersya na nauugnay sa mga potensyal na paglabag sa mga lisensya ng copyleft. Sa pagbuo ng modelo ng machine learning, ginamit ang mga totoong source text mula sa mga open source na repository ng proyekto na matatagpuan sa GitHub. Marami sa mga proyektong ito ay ibinibigay sa ilalim ng mga lisensya ng copyleft, gaya ng GPL, na nangangailangan ng code ng mga derivative na gawa na ipamahagi sa ilalim ng isang katugmang lisensya. Sa pamamagitan ng paglalagay ng umiiral na code gaya ng iminungkahi ng Copilot, maaaring hindi sinasadya ng mga developer na lumabag sa lisensya ng proyekto kung saan hiniram ang code.

Hindi pa malinaw kung ang gawaing nabuo ng isang machine learning system ay maituturing na derivative. Lumilitaw din ang mga tanong kung ang isang modelo ng machine learning ay napapailalim sa copyright at, kung gayon, kung sino ang nagmamay-ari ng mga karapatang ito at kung paano nauugnay ang mga ito sa mga karapatan sa code kung saan nakabatay ang modelo.

Sa isang banda, maaaring ulitin ng mga nabuong bloke ang mga sipi ng teksto mula sa mga umiiral nang proyekto, ngunit sa kabilang banda, muling nililikha ng system ang istruktura ng code sa halip na kopyahin ang mismong code. Ayon sa isang pag-aaral sa GitHub, 1% lang ng pagkakataon na ang isang rekomendasyon ng Copilot ay maaaring magsama ng mga snippet ng code mula sa mga kasalukuyang proyekto na mas mahaba sa 150 character. Sa karamihan ng mga sitwasyon, nangyayari ang mga pag-uulit kapag hindi matukoy nang tama ng Copilot ang konteksto o nag-aalok ng mga karaniwang solusyon sa isang problema.

Upang maiwasan ang pagpapalit ng umiiral na code, isang espesyal na filter ang idinagdag sa Copilot na hindi nagpapahintulot ng mga intersection sa mga kasalukuyang proyekto. Kapag nagse-set up, maaaring i-activate o i-disable ng developer ang filter na ito sa kanyang paghuhusga. Sa iba pang mga problema, may posibilidad na ang synthesized code ay maaaring ulitin ang mga error at mga kahinaan na nasa code na ginamit upang sanayin ang modelo.

Pinagmulan: opennet.ru

Magdagdag ng komento