Sekėjai

Ieškoti šiame dienoraštyje

2021 m. liepos 9 d., penktadienis

Dirbtinis intelektas keičia kompiuterinių programų rašymo būdą

 „GPT-3, „Generative Pre-Trained Transformer 3“ yra kalbos modelis, kurį sukūrė „OpenAI“ - dalinai komercinė, dalinai ne pelno siekianti dirbtinio intelekto (AI) laboratorija San Franciske. GPT-3 buvo išmokytas beprecedentės teksto masės, kad išmoktų tikimybę, jog duotas žodis bus po ankstesnių žodžių. Kai pateikiamas trumpas teksto pavyzdys, jis sukuria stebėtinai nuoseklią prozą, parašytą panašiu stiliumi. Prieiga prie GPT-3 yra ribota. Viena vertus, sako Jackas Clarkas, buvęs organizacijos politikos vadovas, kitaip jis gali būti naudojamas masinėms netikrų naujienų gamybai arba socialinių tinklų užplūdimui „trolinimo ir sielvarto“ pranešimais. 

Tačiau „OpenAI“ taip pat žino, kad GPT-3 yra komerciškai vertingas. Praėjusiais metais laboratorija pradėjo leisti patikrintoms įmonėms pirkti produkciją patvirtintam naudojimui. Tai apima atsakymų į spausdintus klausimus apie gaminius rengimą ir išgalvotų personažų kalbos įjungimą virtualiuose pasauliuose. 

Bet bene svarbiausia, kad GPT-3 taip pat gali būti naudojamas kompiuterio kodui rašyti. Kelios firmos jau naudoja GPT-3 ir jos pirmtaką GPT-2, kad pridėtų AI prie programinės įrangos, kurią jų programuotojai naudoja rašydami kodą. Didžioji dalis to, ką įrašo šie programuotojai, kažkur praeityje jau buvo parašyta kitur. Tai reiškia, kad į tokius paketus įvesdami daugybę jau egzistuojančių kodų, jie gali būti išmokyti numatyti eilutes, kurių programuotojui reikės toliau. Ekrane pasirodo galimi vienos ar kelių eilučių „kodo užbaigimai“. 

 Viena kompanija, sukūrusi tokią dirbtiniu intelektu remtą užbaigimo funkciją, yra „Tabnine“ iš Tel Avivo. „Tabnine“ naudojo GPT-2 tiek daug kodų į savo programavimo programinę įrangą, dar vadinamą „Tabnine“, kad ši programinė įranga įgijo savotiškų „žinių apie pasaulį“, sako Eranas Yahavas, geriausias firmos technologas. Dr Yahavas tai apibūdina kaip „gana gerą supratimą apie tai, kaip pasaulis elgiasi“, bent jau kalbant apie programavimą. „Tabnine“ programinė įranga gali aptikti, kad vartotojas pradėjo įvesti kodą tvarkyti, tarkime, pirkimo užsakymus. Tada jis pasiūlys kodą, kad būtų rodomi produktų pavadinimai ir kainos, taip pat kodą, kad būtų sukurti laukai, kuriuose būtų užpildyti kiekiai, mokėjimo ir pristatymo duomenys. 

 Kai kurios kodavimo sekos yra retos. Tokiais atvejais „Tabnine“ prailgina siūlomų užbaigimų iššokantįjį sąrašą, kad padidintų naudingo pasiūlymo tikimybę. Spustelėjęs tinkamą, programuotojas moko „Tabnine“ pasirodyti geriau. Pasak įmonės vadovo Droro Weisso, „Tabnine“ profesionali versija, atrodo, yra „beveik intelektuali“, nes ji gali suprasti programuotojo ketinimus. 

Tabnine nėra viena. Birželio 17 d. amerikiečių programinės įrangos milžinė „Microsoft“ išleido naują dirbtiniu intelektu remtą užbaigimo funkcijos versiją, kurią įterpia į kodavimo programinę įrangą „Visual Studio“. Originali versija, išleista 2018 m. ir pavadinta „IntelliCode“, buvo apmokyta keliuose tūkstančiuose internetinių saugyklų, kuriose saugomas programavimo projektų kodas. „Microsoft“ mokė atnaujintą sistemą daugiau nei pusėje milijono tokių saugyklų. Amanda Silver, viena iš „Visual Studio“ vadovų, sako, kad šie papildomi mokomųjų duomenų kaupiniai leidžia naujajai versijai geriau suprasti ketinimus iš programuotojo jau parašytų užuominų. 

Viso to tikslas, žinoma, yra laiko taupymas. San Francisko įmonė „Kite“ tvirtina, kad jos dirbtinio intelekto užbaigimo produktai sumažino kai kurių užduočių atlikimo klavišų skaičių beveik perpus. Tačiau bendras efektyvumo padidėjimas yra mažesnis. Čekijos programavimo programinės įrangos kūrėjos „JetBrains“ Sankt Peterburgo biuro dirbtinio intelekto produktų vadovas Vitalijus Khudobakhshovas laiko sutaupymą matuoja nuo 10 iki 20 proc.  Pasak „Debuild“ firmos vadovo Sharifo Shameemo, kuris naudoja GPT-3 pagalba kuriant svetaines, ši technologija taip pat sumažina „pažintines pridėtines išlaidas“. Pasirinkimas iš kelių pasirinkimų yra mažiau sunkus, nei sprendimų iš pradžių kūrimas.

 Taip pat naudos gauna ne tik tie, kurie rašo kodą. Kūrėjai praleidžia beveik tiek pat laiko, ieškodami klaidų tame, ką parašė, nei iš pradžių. Niujorko universiteto Brendano Dolano-Gavitto sukurtas mašininio mokymosi modelis gali pagreitinti derinimo procesą. Norėdami jį apmokyti, dr. Dolanas-Gavittas renka kodą, kuriame yra didžiausia pasaulyje nepatentuotų „atvirojo kodo“ kodų kolekcija. Pagal vieną vertinimą, „GitHub“ turi mažiausiai milijardą kodo fragmentų, kurie identifikuoti kaip turintys klaidą. Dr Dolan-Gavitt modelis, laikinai vadinamas GPT-CSRC, šią vasarą praryja šį kodą.

Kitas klaidų pastebėjimo modelis yra kuriamas Masačusetso technologijos institute (MIT). Shashankas Srikantas, prie projekto dirbantis doktorantas, sako, kad tikslas yra išmokyti modelį atpažinti ne tik netyčines klaidas, bet ir piktybiškai įterptus pažeidžiamumus. Nesąžiningi darbuotojai kartais slepia tokio pobūdžio gudrybes, kurios yra skirtos tam, kad slapta gautų prieigą prie slaptažodžių. Tačiau ši praktika dažniausiai taikoma atvirojo kodo programavimo projektuose, prie kurių gali prisidėti visi. Žmonių apžvalgininkai paprastai stengiasi pastebėti šias „pažeidžiamumo injekcijas“, kaip jie kartais žinomi. Ponas Srikantas sako, kad, norėdami paslėpti savo praeities kūrinius, apsukrūs koduotojai dažnai naudoja apgaulingus, bet grynai kosmetinius pavadinimus tokiems dalykams kaip programos valdomi kintamieji. Todėl MIT komanda treniruoja savo modelį, kad pažymėtų fragmentų etikečių ir jų tikrojo funkcionalumo neatitikimus. Sunkumas yra tas, kad geri tokių išdykavimų pavyzdžiai yra daug rečiau, nei įprastos klaidos. Tačiau yra papildomas ženklas, kad pažeidžiamumas gali būti slypėjęs. Kenkėjiški koduotojai dažnai tai slepia rašydami nereikalingą kodą, skirtą atmesti recenzentus, todėl ponas Srikantas taip pat maitina MIT modelį tokio tipo potencialiai signalinio kodo pavyzdžiais, kuriuos jis apibūdina kaip „kabančius“ ir „mirusius“. 

Aiškus šios veiklos tikslas yra sukurti programinės įrangos programuotojus, kurie, kaip ir žmonių įvairovė, gali perimti idėją ir paversti ją kodu. Apie ateinančius dalykus žino dr Dolan-Gavitt sukurta svetainė. Pavadintas „Šis kodas neegzistuoja“, jis prašo programuotojų nustatyti, ar dešimčių eilučių ilgio kodo sekcijas parašė žmogus, ar jo sukurtas GPT-2 pagrindu sukurtas modelis. Iš daugiau nei 329 200 atliktų vertinimų mažiau nei 51% buvo teisingi. Tai tik truputį geriau, nei atsitiktinis. 

Mašinos, pasirodo, dabar sugeba parašyti net ilgas veikiančio kodo sekas. Kaip socialiniame tinkle „Twitter“ žinomas amerikiečių kompiuterių inžinierius Johnas Carmackas, apmąstydamas šį įvykį „iš tikrųjų sukelia lengvą šiurpuliuką“. Nenuostabu, kad nemažai firmų mato galimybę. Viena yra Paryžiaus įmonė, vadinama „SourceAI“. Tai yra programinės įrangos projektavimas, į kurį vartotojai natūralia kalba įveda kodo užklausą - pavyzdžiui, tai, kas apskaičiuos skaičių vertę matematinėje formulėje, vadinamoje „Fibonači“ seka. Pasinaudodama GPT-3, „SourceAI“ pavadinta programinė įranga sukuria norimas kodo eilutes įvairiomis programavimo kalbomis. 

„Debuild“ bando tą pačią idėją. Ji bando sukurti programinę įrangą, kuri neprogramuotojams leistų paprastąja anglų kalba apibūdinti norimą sukurti programą ir tada ją parašys AI. Prašymas, tarkime, kirpyklos programėlės, leidžiančios mecenatams pasirinkti kirpėją ir susitikimų laiką, jau gali suteikti daugiau ar mažiau tai. Ponas Shameemas sako, kad tikslas yra iššluoti kodo rinkimo smulkmenas, kad žmonės galėtų sutelkti dėmesį į tai, ko nori, o ne į tai, kaip nurodyti kompiuteriams tai padaryti. 

Savo ruožtu „Microsoft“ taip pat naudoja GPT-3, kad valdytų tai, ką ji vadina „nėra kodo / mažo kodo“. Šiam darbui vadovaujantis Charlesas Lamanna numato šviesią pigesnės programinės įrangos, kurią sukūrė nemokyti „piliečių kūrėjai“, ateitį.“ [1]  

1.     1. "The software software engineers; Automating programming." The Economist, 10 July 2021, p. 72(US).

Komentarų nėra: