Springe zum Inhalt

ChatGPT und Buchstaben zählen: Warum das nicht funktioniert und welche Alternativen es gibt.

Generative KI wie ChatGPT ist primär nicht so aufgebaut, dass sie Wörter oder Buchstaben zählen kann. Das ist nicht ihre Aufgabe. Man kann Textlängen zwar limitieren, indem man eine Grenze für Wörter oder Buchstaben angibt, aber diese Begrenzung wird nicht 100 % eingehalten. In der Praxis ist das unwichtig, Hauptsache man bekommt einen Text von ungefähr der gewünschten Länge.

Rechts ist eine Sprechblase mit der Aufforderung „Lobpreise dich selbst in 50 Worten.“ zu sehen. Die Antwort von ChatGPT hält das Limit nicht ein.

Der ausgegebene Text besteht aus 47 Wörtern. Im Hintergrund arbeitet ChatGPT aber mit sogenannten Tokens. In diesem Falle sind es 101 Tokens für die generierte Antwort:

Screenshot vom Tokenizer von ChatGPT. Die vorherige Antwort ist in Tokens zerlegt und jedes Token ist eingefärbt.

Wie man sehen kann, wird weder mit Buchstaben noch mit Wörtern operiert. In ChatGPT und anderen Sprachmodellen ist ein „Token“ eine Einheit von Text. Es kann sich dabei um einen Buchstaben, mehrere Buchstaben, ein ganzes Wort oder auch ein Satzzeichen handeln. Jedes Token wird intern als ein Vektor gespeichert, anhand deren das KI-Modell seine Vorhersagen für eine Antwort trifft.

Also direktes Zählen geht nicht, jedoch kann man – wenn es denn unbedingt sein muss – tricksen. Dafür muss man dem Modell Zählen über den Prompt beibringen. Man kann es mit Few Shot Prompting probieren und der KI zunächst Beispiele mit Lösung zeigen. Das funktioniert jedoch nicht in allen Fällen mit ChatGPT 3.5 und 4.

Your task is to count the letters "r" in words. The words are given to you.

Examples:
marry: There are 2 "r" in the word "merry".
raspberry: There are "r" in the word "raspberry".
regarding: There are 2 "r" in the word "regarding".
embarrassing: There are 2 "r" in the word "embarrassing".
their: There is 1 "r" in the word "their".

Now, ask me for the first word.
Beispiel für Zählen von Buchstaben mit Few Shot Prompting. ChatGPT liegt jedoch nicht immer richtig.

Man kann eine Lösung durch deutlich schwierigere Konstrukte erhalten, zum Beispiel mit dem Game Play Pattern:

Let’s play a counting game. Your task is to count specific letters in a word. I give you the words and the letter to be counted. 

Examples:
I say marry:r. You say m-0 a-0 r-1 r-2 y-0. There are 2 "r" in the word "merry".
I say raspberry:r. You say r-1 a-0 sa-0 pa-0 ba-0 ea-0 r-2 r-3 y-0. There are 3 "r" in the word "raspberry".
I say alpaca:a. You say a-1 l-0 p-0 a-2 c-0 a-3. There are 3 "a" in the word "alpaca".

Ready to play? Ask me for the first word.
Screenshot von einem Beispiel mit dem Game Play Pattern zum Zählen.

Man kann sich diesen Spaß manuell machen, für professionelle Anwendungen würde ich solche Zähllösungen jedoch nicht empfehlen. Zum Ersten verbiegt man damit die KI und verlangt umständlich etwas, das sie normalerweise nicht tun muss. Zum Zweiten ist es Geldverschwendung, denn man muss für die Tokens über die API bezahlen. Und zum Dritten: Wenn man ohnehin eine Softwarelösung hat, dann kann man Zählungen direkt mit der Programmiersprache abwickeln und sich die Kosten und Wartezeit über eine KI-Schnittstelle sparen. Die Wahrscheinlichkeit, dass die eigene Software nach ausgiebigem Testen zuverlässig zählt, ist ungleich höher als eine verbogene KI-Schnittstelle, deren dahinterliegende Modelle sich mit der Zeit ändern.


👉 Auf Mastodon kommentieren