Systems Engineering Trends

Jede Woche Neuigkeiten aus der Welt des Systems Engineering

Künstliche IntelligenzModellierung & MBSE

MBSE mit ChatGPT: Eine (wissenschaftlicher) Erfahrungsbericht

Über gehypte Technologien wie generative KI wird eigentlich in letzter Zeit viel zu viel geschrieben (vieles davon heiße Luft). Doch die Veröffentlichung in einem Journal (Software and Systems Modeling bei Springer) ließ mich hoffen, dass die Autoren etwas Substanz für den Diskurs liefern würden. Dem ist auch so. Die Autoren untersuchen über den Einsatz von ChatGPT in der Softwaremodellierung, wie nützlich und ausgereift die Technologie bereits ist. Die Autoren kommen zu einem ähnlichen Schluss wie ich: Es gibt noch eine Menge zu tun!

Der Artikel

Konkret geht es um den Artikel On the assessment of generative AI in modeling tasks: an experience report with ChatGPT and UML. Die Autoren sind Forscher der Universität von Malaga. Einer der Autoren hat im MoLa-Blog eine englischsprachige Zusammenfassung verfasst.

Die Autoren setzen sich mit insgesamt 8 Fragen auseinander. Ähnlich wie in meiner Arbeit setzen die Autoren auf PlantUML für die Visualisierung.

Die Autoren führten Experimente in zwei Phasen durch. Zunächst machten sie sich mit ChatGPT vertraut und loteten die Möglichkeiten und Grenzen aus. Eine interessante Erkenntnis war, dass ChatGPT nicht sonderlich gut mit abstrakten Entitäten umgehen kann. Ein Modell für ein Fahrzeug, dessen Räder und Motor zu erstellen fällt ChatGPT wesentlich leichter als eine abstrakte Beschreibung eines Systems, das aus den Elementen A, B und C besteht.

Die zweite Phase hatte zum Ziel, Antworten zu den konkreten Forschungsfragen zu finden. Dazu erstellten die Autoren insgesamt zehn Übungsbeispiele mit Musterlösungen. Ziel war es dann, ChatGPT dazu zu bringen, als Ergebnis die Musterlösung zu produzieren.

1. Erzeugt ChatGPT syntaktisch korrekte UML-Modelle?

Ja — zumindest ziemlich häufig. Allerdings scheint die Qualität des Ergebnisses von der gewählten Sprache abzuhängen. Neben PlantUML setzten die Autoren USE ein. Generiertes PlantUML hatte wesentlich weniger syntaktische Fehler als generiertes USE.

2. Erzeugt ChatGPT semantisch korrekte UML-Modelle?

Bevor wir diese Frage beantworten können müssen wir uns überlegen, was semantisch korrekt überhaupt bedeutet. Die Autoren meinen damit, dass das Modell die Absicht des Autoren widerspiegelt. Das Ergebnis ist ernüchternd: Oft erzeuge ChatGPT Modelle, die aus Modellierungs- oder Domänensicht wenig Sinn ergeben. Das musste ich bei meinen Experimenten auch feststellen.

Weiterhin kämpften die Autoren mit nicht wiederholbaren Ergebnissen. Das allerdings ist darauf zurückzuführen, dass sie den Chatbot eingesetzt hatten und nicht eine API zu GPT. Über die API lässt sich wesentlich genauer einstellen, wie stark der Zufall die Antwort beeinflussen darf („Temperature“). Bei ChatGPT liegt der Wert bei 0,7. Für meine Experimente hatte ich die API genutzt und den Wert auf 0 gesetzt, um so viel Determinismus wie möglich zu haben.

Über die API lässt sich der Determinismus von GPT wesentlich erhöhen, im Gegensatz zu ChatGPT

Wie sensitiv ist ChatGPT bezüglich Domäne und Kontext?

Beide Punkte haben einen erheblichen Einfluss auf das Ergebnis. Wie bereits erwähnt, erzeugt ChatGPT gute Modelle für bekannte Domänen und schlechte Modelle für abstrakte oder unbekannte Domänen. Weiterhin sind die in einem längeren Chat-Kontext aufgebauten Modelle in der Regel besser. Die Autoren hatten gute Erfahrung damit, im ersten Schritt ein vergleichsweise kleines Modell generieren zu lassen und dieses dann im Dialog mit ChatGPT auszubauen.

Wie groß dürfen die Modelle sein?

ChatGPT hat ernsthafte Probleme mit Modellen, die aus mehr als 10-12 Klassen bestehen. Skalierung ist also ein erhebliches Problem.

Welche Modellierungskonzepte funktionieren gut, welche nicht?

ChatGPT erkennt Assoziationen recht gut. Auch Aggregation, Komposition sowie Vererbung funktionieren einigermaßen. Da die Modelle sehr klein sind, ist dies Ergebnis mit Vorsicht zu genießen.

Andere Konzepte erfordern explizite Angaben im Prompt. Dies trifft z auf Aufzählungen, Mehrfachvererbung und Constraints. Noch schlechter konnte ChatGPT mit Abstraktion umgehen.

ChatGPT hat große Probleme mit Abstraktion

Wie stark beeinflusst die Formulierung der Eingabe das Ergebnis?

Wie erwähnt hatten die Autoren mit Variabilität durch die recht hohe voreingestellte Temparatur (0,7) zu kämpfen. Dementsprechend erzeugte ChatGPT selbst bei der gleichen Eingabe oft unterschiedliche Ergebnisse. Die Autoren liefen auch hin und wieder in Endlosschleifen. In solchen Situationen beendeten die Autoren den Dialog und begannen einfach einen neuen.

Wie beeinflussen Formulierungsstrategien das Ergebnis?

Wie zu erwarten, ist die Formulierung der Anfrage an ein KI-System von hoher Bedeutung. Insofern ist hier gar nicht die Frage „ob“, sondern „wie extrem“ die Formulierung sich auf das Ergebnis auswirkt. Die Autoren haben eine Reihe von Strategien entwickelt. Dazu gehört das iterative Aufbauen eines Modells, der Umgang mit Variabilität und die Entscheidung, ab welchem Punkt lieber ein neuer Dialog begonnen werden sollte.

Die Formulierung der Eingabe für KI-Systeme ist so wichtig, dass es dafür inzwischen eine eigene Berufsbezeichnung gibt: Prompt Engineer

Wie sensibel ist ChatGPT bezüglich der gewählten Notation?

Wie bereits erwähnt, funktioniert das System besser mit PlantUML als mit USE. Die Autoren experimentierten auch mit OCL, wofür auch die Ergebnisse oft fehlerhaft sind.

Dieses Ergebnis ist eigentlich nicht sonderlich überraschend: Schließlich wurde GPT mit der Information im Internet trainiert, und dort finden wir wesentlich mehr PlantUML-Modelle als USE-Modelle oder OCL-Fragmente.

SysML v2 wurde mit einer eigenen Textnotation spezifiziert, die für die Ausgabe natürlich perfekt geeignet wäre. Da das Internet dazu allerdings so gut wie keine Beispiele bereitstellt, können wir zumindest heute diesen Weg vergessen.

Fazit

Die Autoren sehen Potential für ChatGPT, Aktivitäten im MBSE zu unterstützen. Doch allein schon wegen des Skallierungsproblems sprechen die Autoren von „Modell-Fragmenten“ und nicht von Modellen. In dieser Rolle kann das System Modellierer unterstützen, um Lösungsansätze für bestimmte Situationen zu finden.

Die Autoren weisen auch auf die Möglichkeit der Testfallgenerierung aus Modellen hin, auch wenn sie diesen Weg nicht explizit evaluiert hatten. Persönlich bin ich hier allerdings skeptisch: In dem Moment, wo wir ein Modell haben, können wir auch ohne KI Testfälle generieren. Für diese Aufgabe gibt es auch schon eine Menge Werkzeuge.

Am vielversprechendsten bewerten die Autoren den Einsatz in der Bildung, zumindest heute. Ein KI-System kann Studierende beim Lernen unterstützen, Feedback geben, Modelle bewerten usw.

Eines ist klar: Generative KI, wie ChatGPT, kann MBSE-Aktivitäten unterstützen. Sicherlich gibt es hier auch eine „Killer-App“, die in den nächsten Jahren den Markt umkrempeln wird. Wann dies geschieht und welches Unternehmen hier als erstes Erfolge verzeichnen wird, wird die Zeit zeigen.

Michael Jastram

Creator and Author of SE-Trends