„Es bleibt spannend“ waren die Schlussworte, als ich vor ein paar Wochen von meinen ersten Erfahrungen mit GPT-3.5 berichtete. Ich hatte darüber geschrieben, dass ChatGPT möglicherweise zu einem neuen Partner bei der Arbeit werden kann.

Tatsächlich bot sich mir kurz darauf die Gelegenheit, GPT-4 in einem Projekt zu verwenden.

Der Auftrag

Ein Kunde hatte eine Anleitungssammlung von einem Zulieferer bekommen. Diese Anleitungen waren vermutlich in spanischer Sprache erstellt und später ins Englische übersetzt worden. Zur genaueren Historie der Anleitungen konnte ich nicht viel mehr als das in Erfahrung bringen. Das spanische Original ist nicht mehr vorhanden.

Nun sollten die Anleitungen in kurzer Zeit in Deutsch neu erstellt werden und anschließend in weitere Sprachen übersetzt werden. Ich benötigte also für die weitere Bearbeitung zunächst eine Übersetzung des aktuellen Standes.

Um es kurz zu machen: Der englische Stand war nicht gut. Weder das Anleitungspaket noch die einzelnen Anleitungen haben einen klaren roten Faden, sie sind unstrukturiert und zudem redundant und widersprüchlich. Zum Beispiel findet man technische Daten und Katalogdaten zur Bestellung im Text der Anleitungen verstreut.

Die gute Handwerkskunst des Technischen Redakteurs war den Autoren wohl nicht bekannt. „Ich arbeite gut und gerne im Satzbau“ konnte keiner der Autoren mit gutem Gewissen sagen.

Projektplanung

Typischerweise übersetzt ein Muttersprachler in eine Zielsprache.

Da nun aber die deutsche Anleitung unter Zeitdruck komplett neu aus dem vorhandenen Material erstellt werden musste, wäre es doch sinnvoll, wenn wir nicht auf die Übersetzung der schlechten Ausgangstexte ins Deutsche warten müssten.

So kam mir der Gedanke, es mit künstlicher Intelligenz (KI) zu versuchen. Natürlich nach Rücksprache mit dem Auftraggeber und mit seiner Zustimmung.

Und wäre es nicht gut, wenn die KI den Text bereits verbessern könnte?

Die Vorteile überzeugten: Wir konnten sofort mit der Neuerstellung beginnen und zudem Übersetzungskosten einsparen.

Wie erkläre ich‘s dem Kinde?

Man kann ChatGPT etwas erklären. Diese Erfahrung habe ich privat in einem anderen Kontext bereits mit GPT-3.5 gemacht. Ich hatte ChatGPT gebeten, eine Gitarrentabulatur mit den Noten-Benennungen zu beschriften. Bei einer Gitarrentabulatur werden die Griffpositionen mit Zahlen dargestellt. Die Noten dazu benennt man mit Buchstaben.

Zunächst hatte ich ChatGPT gefragt, ob es mit Musiknoten umgehen kann. „Selbstverständlich“, wurde mir daraufhin versichert. Dass es ChatGPT nicht an „Selbstbewusstsein“ mangelt, wissen wir ja bereits.

Also habe ich eine Tabulatur hochgeladen und ChatGPT gebeten, anstelle der Zahlen die passenden Noten einzusetzen. Das hat erst gar nicht funktioniert. Mir wurde die Tabulatur ordentlich gesetzt wieder ausgegeben.

In der nächsten Anweisung habe ich gesagt, dass das keine Noten sind, sondern unverändert die Tabulatur. Daraufhin hat es mir wieder die Tabulatur ausgegeben und mir geraten eine Spezialsoftware zu verwenden.

Ich dachte, „wer wird denn so schnell aufgeben?“. Ich habe nun ein Beispiel vorgegeben und danach tatsächlich Notenbezeichnungen bekommen, aber leider alle falsch. Selbst mein Beispiel hat ChatGPT falsch verändert wieder ausgegeben.

Danach habe ich nochmal korrigiert und es wurde besser.

Zugegeben, das Ergebnis war bis zuletzt nicht wirklich zu gebrauchen, der Versuch lieferte mir aber folgende wertvolle Erkenntnis: Man kann ChatGPT etwas erklären und das Ergebnis dadurch verbessern.

Pre-Training statt echtem Lernen

Man muss wissen, dass ChatGPT nicht wirklich etwas dazu lernt, wie oft behauptet wird. Es gibt auch keine „Datenbank“, die Wissen ansammelt. Tatsächlich ist die Länge eines Gesprächs („Chat“) mit ChatGPT begrenzt und in einem neuen Chat ist alles vergessen, was vorher erklärt wurde.

Die KI basiert auf einem neuronalen Netz und dieses wird so lange mit Dateneingaben und Rückmeldungen auf Ausgaben trainiert, bis es gut genug funktioniert. Danach bleibt der Zustand fixiert.

GPT-4 statt GPT-3.5

