· 

ChatGPT und ich scheitern am Zeilenumbruch

Methoden
Automatisierung
Nico Litschke Photo

Nico Litschke • 17.11.2024 • 4 min

Kann ich mit ChatGPT Plus meine Produktivität im Engineering und Backoffice steigern? Mein Test zeigt: eher nicht. Wer akkurate Ergebnisse benötigt, kann kaum auf ChatGPT setzen. Ich zeige das anhand der Übersetzung einer Excel-Tapete.

icon toc

Inhalt

icon dropdown arrow

Das Mini-Problem: Excel-Tapete übersetzen

Um das Anliegen zu simulieren, habe ich meine Projekt-Historie verwendet: Eine wunderbar Ingenieurs-akribische Excel-Tapete, die auf Englisch übersetzt werden muss. „Klasse“, dachte ich, „das sollte für ein LLM Sprachmodell ein Klacks sein!“ Bis ich die erste Antwort von ChatGPT las:

Ausschnitt der ersten ChatGPT Ausgabe für die zu übersetzende Exceltabelle
Ausschnitt der ersten ChatGPT Ausgabe für die zu übersetzende Exceltabelle

Ok, geschenkt. Mein erster Prompt war unpräzise:

Erster Prompt in ChatGPT für die Übersetzung einer Excel-Tabelle
Erster Prompt in ChatGPT für die Übersetzung einer Excel-Tabelle

Ich ahnte Böses. ChatGPT wollte mir nicht die englische Übersetzung ausgeben. Stattdessen:

ChatGPT verweigerte die englische Übersetzung
ChatGPT verweigerte die englische Übersetzung

Nach weiterem verbalen Debuggen gestandt ChatGPT:

ChatGPT kann anscheinend nicht auf Übersetzungsdienste zugreifen
ChatGPT kann anscheinend nicht auf Übersetzungsdienste zugreifen

Also Sackgasse.

Der vermaledeite Zeilenumbruch!

Klartext übersetzen? Kein Problem. Tabellen mit Sonderzeichen? Katastrophe. Bei Datenmigrationen sind Sonderzeichen ein bekanntes Übel. Hier ein Semikolon, da ein Zeilenumbruch ‚\n‘, dort ein Pipe ‚|‘ (der Teufel!) und schon sind ganze Datensätze verhagelt. Meine Excel-Tapete war voll davon. So sah eine typische Zeile aus:

Eine Zeile aus meiner Projekt-Historie. Die Sonderzeichen und Zeilenumbrüche in einer Zelle verdaut ChatGPT sehr schlecht.
Eine Zeile aus meiner Projekt-Historie. Die Sonderzeichen und Zeilenumbrüche in einer Zelle verdaut ChatGPT sehr schlecht.

Zuerst brachte ich ChatGPT bei, wie es mit den Sonderzeichen umgehen sollte. Damit gab ChatGPT endlich ein „Ergebnis“ aus:

Ergebnis, nachdem ich ChatGPT instruierte, we es mit Sonderzeichen und Zeilenumbrüchen umgehen soll
Ergebnis, nachdem ich ChatGPT instruierte, we es mit Sonderzeichen und Zeilenumbrüchen umgehen soll

Das ist in etwa 40% akkurat. In den letzten vier Spalten fehlte Text. Viele der Zeilen konnte ChatGPT nicht auslesen. Vor allem aber hatte ChatGPT wild halluziniert. Porsche wurde zu Tesla, Bosch zu Toyota oder Automotive zu Aerospace. Es wirkte fast, als wolle ChatGPT die Tabelle ‚aufwerten‘ – leider ohne Rücksprache mit mir.

Ein zweites Problem war, dass mir ChatGPT die englische Übersetzung nicht als Excel-Tapete ausgeben wollte. Ich bekam sowas:

ChatGPT konnte die englische Übersetzung nicht in Excel überführen
ChatGPT konnte die englische Übersetzung nicht in Excel überführen

bis mir ChatGPT nach einigem verbalen Debugging sagte:

Fehlermeldung von ChatGPT, warum es keine englische Übersetzung in Excel schreibt
Fehlermeldung von ChatGPT, warum es keine englische Übersetzung in Excel schreibt

Ja, dumm von mir. Schlecht instruiert. Der typische Anfängerfehler bei Pointer-Programmierung, wenn der Pointer auf die falsche Speicherzelle zeigt. Da ChatGPT Python, Panda & Co. einsetzt, war mir klar, wie ich „prompten“ musste.

Prompts erinnern an Mikromanagement

Mit einigem verbalen Debugging entstand folgender Prompt:

