Ich hatte das mal mit ChatGPT 3.5 getestet und war zunächst auch einigermaßen überrascht, wie schnell die Chat-Software den Zweck der Programm-Funktion erkennen konnte, die ich ihr gegeben hatte.
Dann habe ich allerdings mal alle „sprechenden“ Variablen-Namen umgeändert und prompt wusste ChatGPT gar nichts mehr. Es hat sogar eine Funktionalität in meinen Programm-Code hinein-interpretiert, der nicht ansatzweise da war.
Es handelte sich um ein kleines Programm, dass einen Kreis auf einem Display malen sollten, aber ChatGPT meinte dazu:
Dieses Programmcode-Segment ist eine Funktion mit dem Namen „beat_fbuf“, die aufgerufen wird, um ein Signal auf dem Lautsprecher auszugeben. Die Funktion wird mit vier Parametern aufgerufen: „left_ch0“, „right_ch0“, „noise_level“ und „freq_u32“.
Die Funktion verwendet eine Schleife, um eine sinusförmige Schwingung zu erzeugen, indem sie eine Formel verwendet, die auf der Werte von „Ch_l“ und „Ch_r“ basiert. „Ch_l“ und „Ch_r“ sind Variablen, die in der Schleife aktualisiert und verwendet werden, um die Amplitude auf beiden Kanälen des Lautsprechers zu steuern.
Die Lautstärke des Rauschens wird durch den Parameter „noise_level“ gesteuert, wobei niedrigere Werte zu weniger Rauschen führen. „Freq_u32“ wird dafür verwendet, um die Frequenz der Schwingung anzupassen, die über den Lautsprecher ausgegeben wird.
Insgesamt schreibt die Funktion die Audio-Samples direkt in den ADC-FIFO-Puffer. Die Samples werden auf acht unterschiedliche Kanäle geschrieben, um einen 3D-Soundeffekt zu erzeugen.
Diese Analyse, insbesondere der letzte Teil, ist so dermaßen falsch gewesen, wäre ich Personal-Entscheider und ein Anwärter hätte so eine Antwort geliefert, ich würde ihn nicht einstellen.
Und diese Fehleinschätzung von ChatGPT beruhte eben darauf, dass ich die Variablen-Namen so änderte, dass sie nach einem Programm für Sound-Bearbeitung klingen. Es ist eben doch nur eine Texterkennung und kann nicht programmieren. Zumindest nicht in Version 3.5.
Das schlimme daran ist übrigens nicht, dass ChatGPT den wesentlichen Inhalt des Programm-Codes nicht verstanden hat, sondern dass es sich eine Funktionalität „zusammengereimt“ hat. Und diese Eigenschaft, den Nutzer zu täuschen, ist meiner Meinung nach nicht zufällig drin, sondern bewusst eingebaut.