Master's Thesis

Using an AI language model for the development of a Clinical Information System

Author of thesis: Ing. Vojtěch Jahoda

Acad. year: 2023/2024

Supervisor: doc. Ing. Radek Burget, Ph.D.

Reviewer: RNDr. Marek Rychlý, Ph.D.

Abstract:

This paper addresses the issue of the proper context of a project assistant for writing clinical information system code and training it to a specific project directory. I subsequently addressed this problem using Meta's Codellamac language model. This tool should make writing code more efficient and avoid repetition for mostly not-quite-knowledgeable programmers.

Keywords:

language model, artificial intelligence, copilot, assistant, clinical information system

Date of defence

18.06.2024

Date of publish

18.06.2027

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

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.

Topics for thesis defence

  1. 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?
  2. 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?
  3. Myslíte si, že je vaše řešení použitelné?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Information Systems and Databases (NISD)

Composition of Committee

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)

Supervisor’s report
doc. Ing. Radek Burget, Ph.D.

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.

Evaluation criteria Verbal classification
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ě.

Points proposed by supervisor: 85
Display more

Grade proposed by supervisor: B

Reviewer’s report
RNDr. Marek Rychlý, Ph.D.

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).

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání je splněno bez výhrad.

Rozsah technické zprávy

Evaluation level: 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í

Evaluation level: 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í.

Topics for thesis defence:
  1. 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?
  2. 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?
Points proposed by reviewer: 70
Display more

Grade proposed by reviewer: C

Reasons for publication postponement

Publication of the final thesis has been postponed in compliance with the provisions of Section 47b (4) of Act No. 111/1998 Coll., on the Higher Education Institutions and on amendments and supplements to other acts, as amended.