Inhalt
zur Navigation
MA: Entwurf und Entwicklung von Methoden zur sprachunabhängigen Auffindung und Extraktion von Log-Nachrichten aus Code-Repositories
Zielsetzung
Moderne Softwareentwicklung und -betrieb basieren auf dem Konzept der DevOps und werden durch CI/CD Pipelines unterstützt, welche üblicherweise die Bausteine Code – Build – Test - Release – Deploy – Verify – Monitor abbilden. Für jeden dieser Schritte gibt es zahlreiche Werkzeuge, zum Beispiel Jenkins, SonarQube, Maven oder Gradle. Alle diese Komponenten erzeugen Daten – Log-Nachrichten – mit aufschlussreichen Informationen über die Qualität der Softwareprogrammierung, Schwachpunkte beim Deployment oder Laufzeitfehler. Oft entstehen mehr als 100.000 Nachrichten pro Version und pro Update, die von den DevOps – meistens manuell und zeitaufwendig mit Werkzeugen wie grep oder awk – nach Fehlern untersucht werden. Eine signifikante Beschleunigung entsteht durch den Einsatz von AI4DevOps-Werkzeugen: KI-Modelle werden durch Beispieldaten von Open Source Projekten so trainiert, dass sie die Log-Nachrichten aus der CI/CD-Pipeline durchsuchen und jene Nachrichten präsentieren, welche vermutlich auf die schwerwiegenden Fehler hinweisen.
Die ausgeschriebene Masterarbeit setzt auf ein existierendes KI-Modell auf und soll ein Konzept und eine prototypische Implementierung für ein sprachunabhängiges Mining von Log-Nachrichten aus Software-Repositories umsetzen. Solche Code-Repositories (z.B. github) enthalten zahlreiche Open-Source-Projekte, die wertvollen Input für das Training von KI-Modellen liefern. Da die manuelle Suche und Kennzeichnung viel zu zeitaufwendig ist, sollen die in dieser Arbeit entwickelten Methoden den Prozess so automatisieren, dass die im Quellcode enthaltenen Log-Nachrichten (Dateiname und Zeilennummer) gefunden, extrahiert und in einer strukturierten Ausgabe gespeichert werden. Das Ergebnis wird dann für das Training von KI-gestützten Tools zur Erkennung von Anomalien und Incidents verwendet. Bestehende Methoden aus der natürlichen Sprachverarbeitung (NLP) sowie typische RegEx-Suchwerkzeuge dienen als Ausgangspunkt für die Analyse des Quellcodes. Die Qualität der Entwicklung soll im Hinblick auf Präzision, Recall und effiziente Verarbeitung bewertet werden.
Anforderungen
Kenntnisse über Softwareentwicklungsprozesse, verteilte Systeme, CI/CD, Python, maschinelles Lernen, DevOps-Entwicklungsmuster. Wünschenswert sind fortgeschrittene Python-Kenntnisse sowie Erfahrung in Pytorch/Tensorflow, Kotlin/Java
Beginn: ab sofort
Kontakt: Prof. Dr. Odej Kao (odej.kao@tu-berlin.de)