92 lines
16 KiB
TeX
92 lines
16 KiB
TeX
% !TeX spellcheck = de_DE
|
|
% !TeX program = xelatex
|
|
\documentclass{article}
|
|
\usepackage{./praktikumsbericht}
|
|
\setlength{\parskip}{0.075cm}
|
|
|
|
\begin{document}
|
|
\input{title}
|
|
\pagestyle{fancy}
|
|
\fancyhf{}
|
|
\fancyhead[L]{Jakob Renken}
|
|
\fancyhead[C]{Praktikumsbericht}
|
|
\fancyhead[R]{\today}
|
|
\fancyfoot[C]{\setmainfont{Times New Roman} \thepage}
|
|
\tableofcontents
|
|
\newpage
|
|
\section{Persönliches Interesse}
|
|
Ich habe mich für den Betrieb des IAMs entschieden, da das Gebiet der Informatik mich schon seit Langem begeistert. Zudem hat es als klinisches Institut die Möglichkeit, theoretische Forschung zu betreiben, dessen Ergebnisse leicht in den klinischen Alltag im UKE eingebunden werden können.
|
|
|
|
\section{Beschreibung des Betriebes}
|
|
Mein Praktikumsbetrieb, das Institut für angewandte Medizininformatik, gehört zum Universitätsklinikum Hamburg Eppendorf. Das UKE wurde in 1889 gegründet und vernetzt Medizin, Forschung und Lehre. Angestellt sind 16.100 Angestellte sowie 3.500 Studierende der Human- und Zahnmedizin sowie Hebammenwissenschaften. Das UKE zeichnet sich durch fortschrittliche Forschung aus und ist eine internationale anerkannte Institution \cite{ukeweb}. Das IAM besteht seit Anfang 2021 und zielt darauf, Krankheitsbekäm\-pfung zu verbessern indem, sie Daten zusammenführen, Werkzeuge für Ärzt:innen sowie Forscher:innen entwickeln und komplexe Analysen vereinfachen. Das Team besteht aus etwa 100 Angestellten in fünf Forschungsgruppen, welche sich mit den Gebieten der Bildverarbeitung, Onkologie, maschinellem Lernen, Sprachmodelle und Datenanalyse beschäftigen \cite{iamweb}.
|
|
|
|
So entwickelte z.B. die IAM Fachgruppe \textit{Knowledge Integration in Precision Medicine} das System MONOCLE, um individualisierte Tumorbehandlungen zu vereinfachen. Dies wurde erreicht indem das Programm modular gestaltet wurde mit Fokus auf die Effizienz bei der Dateneingabe, -verarbeitung und -ausgabe und durch das eliminieren von Freitextfeldern. Weiterhin ist das System gestaltet um die Patientendaten leicht zwischen relevanten Parteien auszutauschen. Dies ermöglicht es MONOCLE auch automatisch relevante Literatur zu finden. Das System wurde zudem als Open Source Software veröffentlicht \cite{riemann2025streamlining}.
|
|
|
|
\section{Informationen zum Berufsbild}
|
|
Als Teil der wissenschaftlichen Arbeit am UKE bietet das IAM verschiedene Möglichkeiten für Abschlussarbeiten an. Diese orientieren sich nicht nur an Medizinstudent:innen sondern auch an andere technische MINT Studiengänge wie Informatik, Physik, oder Ingenieurswesen. Oft werden Kenntnisse in der Python Programmiersprache vorgeschrieben, sowie Erfahrung mit Machine Learning, Datenanalyse und Sprachmodell Software erwünscht. Die Abschlussarbeiten behandeln verschiedene Fachgebiete, mit den Zielen die Behandelung, Datenanalyse oder Ausbildung in der Medizin zu verbessern. Zudem betreibt das IAM ein hauseigenes Entwicklungsteam, um für die Wartung und Entwickelung ihrer Software zu sorgen \cite{iamweb}.
|
|
|
|
\section{Eigene Tätigkeiten}
|
|
\subsection{Hintergrund}
|
|
Meine Arbeit am IAM war ein Anschlussprojekt zu der Masterarbeit welche durch die derzeitige Masterandin, Lilly Düsterbeck, der Fachgruppe verteidigt wurde. Oberthema der Masterarbeit war die Entwicklung der Lernplattform KiMed als eine Alternative zu den Crashkursen vor dem Medizinstudium, welche trotz ihres hohen Nutzen wenig genutzt werden, da sie wie reguläre Seminare und Lesungen am UKE gehalten werden. Für viele der Neustudierenden sind diese Kurse schwer zu erreichen, da sie möglicherweise noch nicht in der Nähe vom UKE wohnen oder keine Zeit haben, daran teilzunehmen. KiMed wurde, als eine Möglichkeit entwickelt individualisiert Neustudierenden durch Multiple Choice Questions (MCQ) auf einen ähnlichen Wissensstandpunkt zu bringen.
|
|
|
|
Für die Generierung der MCQ wurde ein neuer Ansatz entwickelt um diese akkurat und korrekt zu gestalten basierend auf dem Ansatz GPTSwarm \cite{zhuge2024languageagentsoptimizablegraphs}, in welchem Large Language Model (LLM) Agenten als Knoten in einem Graphen dargestellt sind und die Kanten zwischen den Knoten als die Übertragung von Informationen von Agent zu Agent. Hier bezeichnet ein Agent, einen Aufruf einer LLM um eine bestimmte Aufgabe zu erledigen, wie die Generierung von Fragen oder Korrektur nach Kriterien. Der resultierende Graph kann dann durch einen Optimierungsalgorithmus verbessert werden.
|
|
|
|
Der Ansatz, welcher in KiMed genutzt wurde, Node-Sampling (Knoten-Auswahl), war eine vereinfachte Version des GPTSwarm Ansatzes. GPTSwarm erstellt ein vollständigen Graphen, beim Node-Sampling jedoch wird von einem Vordefiniertem Satz an Knoten, also Agenten, ein Knoten gewählt (sampling), somit entsteht eine Kette an Agenten, welche eine MCQ generieren konnten, die dann durch weiter LLMs bewertet wurde. Anhand der Bewertung durch die LLMs entsteht ein Score für eine spezifische Konfiguration. Mit diesen Information kann dann ein Standard Optimierungsalgorithmus die Kette in der nächsten Generation verbessern. Es ist hierbei anzumerken, dass die Masterarbeit nicht öffentlich ist, daher kann ich leider keine quellen für meine Aussagen über KiMED und Node-Sampling geben. Alle Information über diese sind durch meine Konversationen mit der Autorin und durch das Lesen des Codes entstanden.
|
|
|
|
Moderne LLM basieren auf einem Ansatz des Transformers, welcher erstmals im Jahr 2017 von Google präsentiert wurde. Ein Transformer basiert auf dem Konzept der Aufmerksamkeit (auf englisch \enquote{attention}), hierbei werden Wörter oder Tokens als multidimensionale Vektoren encodiert, diese werden dann benutzt, um weitere Informationen des Textes erschließen, indem Aufmerksamkeit zwischen den Vektoren ausgeführt wird. Somit erhalten die Tokens mehr Informationen aus dem umliegenden Kontext und repräsentieren somit besser die eigentliche Bedeutung des Textes. Transformer eignen sich für die Übersetzung von Texten, wie im originalen Paper präsentiert, oder --- relevant für meine Arbeit --- für die Generierung von neuem Text mithilfe von generativen vortrainierten Transformern. Die Transformer Architektur eignet sich besonders für die massive Generierung von Daten, da sich Operationen wie Vektormultiplikation, welche für Aufmerksamkeit benötigt werden, mithilfe von besonderer Hardware sehr effektiv parallelisieren lässt. Transformer sind ein wichtiger teil vieler moderner Forschungsprojekte und spielen eine wichtige Rolle in mehreren Projekten im IAM nicht nur für die Sprachverarbeitung sondern auch in der Bildgebung \cite{vaswani2023attentionneed}.
|
|
|
|
\subsection{Eigene Ansätze}
|
|
In meiner Arbeit übernahm ich das Konzept der graphbasierten LLM Generierung, um medizinische multiple choice questions (MMCQ) zu beantworten. Hierfür nutzte ich den MedMCQA Datensatz, welche eine große Anzahl an realistischen MMCQ über verschiedene Themen wie Mikrobiologie, Psychiatrie, Radiologie, Anatomie u. v. m. enthält. Sowie die \enquote{ground truth}, hier die erwartete Antwort, durch welche ein objektiver Score berechnet werden konnte. Im Gegensatz zu KiMed, welches den Score durch weitere LLMs berechnete und somit keine ground truth besaß, da LLMs nicht deterministisch sind \cite{pmlr-v174-pal22a}. Das genutzte Sprachmodell war Qwen 2.5 14B Instruct 4bit da es eine gute Balance zwischen Performance und Antwortgenauigkeit darstellt \cite{yang2024qwen2technicalreport} \cite{qwen2.5}. Das Projekt wurde auf der Google Colab Plattform ausgeführt. Diese bietet eine Umgebung an, um mit der Python Programmiersprache mithilfe von kostenfreien --- aber zeitlich begrenzten --- Hardwarebeschleunigern wie Grafikkarten oder Tensor-Prozessoren zu verarbeiten, welche es mir Erlaubten das Qwen Modell auszuführen. Für die Beantwortung der Fragen wurde fünf Agenten genutzt, welche jeweils die vorherige Antwort erhielten, sowie die originale Frage und Antwortoptionen. Die fünf Agenten erhielten jeweils individuelle Aufgaben durch ihren Prompt, ein Text, welcher die Aufgabe und andere Informationen enthält. Ihre jeweiligen Aufgaben waren:
|
|
\begin{enumerate}[itemsep=-1.5mm]
|
|
\item Ausschließen von Ähnlichen Antworten,
|
|
\item erzeugen von Informationen,
|
|
\item ausschließen von unwahrscheinlichen Antworten,
|
|
\item begründen einer Antwort,
|
|
\item extrahieren der Antwort.
|
|
\end{enumerate}
|
|
Die angegebene Reihenfolge ist dieselbe mit welcher gearbeitet wurde.
|
|
Mit den Agenten und der Reihenfolge definiert, konnte nun eine Konfiguration getestet werden. Hierfür wurden meist zehn Fragen pro Konfiguration genommen, um den Score zu errechnen, Damit die Scores von verschiedenen Konfiguration vergleichbar sind, wurden immer die gleichen Fragen genutzt. Um festzustellen, ob das Zusammenketten von mehreren Agenten für das Beantworten von MMCQ effektiv ist und sich der höhere Verarbeitungs- und Zeitaufwand lohnt, entwickelte ich eine Baseline, die als Vergleich zu den erweiterten Methoden diente. Die Baseline bestand aus einem einzelnem Agenten, welcher die Aufgabe besaß, eine gegebene MMCQ zu beantworten, indem er den Index der korrekten Antwort wiedergibt.
|
|
|
|
Um mein Projekt zu erweitern, beschloss ich, den Node-Sampling Ansatz zu integrieren. Hierfür erhielt ich den Python Quelltext der Masterandin, welcher Node-Sampling implementierte. Diesen modifizierte ich weiter für meinen Anwendungsfall, da das Original sehr auf die Anwendung in KiMed spezialisiert war, indem ich meine Agenten restrukturierte, um in den Kontrollfluss des Quelltext zu passen. Die genutzten Agenten wurden im Prompt unverändert übernommen (s.O.). Jedoch wurde Agent \#5 von dem Optimieren ausgelassen, da dieser nur für das Scoring relevant war. Somit wurde dieser in Kombination mit Agent \#4 an das Ende aller Node-Sampling Ketten geschaltet. Damit war es möglich zu garantieren, dass alle Permutationen bewertbar waren. Die Tests wurden wieder über Google Colab ausgeführt und bestanden darin, den Node-Sampling Optimierungsalgorithmus solange wie möglich auszuführen und dann die Logdatei nach der besten Konfiguration zu durchsuchen.
|
|
|
|
\subsection{Ergebnisse}
|
|
\subsubsection{Node-Sampling}
|
|
Der implementierte Node-Sampling Ansatz lief für insgesamt fünf Stunden, in welchen zwölf Optimierungsiterationen liefen, welche je aus sechs Fragen bestanden. Eine Lernrate von 0.4 wurde genutzt. Diese gibt an, wie schnell \enquote{gelernt} wird, also wie viele Änderungen durch den Optimierungsalgorithmus durchgeführt werden. Ein zu hoher Wert beinhaltet das Risiko, ein Optimum zu überschreiten ein zu geringer Wert beinhaltet aber das Risiko, das die Optimierung länger braucht. Der Wert wurde von KiMed übernommen. Eine Länge von fünf Agenten wurde vorgegeben. Node-Sampling hat die Möglichkeit, einen Stopp-Knoten zu nutzen, mit welchem eine optimale Kettenlänge gefunden werden kann. Dieser wurde aber nicht genutzt, da dies das Optimieren aufgrund der vergrößerten Anzahl an Permutationen verlängern würde. Die am besten Scorende Konfiguration, welche durch Node-Sampling gefunden wurde, war eine Folge von drei Agenten zum Begründen einer Antwort (\#5 s.O.), ein Agent zum Ausschließen von unwahrscheinlichen Antworten (\#3 s.O.) gefolgt von einem weiten Agent zum Begründen. Diese Konfiguration erreichte eine Genauigkeit von 80\%. Da Node-Sampling aber sehr Zeitintensiv ist, war es nicht möglich für mich, ein Maximum für das Optimieren zu finden. Daher ist es sehr wahrscheinlich, dass es bessere Konfigurationen gibt. Ebenso sind sechs untersuchte Fragen nicht Repräsentativ für den gesamtem Datensatz.
|
|
\subsubsection{Leistung verschiedener Ansätze}
|
|
Die zuvor präsentierten Ansätze werden anhand der prozentualen Anzahl der korrekt beantworteten Fragen verglichen. Der Baseline Ansatz stellte die Schlechteste Leistung mit nur 56\% Genauigkeit dar, gefolgt vom menschlich verfassten Ansatz, welcher mit 60\% abschnitt. Die Konfiguration, welche durch Node-Sampling erreicht wurde, war mit einer Genauigkeit von 80\% deutlich besser. Dafür brauchte diese Konfiguration eine deutlich längere Zeit, um eine Frage zu beantworten. Diese Ergebnisse sind in Abb. \ref{fig:perf} zusammengefasst.
|
|
\subsubsection{Leistung in verschiedenen Themen}
|
|
Der Datensatz lieferte zu jeder frage ein Thema, welches wurde genutzt wurde um den menschlich verfassten Ansatz weiter zu bewerten, indem nach ausgewählten Themen gefiltert wurde. Hiermit konnte ein Score für das jeweilige Thema errechnet werden, mit welchem zum Beispiel Wissenslücken im genutztem Model erkannt werden konnten.
|
|
|
|
Auffällig in den Ergebnissen war die Genauigkeit des Ansatzes in dem Themengebiet der Gynäkologie und Geburtshilfe, bei welchem alle Fragen korrekt beantwortet wurden. Dafür wurde in den Themengebieten der Mikrobiologie und Radiologie nur 40\% der Fragen korrekt beantwortet. Die Ergebnisse sind weiter in Abb. \ref{fig:categories} aufgeschlüsselt.
|
|
\subsection{Andere Tätigkeiten}
|
|
Über meine Arbeit hielt ich auch eine Präsentation von zehn Minuten vor den Mitgliedern meiner Fachgruppe.
|
|
Außerdem nahm ich in meiner Zeit am IAM mehrmals an Meetings teil in welchen neue Wissenschaftliche arbeiten diskutiert wurden (Journal-Clubs), sowie an einer Präsentation über die Zulassung von medizinischen Geräten.
|
|
|
|
\section{Fazit}
|
|
Durch das Praktikum am IAM habe ich mehrere Erkenntnisse über meine Arbeitszukunft sowie meinen eigenen Schwächen und Stärken erhalten können. Hauptsächlich gelang es mir durch das Praktikum Einsichten in den Sektor der Forschung zu erhalten: so konnte ich etwa die Verteidigung eine Masterarbeit mitverfolgen, einen Journal Club besichtigen und bei den Vorstellungen von Anträgen in einem Auswahlkolloquium teilnehmen. Diese Einsichten verstärkten mich darin, in diesem Sektor arbeiten zu wollen. Weiterhin erlaubte mir der hybride Homeoffice Ansatz des IAMs zu erkennen, dass die Struktur eines Büros mich in meiner Produktivität stärkt. Während ich aus dem Homeoffice arbeitete, bemerkte ich das Nachlassen meiner Aufmerksamkeit, da mir eine feste Einteilung von Arbeit und Freizeit fehlte. Einen teil des Aufmerksamkeitsverlustes ist möglicherweise mit dem verändertem Umfeld zu begründen, da ich in der Wohnung meiner Schwester wohnte.
|
|
|
|
Ich konnte auch erkennen, wie wichtig das frühe Etablieren einer Baseline bei Forschungsprojekten ist. Hätte ich dies rechtzeitiger getan, wäre es möglich gewesen, dass die menschlich verfasste Agenten Konfiguration besser hätte scoren können, da ich früher Probleme mit dieser erkannt hätte.
|
|
|
|
Ich betrachte mein Praktikum beim IAM sehr positiv. Ich erlebte eine angenehme Arbeitsatmosphäre und bin zufrieden mit meiner Arbeit und dem neu erlangten Wissen.
|
|
Mir hat die Zusammenarbeit mit den äußerst aufgeschlossenen und hilfsbereiten Kollegen sehr viel Freude bereitet. Meine Fragen wurden stets bereitwillig beantwortet. Die Unterstützung im Team war mir eine große Hilfe.
|
|
\newpage
|
|
\section{Anhang}
|
|
\subsection{Abbildungen}
|
|
\begin{figure}[h]
|
|
\vspace{-4cm}
|
|
\includegraphics[bb=0 0 640 480, height=12cm]{images/correct.png}
|
|
\caption[Leistung präsentierter Ansätze]{"Vergleich der Leistung von präsentierten Ansätzen. Baseline und Human Authored wurden mit je 25 Fragen evaluiert Node Sampling mit zehn. Diese Abbildung wurde angepasst aus meiner Präsentation am Institut entnommen."}
|
|
\label{fig:perf}
|
|
\end{figure}
|
|
|
|
\begin{figure}[H]
|
|
\vspace{-4cm}
|
|
\includegraphics[bb=0 0 552 587, height=14cm]{images/topics.png}
|
|
\caption[Leistung aufgebrochen nach Themen]{"Vergleich der Leistung vom menschlich verfassten Ansatz in verschieden Themen. Evaluiert wurde mit jeweils zehn Fragen. Die Themen sind eine Auswahl aus dem Datensatz. Diese Abbildung wurde angepasst aus meiner Präsentation am Institut entnommen."}
|
|
\label{fig:categories}
|
|
\end{figure}
|
|
\subsection{Literaturverzeichnis}
|
|
\printbibliography[heading=none]
|
|
%Bilderverzeichniss
|
|
%Praktikumsbestätigung
|
|
\end{document} |