ChatGPT spricht INTERLIS – Erste KI-assistierte Modellprüfungen

Nachdem wir letzte Woche mit GPT erste Modellierungen durchgeführt haben, testen wir heute ChatGPT im Zusammenhang mit der syntaktischen Prüfung von INTERLIS 2 – Modellen. Wir werden ihm also Modelle vorlegen, welche Fehler in der Syntax enthalten und schauen, ob sie gefunden und wie sie korrigiert werden. Dazu arbeiten wir mit dem GPT-4 Modell über ChatGPT.


Ein Kontext-Boost zu Beginn

Beim sog. «Prompting» mit ChatGPT empfiehlt es sich, zu Beginn den Kontext der Session etwas abzustecken. Das kennen wir auch aus Gesprächen im realen Leben. Auch da ist es nicht falsch, dem Gegenüber zu Beginn eines Gesprächs mitzuteilen, worum es gehen soll, und was die Erwartungen sind. Diesen Kontext übermitteln wir ChatGPT in einem initialen Prompt, der so grundsätzliche Inhalte umfasst, wie

  • dass wir nun gerne mit ihm INTERLIS 2 – Modelle auf deren Syntax prüfen wollen,

  • er sich doch bitte mit dem Referenzhandbuch auseinandersetzen soll,

  • und wir es mögen, wenn wir eine Zusammenfassung der gefunden Fehler kriegen und er auch das Modell laufend korrigieren soll.

In diesem Zusammenhang bieten wir ChatGPT an, das von geostandards.ch / Stefan Henrich «digitalisierte» Referenzhandbuch zu INTERLIS 2.4 unter https://geostandards-ch.github.io/doc_refhb24 zu verwenden.

Der Beginn des Initial-Prompts mit Hinweisen zur beginnenden Session und den Erwartungen zur «Zusammenarbeit». Wir arbeiten noch an der Verfeinerung dieses Initial-Prompts und bilden daher nicht den kompletten Text ab.

Auszug aus dem Chat-Protokoll zur Modell-Prüfung

Im nun folgenden Chat übergeben wir ChatGPT das zu prüfende Modell und erhalten die Hinweise zu den festgestellten Mängeln. Wir zeigen hier die wichtigsten Aufforderungen und Antworten.

Fazit: Potential als Compiler und bereits jetzt eine hilfreiche Assistentin für syntaktische Validierungen

Diese ersten Tests zeigen das eindrückliche Potential für syntaktische Validierungen während der Modellierungsarbeit, wie sie heute mit dem Compiler gemacht werden. In unseren (bisher wenig systematischen) Tests wurden rund 80-90% der Mängel entdeckt und korrekt bzw. sinnvoll behoben. Verschiedene Aspekte – wie beispielsweise der Umgang mit referenzierten Modellen – werden von GPT funktionell nicht abgedeckt. In den Antworten sind zudem auch stets «Fantasie-Mängel» mit dabei, mehr oder weniger sinnvolle Korrekturvorschläge für Nicht-Mängel oder aber auch gänzlich sinnlose Hinweise, wie der nebenstehende:

ChatGPT zeigt sich aber offen für Kritik und korrigiert die Antwort umgehend:

ChatGPT liefert nicht die gleichen deterministischen Resultate wie bestehende Syntaxprüfungen, dazu ist das Sprachmodell zu dynamisch. Anhand der Fehler in den Hinweisen kann das Modell aber weiter trainiert werden. Wir lassen GPT über unmittelbares Feedback davon wissen und übernehmen diese Aspekte aktuell in den initialen Prompt.

ChatGPT ist in der aktuellen Version eine hilfreiche Unterstützung beim Korrigieren von syntaktischen Modellfehlern und übernimmt als charmante Assistentin Aufgaben des teilweise durchaus forsch antwortenden INTERLIS Compilers.

Nachdem nun die Erwartungen und Rahmenbedingungen abgesteckt sind, meldet uns ChatGPT seine Bereitschaft für INTERLIS:




Dass er «Interlis» nicht in Grossbuchstaben schreibt, stört uns und das melden wir ihm gleich zu Beginn.



Ich übermittle einen Modellausschnitt mit drei Fehlern (markiert mit “<----”) und fordere ChatGPT zur Korrektur auf:

CLASS Hydrologische_Einzugsgebiet (ABSTRACT) =
  Geometrie : MANDATORY GeometryCHLV95_V1.Area;
  objectid : MANDATORY 0 . 999999;        <---
END Hydrologische_Einzugsgebiet;

CLASS Einzugsgebiet_gross
EXTENDS Hydrologische_Einzugsgebiet =
END Einzugsgebiet_gross;

CLASS Einzugsgebiet_klein
EXTENDS HydrologischeEinzugsgebiet =      <---
END Einzugsgebietklein;                   <---

CLASS Einzugsgebiet_mittel
EXTENDS Hydrologische_Einzugsgebiet =
END Einzugsgebiet_mittel;

In der Antwort sehen wir, dass ChatGPT alle drei Fehler entdeckt und richtig korrigiert (und das Modell wie aufgefordert korrigiert retourniert).

Eine positive Rückmeldung scheint angebracht, kommt auch bei KI gut an.

Gehen wir eine Stufe weiter und testen das Wissen im Zusammenhang mit Modell-Referenzierungen und Wertebereichen. Das zu testende Modell enthält einen Mangel:
Bei einer Typen-Referenz fehlt das Präfix auf das qualifiziert importierte Modell

IMPORTS QUALIFIED CoordSys;
TOPIC T1 = REFSYSTEM BASKET BCoordSys ~ CoordsysTopic <---
OBJECTS OF GeoCartesian2D: CHLV95 OBJECTS OF GeoHeight: SwissOrthometricAlt;

GPT-4 findet den einen Mangel gemäss Antwort (1) tadellos, bemängelt aber in Antwort (2) eine Wertebereichsverletzung von zwei Koordinatenbereichen, welche eigentlich nichts miteinander zu tun haben:

Coord2 = COORD 2460000.000 .. 2870000.000 [INTERLIS.m] {CHLV95[1]}, 1045000.000 .. 1330000.000 [INTERLIS.m] {CHLV95[2]}, ROTATION 2 -> 1;

MultiCoord2D = MULTICOORD
  2460000.000 .. 2870000.000 [INTERLIS.m],
  1045000.000 .. 1310000.000 [INTERLIS.m],
  ROTATION 2 -> 1;

 
Oliver GrimmInterlis