Psaní kódu je pouze prvním krokem k vytvoření něčeho. Prohledání chyb v kódu a jejich oprava je časově náročná a často trvá déle, než se očekávalo, přesto je to nezbytný krok.
Kdyby tak existoval způsob, jak automaticky opravit chyby, které přesahují syntaktické chyby a skutečně rozumí záměrům vašeho kódu.
Nedávno Microsoft vyvinul AI schopnou detekovat a opravovat chyby v kódu pomocí hlubokého učení. Jak ale tento kus revoluční technologie vznikl a jak funguje?
Co je BugLab a jak funguje?
BugLab je implementace Pythonu s umělou inteligencí, která hledá a opravuje chyby v kódu. Vyvinuli jej Miltos Alamanis a Marc Brockschmidt, dva výzkumníci z Microsoft Research. Podařilo se jim překonat nedostatek označených dat často používaných v strojové učení tím, že se uchýlí k učení s vlastním dohledem a umožní BugLab trénovat se pomocí hry „na schovávanou“ s řádky kódu.
BugLab byl trénován pomocí dvou výpočetních modelů; jeden, který skrývá chyby ve správných úryvcích kódu, a druhý, který chyby vyhledává a opravuje. Oba modely se od sebe neustále učí. Postupem času se selektor chyb stává lepším ve skrývání chyb v kódu a detektor je lepší v jejich zachycení a opravě.
Pochopení kódu s BugLab
Většina chyb, k jejichž detekci a opravě je BugLab AI vycvičena, nevede k logickým chybám, ale jsou chybné pouze v důsledku obecného kontextu kódu. Pochopení záměru vývojáře je nezbytné pro nalezení těchto chyb.
Zacházení s úryvky kódu stejným způsobem jako zpracování přirozených jazyků přináší suboptimální výsledky. Pro umělou inteligenci je stále obtížné porozumět vztahu mezi různými příkazy, když jsou rozděleny do jednotlivých tokenů.
Místo toho se BugLab dívá na kód jako na celek. Tímto způsobem jsou každá syntaxe, výraz, symbol a identifikátor reprezentovány jako body v grafu, což umožňuje AI „pochopit“ spojení a vztah mezi různými uzly.
Architektury neuronových sítí se pak používají k trénování ladění AI. Jsou schopni získat poznatky z bohaté struktury grafu kódu a poskytnout důvody pro vztah každého uzlu s ostatními.
Funguje BugLab na reálném kódu?
Je důležité si uvědomit, že BugLab není náhradou za zkušeného programátora. Je to proto, že složité chyby stále nejsou na dosah.
Cílem Microsoftu s AI je odhalit a opravit běžně se vyskytující chyby, jako jsou nesprávné booleovské operátory, jako je použití „nebo“ místo „a“ a naopak, kromě srovnání obrácených hodnot a proměnných zneužívá.
Podle Microsoft, výsledky jsou slibné, protože BugLab je schopen detekovat a automaticky opravit přibližně 26 procent chyb v kusu kódu. Přesto je stále značné procento přesnosti ztraceno kvůli falešně pozitivním výsledkům a chybějícím chybám.
Budoucí aplikace Microsoft BugLab
Cílem Microsoftu s BugLab je ušetřit vývojářům softwaru čas, který často tráví procházením jejich kódu hledáním nejmenších chyb.
Zatímco model ladění AI je stále ve vývoji, má šanci hledání a opravování chyb které se pohybují od nepohodlných po katastrofální. Ale za pár let můžete očekávat, že BugLab se stane nezbytností v sadě nástrojů každého vývojáře, i když není dokonalý.
Exponenciální evoluce samoučící umělé inteligence
Čím více času mají modely umělé inteligence, jako je BugLab, trénovat na příkladech ze skutečného života, tím lepší a přesnější výsledky přinesou.
Jednou z nejnáročnějších překážek, kterým výzkumníci Microsoftu čelili při vývoji BugLab, bylo využití lidského porozumění kódu a záměru do tohoto nástroje. Ale teď, když je to z větší části vyřešeno, můžete očekávat, že se BugLab bude časem zlepšovat.
Snažíte se zjistit rozdíl mezi umělou inteligencí, strojovým učením a hlubokým učením? Zde je jejich význam.
Přečtěte si další
- Programování
- Microsoft
- Tipy pro kódování
- Umělá inteligence
Anina je autorkou technologií a zabezpečení internetu na volné noze ve společnosti MakeUseOf. V oblasti kybernetické bezpečnosti začala psát před 3 lety v naději, že ji zpřístupní běžnému člověku. Zájem o učení se novým věcem a velký astronomický hlupák.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem