Kodo rašymas yra tik pirmas žingsnis kuriant ką nors. Klaidų kodo šukavimas ir jų taisymas užima daug laiko ir dažnai užtrunka ilgiau nei tikėtasi, tačiau vis dėlto tai yra būtinas žingsnis.
Jei tik būtų būdas automatiškai ištaisyti klaidas, kurios peržengia sintaksės klaidas ir tikrai supranta jūsų kodo ketinimus.
Neseniai „Microsoft“ sukūrė dirbtinį intelektą, galintį aptikti ir ištaisyti kodo klaidas naudojant gilųjį mokymąsi. Bet kaip atsirado ši revoliucinė technologija ir kaip ji veikia?
Kas yra „BugLab“ ir kaip jis veikia?
„BugLab“ yra dirbtinio intelekto „Python“ diegimas, kuris ieško ir taiso kodo klaidas. Jį sukūrė du „Microsoft Research“ mokslininkai Miltos Alamanis ir Marcas Brockschmidtas. Jiems pavyko įveikti dažnai naudojamų pažymėtų duomenų trūkumą mašininis mokymasis pasinaudojant savarankiškai prižiūrimu mokymusi ir leidžiant „BugLab“ treniruotis naudojant „slėpynių“ žaidimą su kodo eilutėmis.
BugLab buvo apmokytas naudojant du skaičiavimo modelius; vienas, kuris paslepia klaidas teisinguose kodo fragmentuose, o kitas ieško ir taiso klaidas. Abu modeliai nuolat mokosi vienas iš kito. Laikui bėgant klaidų parinkiklis geriau slepia klaidas kode, o detektorius geriau jas gaudo ir ištaiso.
Kodo supratimas naudojant „BugLab“.
Dauguma klaidų, kurias „BugLab AI“ išmoko aptikti ir taisyti, nesukelia loginių klaidų, o yra klaidingos tik dėl bendro kodo konteksto. Norint rasti šias klaidas, būtina suprasti kūrėjo ketinimus.
Apdorojant kodo fragmentus taip, kaip apdorojant natūralias kalbas, gaunami neoptimalūs rezultatai. AI vis dar sunku suprasti ryšį tarp skirtingų teiginių, kai jie suskirstyti į atskirus žetonus.
Vietoj to, „BugLab“ žiūri į kodą kaip į visumą. Tokiu būdu kiekviena sintaksė, išraiška, simbolis ir identifikatorius yra vaizduojami kaip taškai grafike, leidžiantys AI „suprasti“ ryšį ir ryšį tarp įvairių mazgų.
Neuroninių tinklų architektūros tada naudojami derinimo AI mokyti. Jie gali gauti įžvalgų iš turtingos kodo grafiko struktūros ir pateikti kiekvieno mazgo ryšio su kitais priežastis.
Ar „BugLab“ veikia su realaus gyvenimo kodu?
Svarbu pažymėti, kad „BugLab“ nėra kvalifikuoto programuotojo pakaitalas. Taip yra todėl, kad sudėtingos klaidos vis dar nepasiekiamos.
Microsoft tikslas su AI yra aptikti ir ištaisyti dažniausiai pasitaikančias klaidas, tokias kaip neteisingi Būlio operatoriai, kaip "arba" naudojimas vietoj "ir" ir atvirkščiai, be apverstų verčių palyginimų ir kintamųjų piktnaudžiavimo.
Pagal Microsoft, rezultatai yra daug žadantys, nes „BugLab“ gali aptikti ir automatiškai ištaisyti maždaug 26 procentus kodo dalies klaidų. Vis dėlto didelis procentas tikslumo vis tiek prarandamas dėl klaidingų teigiamų rezultatų ir praleistų klaidų.
Būsimos „Microsoft BugLab“ programos
„Microsoft“ tikslas su „BugLab“ yra sutaupyti programinės įrangos kūrėjų laiko, kurį dažnai praleidžia peržiūrėdami savo kodą ieškant mažiausių klaidų.
Nors AI derinimo modelis vis dar kuriamas, jis turi galimybę klaidų paieška ir taisymas kurios svyruoja nuo nepatogių iki katastrofiškų. Tačiau po kelerių metų galite tikėtis, kad „BugLab“ taps privaloma kiekvieno kūrėjo įrankių rinkinyje, net jei jis nėra tobulas.
Eksponentinė savarankiško mokymosi AI raida
Kuo daugiau laiko dirbtinio intelekto modeliams, tokiems kaip „BugLab“, treniruotis pagal realius pavyzdžius, tuo geresnių ir tikslesnių rezultatų jie duos.
Viena iš sudėtingiausių kliūčių, su kuriomis susidūrė „Microsoft“ mokslininkai kurdami „BugLab“, buvo žmogaus supratimas apie kodą ir ketinimus įrankyje. Tačiau dabar, kai tai dažniausiai išspręsta, galite tikėtis, kad „BugLab“ laikui bėgant pagerės.
Bandote išsiaiškinti skirtumą tarp dirbtinio intelekto, mašininio mokymosi ir gilaus mokymosi? Štai ką jie visi reiškia.
Skaitykite toliau
- Programavimas
- Microsoft
- Kodavimo patarimai
- Dirbtinis intelektas
Anina yra laisvai samdoma „MakeUseOf“ technologijų ir interneto saugumo rašytoja. Ji pradėjo rašyti apie kibernetinį saugumą prieš 3 metus, tikėdamasi, kad ji taps prieinamesnė paprastam žmogui. Nori mokytis naujų dalykų ir yra didžiulis astronomijos vėpla.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia