Entdecken Sie Ihre Traumkarriere
Für Recruiter

Top-Technologe von Jane Street über die Schwachstellen der ChatGPT-Programmierung

‚KI wird deinen Job abschaffen‘ – das könnte der meistgesagte Satz des Jahres 2023 sein. Von generativer KI sind quasi alle bedroht, und die Softwareentwicklung ist keine Ausnahme.

Tools wie Copilot von Microsoft setzen schon jetzt auf die Zusammenarbeit mit Entwicklern und machen sogenannte Citizen Developers noch effizienter. Es gibt Hinweise darauf, dass wir alle bald Zugang zu etwas Ähnlichem haben werden, aber ein erfahrener Finanztechnologe, der zudem promiviert ist und regelmäßig Open-Source-Software entwickelt ist hier anderer Meinung.

Die Rede ist von Richard Eisenberg, Designer für funktionale Sprachen bei der Prop-Trading-Firma Jane Street, der sich vor Kurzem in einem unternehmenseigenen Podcast zur „Zukunft des Programmierens“ geäußert hat. Er erörterte, wie ChatGPT-gestütztes Programmieren funktioniert und was es an Hindernissen gibt.

„Die Evolution des KI-gestützten Programmierens ist nicht ganz so groß wie die Veränderungen, die andere ihr zuschreiben“, sagt Eisenberg. „Es ist ein großer Schritt, aber er beseitigt nicht die Notwendigkeit, präzise zu kommunizieren.“

Die Komplikationen liegen in der Natur der Programmiersprachen begründet. Eisenberg definiert sie grob als „eine Art der Kommunikation, die präzise ist: Für alles, was in dieser Sprache gesagt wird, gibt es eine präzise Semantik“. Die natürliche Sprache sei im Gegensatz dazu „sehr, sehr schwammig“.

Das soll nicht heißen, dass KI daran scheitert, Prompts in Code umzuwandeln. Eisenberg sagt, dass die aktuell verwendeten Assistenten „überraschend leistungsfähig sind und erstaunlich gut funktionieren, wenn es darum geht, eine Anfrage zu verstehen und ein Stück Code zu liefern“. Angesichts der angeborenen Interpretierbarkeit von natürlicher Sprache sind sie „aber liegen auffallend oft daneben und und machen viele Fehler.“

Was können wir also tun, um sicherzustellen, dass ChatGPT unseren Code so schreibt, wie wir ihn haben wollen?

Welche geheime Technik das KI-Coden revolutionieren könnte

Bevor er zu Jane Street ging, war Eisenberg einer der wichtigsten Open-Source-Kontributoren im Bereich der Programmiersprache Haskell. Sein wichtigster Beitrag war die Implementierung von sogenannten „dependent types“. Dabei handelt es sich um eine innovative Technik, die den gesamten Programmierprozess, ob mit oder ohne KI-Unterstützung, verändern könnte.

Im Kern sagt Eisenberg, dass ‚dependet types‘ es ermöglichen, „einen Korrektheitsnachweis in deinem Programm zu kodieren“, indem definitive Parameter gesetzt werden, um sicherzustellen, „dass dein Programm wirklich das tut, was es soll“.

Beim Prompten für die Erzeugung von ChatGPT-Code könnte das von Bedeutung sein.

Als Beispiel führt Eisenberg eine einfache Funktion zum Sortieren einer Liste von Ganzzahlen in aufsteigender Reihenfolge an. Ein ‚dependet type‘, den du verwenden könntest, ist die Aufforderung, die Ausgabe in nicht absteigender Reihenfolge anzuzeigen und anzugeben, dass die Funktion nicht ausgeführt wird, wenn die Ausgabe nicht dieser Beschreibung entspricht.

Hier gibt es noch etwas Spielraum. Der Computer könnte beispielsweise einfach nichts ausspucken, was technisch gesehen eine nicht-absteigende Reihenfolge darstellt. Die letzten ‚dependet types‘, die Eisenberg in diesem Beispiel angibt, sind, dass das Programm „eine Liste von Ints aufnimmt und ein Ergebnis zurückgibt, das in nicht-absteigender Reihenfolge ist und eine Permutation der Input-Liste darstellt“.

In Verbindung mit KI könne das, so Eisenberg, „der Input in das große Sprachmodell“ sein, eine Methode, um die Zügel zu straffen und sicherzustellen, dass der maschinell erstellte Code das tut, was er soll. Die Verwendung dieser präzisen abhängigen Funktionen in deinem Prompt führt dazu, dass die Ausgabe innerhalb der von dir angestrebten Spezifikationen liegt.

Kann man ChatGPT nicht einfach bitten, auch die Funktion an sich zu schreiben? Eisenberg warnt davor – wenn man es tut, solle man die Funktionen vorher zumindest vollständig verstehen. „Wenn der Mensch nicht erfahren genug ist, um die Spezifikation zu durchdringen und zu beurteilen, ob sie richtig ist, haben wir verloren“, sagt Eisenberg. „Dann könnte der Computer einfach loslegen und tun, was er will, und wir haben keine Möglichkeit zu wissen, ob es richtig oder falsch ist.“

‚Dependent types‘ sind kein Allheilmittel. Sie können sehr leicht auf Kosten von Geschwindigkeit gehen. In einem Unternehmen wie Jane Street, wo die Geschwindigkeit des Codes entscheidend ist, kann das ein echter Nachteil sein.

Nicht alle Sprachen unterstützen ‚dependent types‘ vollständig. Eisenberg sagt, dass „Coq, ACTA und Idris Lean die Sprachen sind, die dies wirklich drauf haben“. Coq und ACTA gibt es seit den 80er Jahren, was ein weiteres Beispiel dafür ist, dass uralte Programmier-Techniken in Kombination mit neuer Technologie ein Comeback erleben.

Klicke hier, um ein Profil auf eFinancialCareers anzulegen. Werde gefunden von Recruitern, die Jobs besetzten, in denen jede und jeder willkommen ist.

Have a confidential story, tip, or comment you’d like to share? Contact: alex.mcmurray@efinancialcareers.com in the first instance. 

Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)

author-card-avatar
AUTORAlex McMurray

Newsletter Anmeldung

Lassen Sie sich beraten, um Ihre Karriere zu managen und voranzutreiben

Treiben Sie Ihre Karriere voran

Finden Sie Tausende von Stellenangeboten, indem Sie sich noch heute bei eFinancialCareers anmelden.
Passende artikel
Neueste Jobs
Robert Half Deutschland
Onsite Supporter (w/m/d)
Robert Half Deutschland
Berlin, Deutschland
Robert Half Deutschland
2nd-Level IT-Supporter (w/m/d)
Robert Half Deutschland
München, Deutschland
Capco
Cloud Architekt* - Financial Services
Capco
München, Deutschland
Capco
(Senior) Consultant* - Payments
Capco
Frankfurt am Main, Deutschland

Newsletter Anmeldung

Lassen Sie sich beraten, um Ihre Karriere zu managen und voranzutreiben