Wie gut ist das „neuronale Netz“ GPT-3? Unser Team hat es getestet.
Künstliche Intelligenz (KI), die selbst Codes liest oder sogar schreibt: Was nach Science Fiction klingt, ist heute schon im gewissen Rahmen möglich. Entwickler*innen profitieren in ihrer täglichen Arbeit von der KI-gesteuerten Textgenerierung. Wie gut das bereits funktioniert und wo noch nicht, haben die Spezialist*innen von Skaylink in einem Hackathon am Beispiel von GPT-3 von OpenAI untersucht.
Was ist GPT-3?
GPT-3 ist ein sogenanntes neuronales Netz, das auf große Textmengen aus dem Internet trainiert wird. Dadurch kann es Text selbst schreiben und wahrscheinliche Textvarianten vorhersagen. Dafür kombiniert GPT-3 Eingaben, die man ihm gibt, mit Daten, mit denen es zuvor trainiert wurde. Besonders spannend: GPT-3 kann Klartext in Code und Code in Klartext übersetzen. Im Folgenden ein Beispiel: Die graue Fläche ist das Eingabefeld, die grüne Fläche zeigt, was GPT-3 als wahrscheinlichste nächste Folge betrachtet. (In diesem Fall 💥🌟 als Beschreibung von Star Wars.)
Ziel des Hackathons war es deshalb zu sehen, wie GPT-3 Entwickler*innen beim Codieren längerer Passagen helfen kann.
Szenario Nr. 1 – Text für PowerShell
Unser Team testete zuerst, ob GPT-3 basierend auf vorherige Klartext-Eingaben passende PowerShell-Befehle ergänzen konnte. Das Ergebnis kam der idealen Lösung tatsächlich ziemlich nah:
Szenario Nr. 2 – Pull Request
Da GPT-3 Code in Klartext übersetzen kann, bauten unsere Expert*innen es in eine Pipeline ein. Damit sollte er im Review helfen, zu verstehen, was der Code tut. Für das Szenario nutzte das Team ein Powershell-Skript und ein sehr einfaches C#-Programm:
Wird der Code festgeschrieben, löst er eine Build-Validierungs-Pipeline aus, die mit Powershell untersucht, was sich im Code geändert hat. Die Pipeline sendet den Code dann an die OpenAI-API. Die Antwort von der OpenAI-API wird als Kommentar zum angeforderten Pull gespeichert:
Das Resultat: Das Skript berechnet die Größe von Dateien und Verzeichnissen in einem Ordner und seinen Unterordnern. Es erstellt einen Thread und startet ihn. Der Thread schläft dann für 1000 Millisekunden. Tritt ein Fehler auf, meldet die Konsole das. So die Theorie. In der Praxis zeigte sich aber, dass GPT-3 bei demselben Code zu auch zu unterschiedlichen Ergebnissen kommen kann. Zum Beispiel meldet GPT-3 für das C#-Programm manchmal die Nachricht „Hello, world!“ zur Konsole – was offensichtlich falsch ist.
Szenario Nr. 3 – Automatisch generierte Testdaten
Ein klassisches Problem für ein System in der Testphase ist, dass es realistische Testdaten benötigt. Im letzten Szenario sollte GPT-3 daher Testdaten generieren. GPT-3 musste dafür erkennen, wonach gefragt wurde und auf Informationen zurückgreifen, die es im Rahmen des Trainings gesammelt hatte. Das ist im Beispiel unten zu sehen:
Fazit
Unsere Spezialist*innen waren beeindruckt, wie gut GPT-3 in Bezug auf die Erklärung von Code funktioniert. KI-gestützte Codierung ist ein interessantes Gebiet, das näher betrachtet werden sollte. Bei komplexeren Fragestellungen mag es sich noch nicht bewähren, aber es ist einen Versuch wert, denn es kann in der Praxis durchaus nützlich sein. Sehr hilfreich ist auch die Generierung von Testdaten: Hier kann GPT-3 schnell große Mengen realistischer Testdaten generieren, wie sie in den meisten IT-Projekten benötigt werden.
Unsere Entwickler*innen erstellen maßgeschneiderte Lösungen für Kunden aus ganz unterschiedlichen Branchen. Mehr Informationen dazu finden Sie hier.
Dieser Beitrag wurde uns freundlicherweise von der Skaylink Tochter cVation zur Verfügung gestellt. Den Originalbeitrag finden Sie hier.