Im März 2023 wurde mit GPT-4 die neue Generation von ChatGPT vorgestellt, das gegenüber GPT-3.5 mit enormen Weiterentwicklungen aufwarten konnte.

In einem Zeitungsartikel hatte ich gelesen, dass GPT-4 beispielsweise nun auch Radio moderiert. Es gibt einen Radiosender, in dem ChatGPT 24 Stunden am Tag moderiert und die Musik auswählt. Ein menschliches Team beobachtet, forscht und greift im Notfall ein. Die Gesprächsthemen und Musikquellen sind dabei über bestimmte Vorgaben eingegrenzt.

Das kann GPT-3.5 sicher nicht.

Also wurde beschlossen, es statt mit GPT-3.5 direkt mit GPT-4 zu versuchen. GPT-4 ist allerdings nicht kostenfrei und muss abonniert werden.

Im Nachhinein wurde klar, dass es die richtige Entscheidung war, GPT-4 zu verwenden. Irrtümlich bei GPT-3.5 abgesetzte Anfragen wurden normalerweise nicht verstanden. Inhalt und Form der Ergebnisse entsprachen dann nicht den Anforderungen.

Zielsetzung

Es wäre sehr ineffizient, müsste man bei jeder Anfrage wieder bei Null anfangen und ChatGPT erklären, was es tun soll. Das Stichwort ist „Prompt Engineering“, auch „Prompting“ genannt. Ein Prompt ist die Eingabe einer Anweisung an die KI. Diese Anweisung muss dabei so eindeutig sein, dass die KI das gewünschte Ergebnis liefern kann.

Dazu werden die Anweisungen kontinuierlich verbessert.

Für den aktuellen Auftrag verfolgte ich gleichzeitig zwei Ziele: Zum Einen die Optimierung der englischen Ausgangstexte hinsichtlich ihrer Verwendung in Anleitungen. Und zum Anderen die Übersetzung der optimierten englischen Ausgangstexte in deutsche Zieltexte.

Um Ausgangs- und Zieltexte besser vergleichen, kontrollieren und bewerten zu können, habe ich eine HTML/CSS-Seite vorbereitet, in der ich die zugehörigen Textpassagen nebeneinander eintragen konnte.

Nachfolgend beschreibe ich, wie ich einen Prompt aufgebaut habe, der funktioniert. Das hat selbstverständlich nicht auf Anhieb funktioniert, aber Schritt für Schritt wurde es besser. Ich habe dazu viele Beispiele gegoogelt und die Strukturen der Beispiele analysiert. Daraus konnte ich ein paar „How-to-go“-Regeln ableiten, die ich hier kurz beschreibe.

Prompting

Man kann GPT-4 Rollen zuweisen. Die Rollen definieren, wie es antworten soll, wie die Sprache sein soll und weiteres.

Zum Beispiel so:

I want you to act as a linux terminal.
I want you to act as a math teacher.
I want you to act as an aphorism book.

Oder eben so:

I want you to act as a technical writer and subsequently as a translator.

Anschließend habe ich erklärt, was ich GPT-4 vorgebe und danach was es damit machen soll:

I will give you an English text.
Revise the English text so that it can be used in a manual and translate it into German.
Output the edited instructions and the translation in an HTML table.

[

]

Der zu bearbeitende Text muss dabei von den Anweisungen deutlich getrennt werden. Hierfür werden die eckigen Klammern als Kennzeichnung verwendet. Dabei ist wichtig, dass die eckigen Klammern in eigenen Zeilen stehen, um die Verständlichkeit für GPT-4 zu erhöhen. Anstelle der drei Punkte steht dort dann der zu bearbeitende Text.

Dieser einfache Prompt funktioniert bereits, aber das Ergebnis ist formal und strukturell nicht immer gleich. Ich erhielt beispielsweise mal eine vollständige HTML-Datei, mal nur die HTML-Tabelle; mal stand der Text komplett in einer Tabellenzelle, mal nur ein Satz oder Absatz. Das ist sehr unpraktisch für die weitere Verwendung der Ausgabe. Es müssen also Regeln vorgegeben werden. Wichtig dabei ist, dass die einzelnen Regeln deutlich voneinander getrennt werden, hier separiert durch Spiegelstriche am Zeilenanfang:

Output the edited instructions and the translation in an HTML table with the following specifications:
– Output only the HTML table.
– Start with the „table“-tag.
– The table should have a header row and only one other row.
– Separate all paragraphs with a suitable HTML-tag, but don’t use „td“-tag for separating.
– Put the edited instructions in column 1.
– Put the translated text in column 2.

[

]

Nun ist das Ergebnis immer gleich strukturiert.

Zuletzt können noch konkrete Vorgaben für die Übersetzung gemacht werden, zum Beispiel terminologische Festlegungen:

– Translate „the escutcheon“ as „der Beschlag“.
– Translate „recoil spring module“ as „Drückerstift-Federmodul“.
– Translate „spindle“ as „Drückerstift“.
– Translate „portable programmer“ as „Portable Programmer“.

