Forschung
Die Forschung an unserem Lehrstuhl basiert auf drei Säulen: 1) Das Verständnis von Softwaretechnik durch Daten aus Software-Repositories; 2) das Verständnis und die Verbesserung der Qualität von Modellen des maschinellen Lernens; und 3) die Anwendung von maschinellen Lernen.
Mining Software Repositories
Unser Lehrstuhl interessiert sich für die Sammlung und Analyse von Daten aus Software-Repositories. In unserer Forschung legen wir Wert auf Datenqualität und kombinieren oft automatische Datensammlung mit manueller Validierung und qualitativer Analyse. Ein wichtiger Aspekt unserer Forschung konzentriert sich auf das Verständnis von Fehlern: Wie entstehen sie, wie werden sie gemeldet und wie werden sie behoben? Die Analyse von Mustern hilft uns zu verstehen, wie der Entwicklungsprozess verbessert werden kann, um effizienter im Umgang mit den unvermeidlichen Softwarefehlern zu sein. Neben Fehlern betrachten wir auch den Einfluss statischer Analyse auf die Codequalität, die Verwendung von Softwaretests oder untersuchen, wie Datenschutz- und ethische Fragen gemeldet, diskutiert und gelöst werden. Darüber hinaus überlappen sich unsere Arbeiten direkt mit unseren Interessen im Bereich KI, indem wir ethische und Datenschutzfragen mit KI-Aspekten triangulieren und bewährte Verfahren von Q&A-Websites sammeln.
Qualitätssicherung für maschinelles Lernen und künstliche Intelligenz
Der Aufstieg des maschinellen Lernens von einem Forschungsthema zu einer wegweisenden Technologie für innovative Produkte bedeutet, dass wir Software für maschinelles Lernen anders betrachten müssen: Anstatt nur ein Werkzeug für Forscher zum Studium von Phänomenen zu sein, wird derartige Software jetzt auch mit dem Ziel eingesetzt, Softwareprodukte zu entwickeln. Dies erhöht die Anforderungen an die Qualität erheblich: Während ein Absturz in einem Forschungsprojekt ärgerlich sein kann, kann er für Unternehmen katastrophal sein oder sogar Menschenleben gefährden. Je nach Anwendung sind nichtfunktionale Eigenschaften wie Sicherheit, Leistung und Robustheit von entscheidender Bedeutung. In unserer bisherigen Arbeit haben wir uns hauptsächlich auf die Qualität von Bibliotheken für das maschinelle Lernen konzentriert und festgestellt, dass sie überraschend anfällig sind (z.B. gegenüber sehr großen Eingabewerten).
In unserer aktuellen Arbeit möchten wir die Fähigkeiten großer Sprachmodelle validieren. Wir haben bereits untersucht, wie gut solche Modelle Wissen in verschiedenen Bereichen verarbeiten können, um den Einfluss domänenspezifischer Daten auf das Training zu verstehen und wie gut ChatGPT im Vergleich zu Studenten Essays generieren kann, in der ersten groß angelegten Studie zu diesem Thema. Unser aktuelles Ziel ist ebenso wichtig wie ehrgeizig: Techniken zur Validierung von Fähigkeiten entwickeln (z.B. Arten des Denkens, Codierung von sprachlichen Aspekten), die Teile der neuronalen Netzwerke identifizieren, die diese Techniken codieren, und ihre kausale Verantwortung für diese Funktionalität validieren. Dies wird den Weg für die Segmentierung großer neuronaler Netzwerke von allgemeiner Verwendung in kleinere Netzwerke mit spezifischen Fähigkeiten ebnen und unser Verständnis davon, wie solche Technologien funktionieren, erhöhen.
KI-Anwendungen
Am Schnittpunkt von Repository-Mining und maschinellem Lernen haben wir die Anwendung von maschinellem Lernen (und anderer KI) auf Probleme der Softwaretechnik. Wir haben bereits an Themen wie nutzungsbasierten Softwaretests oder der Vorhersage fehlerhaften Quelltextes auf der Grundlage früherer Fehlermuster gearbeitet. Derzeit konzentrieren wir uns auf die Unterstützung von Softwareentwicklern durch Methoden der natürlichen Sprachverarbeitung (NLP). Zum Beispiel betrachten wir die Analyse gemeldeter Probleme (Fehler, Feature-Anfragen) und Anforderungen im Unternehmenskontext und bestimmen, ob (und wie) sie klassifiziert werden können, um den Typ zu verstehen, sie Teams zuzuweisen oder Ähnliches.
Unsere Arbeit in den KI-Anwendungen beschränkt sich nicht auf die Softwaretechnik: Während wir Softwaretechnik-Anwendungsfälle selbst verstehen und fördern, arbeiten wir auch oft mit anderen zusammen, um Probleme aus anderen Bereichen zu lösen (z.B. Aeroakustik, Bioinformatik). In solchen Kontexten bringen unsere Partner das Domänenwissen ein, und wir bringen die Datenanalyse und das Werkzeugbau-Know-how ein. Unsere Arbeit an solchen Problemen wird nicht von Benchmarking getrieben, sondern von Anwendungszielen: Wir beginnen damit, was für einen Anwendungsfall erforderlich ist. Unser Ziel ist nicht, ein bestimmtes Maß an Genauigkeit zu erreichen, obwohl ein gutes Modell natürlich wichtig ist. Stattdessen wollen wir verstehen, welche Modellqualitäten für einen Anwendungsfall wichtig sind und wie man messen kann, ob ein Modell zweckmäßig ist. Folglich sind die von uns angewandten Techniken vielfältig und reichen von dichtebasiertem Clustering über Random Forests bis hin zu großen Sprachmodellen wie RoBERTa. Solche Zusammenarbeiten sind für uns entscheidend, da sie uns helfen, unsere Arbeit zur Qualität des maschinellen Lernens zu gestalten: Wir erfahren direkt, was für andere wichtig ist, was sie von Werkzeugen für das maschinelle Lernen erwarten, und können geeignete Forschungsziele ableiten.