Přístupnostní navigace
E-přihláška
Vyhledávání Vyhledat Zavřít
diplomová práce
Autor práce: Ing. Tomáš Beránek
Ak. rok: 2023/2024
Vedoucí: prof. Ing. Tomáš Vojnar, Ph.D.
Oponent: Ing. Jan Fiedor, Ph.D.
Statický analyzátor Meta Infer je nástrojem pro hledání různých typů chyb ve zdrojovém kódu. Jeho výsledky však obsahují více než 95 % falešných hlášení. Tato teze navrhuje řešení, které řadí hlášení od Meta Inferu pomocí grafových neuronových sítí (GNN) podle pravděpodobnosti, že se jedná o skutečnou chybu, a redukuje tak problém s falešnými hlášeními. Systém se skládá z trénovací části, která převádí datovou sadu D2A – sadu roztříděných hlášení z Meta Inferu – na rozšířené grafy vlastností kódu (ECPG) a z modelů GNN natrénovaných na ECPG grafech. Výsledky experimentů ukazují, že vytvořené modely GNN mohou konkurovat a v některých případech dokonce překonat existující řešení vyvíjené silnými průmyslovými týmy. Tato existující řešení mají navíc uzavřený zdrojový kód, a tak řešení vytvořené v této tezi poskytuje slibnou alternativu s otevřeným zdrojovým kódem.
Statická analýza, Meta Infer, hluboké učení, grafové neuronové sítě, detekce falešných hlášení, detekce zranitelností, grafy vlastností kódu, interní reprezentace LLVM, Joern, LLVM Slicer, prořezávání programů, konstrukce grafové reprezentace, analýza zdrojového kódu, dataset D2A, grafový D2A, rozšířené grafy vlastností kódu.
Termín obhajoby
17.06.2024
Výsledek obhajoby
obhájeno (práce byla úspěšně obhájena)
Klasifikace
A
Průběh obhajoby
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
Otázky k obhajobě
Jazyk práce
angličtina
Fakulta
Fakulta informačních technologií
Ústav
Ústav inteligentních systémů
Studijní program
Informační technologie a umělá inteligence (MITAI)
Specializace
Strojové učení (NMAL)
Složení komise
prof. Dr. Ing. Jan Černocký (předseda) doc. Ing. Lukáš Burget, Ph.D. (člen) doc. Mgr. Lukáš Holík, Ph.D. (člen) doc. RNDr. Pavel Smrž, Ph.D. (člen) doc. Ing. Vítězslav Beran, Ph.D. (člen) Ing. František Grézl, Ph.D. (člen)
Posudek vedoucíhoprof. Ing. Tomáš Vojnar, Ph.D.
Navrhuji hodnocení stupněm A s ohledem na obrovský objem odvedené kvalitní práce, za vysokou samostatnost a kreativitu projevenou studentem a v neposlední řadě také za dosažení výsledků, které mají dle mého názoru velmi dobrý publikační potenciál. Současně bych rád práci navrhnul na některé z možných ocenění za diplomovou práci.
Zadání práce považuji za výrazně nadprůměrně obtížné. Zadání kombinovalo aspekty jak z oblasti nízko-úrovňového programování, statické analýzy programů, tak i strojového učení. Student procházel dlouhou řadou kroků, u kterých nebylo jasné, jak je vhodně řešit a k jakým výsledkům povedou. Pro mě jako vedoucího to byla asi nejnapínavější práce, jakou jsem za mnoho let vedl. Jsem velmi rád, že nakonec vedla k úspěšnému zakončení.
Se zaměřením práce přišel sám student, následně se zjistilo, že o jeho práci má zájem Red Hat a jeho mateřská společnost IBM, konkrétně výzkumné centrum IBM Watson, které v dané oblasti provádí aktivní výzkum (a jedná se o špičku v oblasti AI). Komunikace s IBM bohužel ale nefungovala k naší spokojenosti, a nakonec se student rozhodl pracovat samostatně, jen s menší podporou ze strany Red Hat.
Práce byla dokončována v dostatečném předstihu na to, abych byl schopen řádně komentovat připravovanou technickou zprávu.
Práce byla prezentována na studentské soutěži Excel@FIT 2024, kde získala jedno z ocenění Odborným panelem. Obsah práce si navíc zaslouží dle mého názoru publikaci na kvalitní mezinárodní konferenci, minálně formou článku o nástroji či rozšířeného článku o nástroji. Na tom, že takovou publikaci sepíšeme, jsme se studentem již dohodli.
Student byl schopen samostatně vyhledávat, nastudovat a využít příslušné studijní zdroje, včetně výzkumných článků na jedné straně a dokumentace různých nástrojů na straně druhé.
Náročnost zadání se ukázala natolik vysoká, že se student po prvním roce systematické práce rozhodl dobrovolně prodloužit svou práci o další rok. Po celé dva roky se student své práci poctivě věnoval, chodil na pravidelné konzultace a pečlivě prezentoval své kroky, dílčí úspěchy i neúspěchy (bylo nutno projít různé slepé uličky).
Známka navržená vedoucím: A
Posudek oponentaIng. Jan Fiedor, Ph.D.
Práce je excelentní ve všech ohledech, od detailního a precizního návrhu, přes jeho realizaci a evaluaci, až po výbornou typografickou a jazykovou úpravu technické zprávy.
Navrhuji zvážit ocenění práce.
Stupeň hodnocení: zadání splněno
Stupeň hodnocení: přesahuje obvyklé rozmezí
Práce má přes 160 normostran, do velké míry díky 50 normostran dlouhé sekci 4.1.4, jenž detailně popisuje proces adaptace hrubého (raw) ECPG grafu do formátu TFRecord podporovaného knihovnou TensorFlow. Tuto část lze pokládat za jednu z nejdůležitějších částí (a přínosů) práce a je více než opodstatněná.
Celkově nelze v práci najít snad jediný úsek textu, u kterého by šlo řící, že je zbytečný a mohl by být vynechán.
Práce má výbornou logickou strukturu, kapitoly na sebe přirozeně navazují a provázejí čtenáře od návrhu celé architektury, přes její implementaci, až k celkové evaluaci navrženého řešení. Nejrozsáhlejší části práce je kapitola 4, která tvoří asi polovinu rozsahu technické zprávy, a podrobně rozebírá návrh celé architektury. Tuto kapitolu pokládám za stežejní část práce, jelikož implementace při takto precizním návrhu je již přímočará.
Na struktuře technické zprávy hlavně oceňuji výborné provázání jednotlivých kapitol a částí textu v nich. Většina textu práce je doplněna odkazy na související části práce, což při komplexnosti návrhu a rozsahu práce velmi usnadňuje čtenáři rychle dohledat relevantní informace důležité pro pochopení daného textu.
Práce je psaná v anglickém jazyce a má výbornou typografickou úpravu. Po jazykové stránce obsahuje úplné minimum překlepů, což je při rozsahu technické zprávy impozantní.
Technická zpráva se opírá o více než 100 zdrojů, kde velkou část z nich tvoří odborné články a publikace. Student velmi pečlivě nastudoval aktuální (state of the art) řešení a využil je jako inspiraci pro vlastní navržené řešení. Všechny zdroje jsou řádně odcitovány.
Student vytvořil komplexní technické řešení, kde implementace je jen třešničkou na dortu precizního návrhu. Jako primární realizační výstup pokládám návrh celé architektury, kde dokumentací je rozsáhlá a informačně bohatá kapitola 4 technické zprávy.
Navržené řešení je plně funkční, bylo oveřeno na 3 rozsáhlých projektech (httpd, libtiff, nginx) a porovnáno s existujícími řešeními třetích stran i s LLM modelem ChatGPT4.
Navržené řešení dosahuje výsledků srovnatelných s řešeními firem jako je IBM, má tedy potenciál využití v praxi. Hlavní překážkou pro uplatnění v praxi jsou ale špatné výsledky při cross-analýze, tedy při aplikaci grafové neuronové sítě na jiný projekt, než pro který byla grafová neuronová síť natrénována. S tím ovšem mají problém i všechna ostatní existující řešení.
Jelikož všechna stávající řešení nejsou veřejně přístupná, je navržené řešení vhodnou open-source alternativou. Navíc díky detailnímu popisu architektury lze toto řešení jednoduše rozšiřovat a dalé s ním experimentovat. Lze ho tedy s výhodou využít pro řešení problému s cross-analýzou.
Stupeň hodnocení: obtížnější zadání
Práce se zabývá aplikací grafových neuronových sítí (GNN) na problém klasifikace chyb nahlášených nástrojem pro statickou analýzu Meta Infer. Cílem je určit pravděpodobnost s jakou je náhlášená chyba reálnou chybou (true positive) a umožnit tak lépe odfiltrovat falešné chyby (false positives) seřazením hlášení podle pravděpodobnosti, že jsou reálnou chybou.
Ke splnění cíle práce bylo potřeba nastudovat velké množství technologií a navrhnout komplexní architekturu propojující tyto technologie do funkčního řešení. Nestačilo navíc jen propojit jednotlivé technologie, významnou částí práce bylo navrhnout proces transformace zdrojových kódů analyzovaných nástrojem Meta Infer do podoby Extended Code Property grafů (ECPG) vhodných jako vstup pro grafové neuronové sítě.
Známka navržená oponentem: A
Odpovědnost: Mgr. et Mgr. Hana Odstrčilová