Übersetze die angefügte Tabelle von Deutsch auf Englisch. Gehe wie folgt vor:
1.      Ersetze Sonderzeichen und Ausdrücke durch geeignete Platzhalter, z. B. „-“ durch $MINUS, „\n“ oder durch $NEWLINE
2.      Lade die Tabelle in einen ersten Dataframe "dt". Achte darauf, dass jede Zelle in Anführungsstriche „“ gewrappt wird
3.      Erstelle einen zweiten Dataframe "en" mit der gleichen Dimension wie der Dataframe "dt" 
4.      Lese den Inhalt der Zelle A1 des Dataframe "dt" aus und speichere sie in einer Variablen "translate" 
5.      Übersetze den Inhalt der Variable "translate" von Deutsch auf Englisch
6.      Schreibe den übersetzten Inhalt von "translate" in die Zelle A1 des Dataframe "en"
7.      Wiederholte die Schritte 1 bis 6 analog für alle nicht-leeren Zellen, beginnend mit der Zelle A2 im Dataframe „dt“
8.      Ersetze dann im Dataframe „en“ alle Platzhalter laut Schritt 1 wieder zurück zu den entsprechenden Sonderzeichen/Ausdrücken
9.      Stelle das Ergebnis als Klartext-Tabelle bereit
Halluziniere nicht. Erfinde keine Daten. Korrekte Übersetzung hat oberste Priorität.

Wenige Kaffee später stand in der Ausgabe:

ChatGPT-Ausgabe der Übersetzung nach detailliertem Prompt
ChatGPT-Ausgabe der Übersetzung nach detailliertem Prompt

Das entsprach einer Güte von etwa 45%. Wieder unvollständig. Vor allem aber weiterhin halluziniert. Komischerweise fehlten auch ganze Zeilen. Dazu ChatGPT:

ChatGPT-Fehlermeldung, warum es Inhalte auslässt
ChatGPT-Fehlermeldung, warum es Inhalte auslässt

Große Datenmengen sind der Zweck von LLM, oder? Daraufhin hat mir ChatGPT diesen Satz um die Ohren gehauen:

ChatGPT: Ausreden über Ausreden
ChatGPT: Ausreden über Ausreden

Das sagen Leute, wenn sie keine Ahnung haben; dies aber durch hohe Worte kaschieren wollen…

Taugt das für Engineering & Projekte?

Insgesamt ernüchternd und schade. In Engineering-Projekten haben wir unzählig viele solcher Daten, die ähnlich aussehen: Log-Dateien, Excel-Tapeten, DOORS, Rhapsody, Enterprise Architect, UMLet, APIS IQ, und und und. Klar, mit Datenbereinigung, Ausnahmebehandlungen und RegEx-Parsen bekommt man das hin. Diesen Aufwand wollte ich mit ChatGPT reduzieren. Dazu ChatGPT selbst:

ChatGPTs Selbsteinschätzung zur Datenbereinigung
ChatGPTs Selbsteinschätzung zur Datenbereinigung

Akzeptabel ist das nicht für Engineering oder anspruchsvollere Büroarbeit wie etwa Buchführung. Das Tool muss akkurate Ergebnisse liefern. Ich stelle mir vor, wie einfach ein Sicherheitsmechanismus entfällt. Das würde sicherlich noch auffallen. Was aber, wenn nur subtile Änderungen erfolgen, z. B. „16V“ zu „18V“ verfälscht werden? So ein unscheinbarer „Bitkipper“ sticht nicht unbedingt ins Auge. Die Folgen können aber katastrophal sein. Es sind schon Raumsonden auf dem Mars eingeschlagen, weil es einen Dokumentationsfehler der Längeneinheiten gab.[1]

Wer akkurate Ergebnisse benötigt, wird derzeit kaum mit ChatGPT arbeiten können.
Für solche nicht-funktionalen Anforderungen braucht es spezialisierte „Experten-KI“.

Eine weitere Fehlerquelle bin natürlich ich selbst. Ich lerne noch, was gute von schlechten Prompts unterscheidet und was ChatGPT verdauen kann.

Fazit

Mein Testlauf zeigt: Für die Datenverarbeitung ist ChatGPT noch ungeeignet, wenn es auf hohe Güte ankommt. Vermutlich braucht es eine ‚Experten-KI‘, die solche Aufgaben zuverlässig lösen kann. Wie sind Ihre Erfahrungen mit ChatGPT? Hätte ich meinen Prompt anders gestalten sollen? Glauben Sie, dass spezialisierte KI der nächste Schritt ist? Ich bin gespannt auf Ihre Meinungen!

Ihr, Nico Litschke

Endnoten

  1. Ein bekanntes Beispiel für die Folgen subtiler Fehler ist die Mars Climate Orbiter-Mission, vgl. Wikipedia (2024). Mars Climate Orbiter. Abgerufen am 18.11.2024: https://en.wikipedia.org/wiki/Mars_Climate_Orbiter

Titelbild: generiert mit DALL-E von OpenAI