Dieser Prompt ist als Ganzes bereits kompliziert. Der abschließend von uns verwendete Prompt war noch deutlich länger und enthielt viele weitere Spezifikationen. Dennoch wurde er von GPT-4 zuverlässig verstanden.

Nachfolgend ein paar Beispiele, wie GPT-4 bearbeitet und übersetzt hat. Ein Vergleich zu einem klassischen Online-Übersetzungstool, hier deepl.com, zeigt die Vorteile:

Original: To calculate the necessary spindle kit, it is necessary to know the glass door width.
deepl.com: Um den erforderlichen Spindelsatz zu berechnen, muss man die Breite der Glastür kennen.
GPT-4
Bearbeitet: To calculate the necessary spindle kit, measure the width of the glass door.
Übersetzung: Um das notwendige Drückerstift-Kit zu berechnen, messen Sie die Breite der Glastür.
Nachbearbeitung durch einen Redakteur: Messen Sie die Dicke der Glastür, um das notwendige Drückerstift-Kit zu berechnen.
Haupt- und Nebensatz wurden vertauscht,
„Breite“ in „Dicke“ geändert

Hier ein Beispiel, mit selbstständiger Fehlererkennung und -korrektur:

Original: Place the plastic support son the washers.
deepl.com: Legen Sie die Kunststoffstütze unter die Unterlegscheiben.
GPT-4
Bearbeitet: Place the plastic support on the washers.
Übersetzung: Platzieren Sie die Kunststoffstütze auf den Unterlegscheiben.
Nachbearbeitung durch einen Redakteur: keine

Hier ein Beispiel, mit Verbesserungen im Ausdruck:

Original: If there is a mechanical cylinder present in the door prior to the installation of the „Produktname“, … it is interesting to keep it for emergency openings.
deepl.com: Wenn vor dem Einbau des „Produktname“ ein mechanischer Zylinder in der Tür vorhanden ist, …, ist es interessant, diesen für Notöffnungen zu behalten.
GPT-4
Bearbeitet: If a mechanical cylinder is present in the door before installing the „Produktname“ escutcheon, … retaining it for emergency openings is beneficial.
Übersetzung: Wenn sich vor der Installation des Beschlags „Produktname“ ein mechanischer Zylinder in der Tür befindet, …, ist es vorteilhaft, diesen für Notöffnungen beizubehalten.
Nachbearbeitung durch einen Redakteur: Falls sich vor der Installation des Beschlags „Produktname“ ein mechanischer Zylinder in der Tür befindet, …, ist es vorteilhaft, diesen für Notöffnungen aufzubewahren.
„Falls“ statt „Wenn“
„aufzubewahren“ statt „beizubehalten“

Hier noch ein Beispiel, mit Verbesserungen im Ausdruck:

Original: There could be the situation where the Internet outgoing, where the server is installed, it’s done through a Proxy connection. In this case it will be necessary to configure inside the server the access parameters, following the next steps:
deepl.com: Es könnte die Situation eintreten, dass der Internetzugang, auf dem der Server installiert ist, über eine Proxy-Verbindung erfolgt. In diesem Fall müssen die Zugangsparameter innerhalb des Servers konfiguriert werden, wie in den folgenden Schritten beschrieben:
GPT-4
Bearbeitet: If your server connects to the Internet via a Proxy connection, you will need to configure access parameters on the server. Here‘s how:
Übersetzung: Wenn Ihr Server über eine Proxy-Verbindung mit dem Internet verbunden ist, müssen Sie die Zugriffsparameter auf dem Server konfigurieren. So geht‘s:
Nachbearbeitung durch einen Redakteur: Falls Ihr Server über eine Proxy-Verbindung mit dem Internet verbunden ist, müssen Sie die Zugriffsparameter auf dem Server konfigurieren. So geht‘s:
„Falls“ statt „Wenn“
„So geht’s:“ entfernt

Fazit

Für Übersetzungen, bei denen es auf eine 100%ige Richtigkeit nicht ankommt, ist GPT-4 eine gute und schnelle Unterstützung. Die Verbesserungen im Satzbau und im Sprachgebrauch sind verwertbar.

GPT-4 ist in der Lage, auch Sätze zu interpretieren und zu übersetzen, die aufgrund von Rechtschreib- oder Grammatikfehlern in klassischen Übersetzungstools falsch übersetzt werden.

Das Erstellen eines verwertbaren Prompts bedarf etwas Übung. Ein klare Struktur ist sehr wichtig (Rolle vorgeben, das Ausgangmaterial kurz beschreiben, eine Arbeitsanweisung geben, Regeln und Ausnahmen definieren, den zu bearbeitenden Text formal von den Anweisungen trennen).

Es empfiehlt sich, den Prompt kontinuierlich zu testen und schrittweise zu verbessern.

Es bleibt immer noch spannend.