diplomová práce
Využití jazykového modelu AI pro vývoj Klinického informačního systému
Autor práce: Ing. Vojtěch Jahoda
Ak. rok: 2023/2024
Vedoucí: doc. Ing. Radek Burget, Ph.D.
Oponent: RNDr. Marek Rychlý, Ph.D.
Abstrakt:Tato práce řeší problematiku správného kontextu projektu assistenta pro psaní kódu klinického informačního systému a jeho natrénování na konkrétní projektový adresář. Tento problém jsem následně řešil pomocí jazykového modelu Codellamac od firmy Meta. Tento nástroj by měl zefektivnit psaní kódu a vyvarovat se jeho opakování převážně pro né zcela znalé programátory.
Klíčová slova:Jazykový model, umělá inteligence, copilot, assistent, klinický informační systém
obhájeno (práce byla úspěšně obhájena)
znamkaCznamka
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 C.
- Proč byla použita databáze MySQL a ne v systému již existující databáze (Microsoft SQL server) nebo nějaká jednouživatelská databáze typu SQLite či jednoduchá NoSQL databáze? Je řešení s MySQL škálovatelné, jak píšete v kap. 4.6.4?
- Z kolika výsledků byly vytvořeny grafy k úspěšnosti testování v kap. 5.1, případně i dalších podkapitolách kap. 5?
- Myslíte si, že je vaše řešení použitelné?
Informační technologie a umělá inteligence (MITAI)
Informační systémy a databáze (NISD)
prof. Ing. Tomáš Hruška, CSc. (předseda)
doc. Ing. Radek Burget, Ph.D. (člen)
doc. Mgr. Adam Rogalewicz, Ph.D. (člen)
Ing. Vladimír Bartík, Ph.D. (člen)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Pan Jahoda nastudoval a prakticky aplikoval několik jazykových modelů a s jejich využitím navrhl a implementoval experimentální vývojářské nástroje. Práci řešil zodpovědně a vzhledem ke složitosti dané problematiky hodnotím jeho práci jako nadprůměrnou.
Kritérium hodnocení |
Slovní hodnocení |
Informace k zadání |
Cílem práce bylo zmapovat možnosti dostupných velkých jazykových modelů a jejich využití pro vývoj software v rámci velké organizace. a navrhnout a implementovat odpovídající vývojářské nástroje. Jedná se o zadání firmy STAPRO. Vzhledem k nutnosti detailního pochopení a rozsáhlého trénování různých jazykových modelů hodnotím zadání jako obtížnější. Zadání bylo splněno. |
Aktivita při dokončování |
Práce byla dokončena včas, student se mnou konzultoval finální verzi technické zprávy a mé připomínky řádně zapracoval. |
Publikační činnost, ocenění |
|
Práce s literaturou |
Student využíval konzultací zejména u zadavatele a samostatně vyhledával další informační zdroje. |
Aktivita během řešení, konzultace, komunikace |
Student své řešení pravidelně konzultoval zejména ve firmě STAPRO, o průběhu řešení mě informoval spíše sporadicky. Podle sdělení konzultanta však student pracoval po celou dobu zodpovědně a aktivně. |
Výsledný počet bodů navržený vedoucím:
85
Zobrazit víceZnámka navržená vedoucím: B
Výsledkem diplomové práce je dobré programové řešení, avšak technická zpráva je stručná a s nedostatky. Přesto, vzhledem k obtížnějšímu zadání, navrhuji hodnotit práci stupněm dobře (C).
Kritérium hodnocení |
Slovní hodnocení |
Body |
Rozsah splnění požadavků zadání |
Stupeň hodnocení: zadání splněno Zadání je splněno bez výhrad. |
|
Rozsah technické zprávy |
Stupeň hodnocení: splňuje pouze minimální požadavky Rozsahem je technická zpráva pod spodní hranici obvyklého rozmezí, avšak minimální požadavky splňuje. Zpráva má od úvodu po závěr 45 vysázených stran (celkově asi 60 normostran). I při menším rozsahu jsou jednotlivé kapitoly (až na dále popsané výjimky při návrhu a vyhodnocení) přiměřeně podrobné a poskytují dostatek informací k tématu a řešení práce. |
|
Prezentační úroveň technické zprávy |
Technická zpráva má logickou strukturu, kde poskytuje přehled současného stavu, popisuje návrh vlastního řešení a předkládá výsledky provedených experimentů. Oceňuji dobrou dokumentaci z přípravy dat a trénování modelů (kap. 4.3 a 4.4). Vytknout lze chybějící návrhové diagramy v popisu návrhu softwarové stránky řešení (kap. 4.6 a 4.7) a chybějící podrobnější vyhodnocení experimentů nad rámec pouhé prezentace výsledků (nyní jen příliš stručné vyhodnocení v kap. 6 "Závěr"). |
65 |
Formální úprava technické zprávy |
Po jazykové stránce je text technické zprávy bez vážnějších nedostatků, avšak obsahuje větší množství spíše typografických chyb (např. chybějící mezera na str. 14 dole; spojovníky místo pomlček, mezera kolem spojovníků na str. 25, spojená slova "nakaždou" a malé písmeno na začátku věty na str. 28 dole, aj.). |
70 |
Práce s literaturou |
Seznam literatury obsahuje 53 položek, z nichž podstatná část jsou odborné zdroje. Oceňuji, že rozsah i výběr studijních pramenů velmi dobře pokrývá řešenou problematiku. Je také dobře patrný způsob a rozsah použití uvedených zdrojů. Vytknout lze chybějící či příliš stručný popis jednotlivých položek seznamu literatury (např. pol. 42 či pol. 1 a 21), nejednotný formát (odkazy v pol. 10 a 11, pojmenování měsíců, aj.) a zejména celkovou absenci data citace u online zdrojů (vše, kromě pol. 14 a 49). Popsané nedostatky podstatně narušují srozumitelnost uvedených informací. |
65 |
Realizační výstup |
Realizačním výstupem je sada skriptů v jazyce Python pro přípravu datové sady, trénování modelů, přípravu vektorové databáze, a poskytování API rozhraní (tj. server) pro práci s natrénovanými modely. Dále student implementoval rozšíření pro editor Visual Studio Code pro dotazování nad modely pomocí zmiňovaného API rozhraní (tj. klient). Zdrojový kód je v rozsahu asi 4500 řádků, je dobře strukturován a dostatečně komentován. Z hlediska návrhu řešení oceňuji nápaditý přístup při přípravě trénovacích dat (anotace pomocí externích LLM). Řešení je funkční, ale odpovědi poskytované modely přes dané API nejsou často použitelné (a v technické zprávě vyhodnocení tohoto aspektu chybí) a občas jsou v jiném formátu něž předpokládá rozšíření pro editor (např. dotaz měl doplnit komentáře k zadanému kódu, ale vrátil úplně jiný kód, kterým rozšíření editoru přepíše kód původní a ten je tím ztracen). |
85 |
Využitelnost výsledků |
Výsledné programové řešení je dobré ověření konceptu, ale pro praktickou použitelnost by bylo potřeba lépe natrénovat jazykové modely. |
|
Náročnost zadání |
Stupeň hodnocení: obtížnější zadání Jedná se o obtížnější zadání -- problematika velkých jazykových modelů (LLM) a jejich využití při asistovaném vývoji software je poměrně nová, rozsáhlá a vysoce aktuální. |
|
Otázky k obhajobě:
- Proč byla použita databáze MySQL a ne v systému již existující databáze (Microsoft SQL server) nebo nějaká jednouživatelská databáze typu SQLite či jednoduchá NoSQL databáze? Je řešení s MySQL škálovatelné, jak píšete v kap. 4.6.4?
- Z kolika výsledků byly vytvořeny grafy k úspěšnosti testování v kap. 5.1, případně i dalších podkapitolách kap. 5?
Výsledný počet bodů navržený oponentem:
70
Zobrazit víceZnámka navržená oponentem: C
Důvod odložení zveřejnění
Zveřejnění této práce je odloženo v souladu s ustanovením § 47b zákona č. 111/1998 Sb. o vysokých školách a o změně a doplnění dalších zákonů (zákon o vysokých školách), ve znění pozdějších předpisů.
Odpovědnost: Mgr. et Mgr. Hana Odstrčilová