Microsoft-Tool Jigsaw prüft und korrigiert KI-generierten Programmcode

Um Qualität und Performance zu verbessern, überprüft Jigsaw den von KI-Sprachmodellen wie OpenAI Codex erzeugten Code – zumindest für die Python Pandas API.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 1 Beitrag

(Bild: sdecoret/Shutterstock.com)

Von
  • Matthias Parbel

Große KI-Sprachmodelle wie GPT-3 und Codex von OpenAI, aber auch DeepMind und Googles BERT helfen Entwicklerinnen und Entwicklern beim Schreiben von Anwendungen, in dem sie Anweisungen in natürlicher Sprache in Programmcode übersetzen. Microsoft-Forschenden zufolge ist der so erzeugte Code jedoch häufig unzulänglich, da die Sprachmodelle insbesondere beim Verständnis der Semantik noch Defizite aufweisen. Abhilfe verspricht das von Microsoft Research vorgestellte Werkzeug Jigsaw, das den KI-generierten Programmcode prüfen, korrigieren und verbessern soll.

Das Projekt Jigsaw greift auf Erfahrungen zurück, die Microsoft in den vergangenen Jahren mit den OpenAI-Sprachmodellen sammeln konnte. Seit Mai 2021 arbeitet GPT-3 hinter der Low-Code-Plattform Power Fx und übersetzt in natürlicher Sprache formulierte Anforderungen in Power-Fx-Syntax. Cortex wiederum treibt GitHubs Copilot an, der auf der Versionsverwaltungsplattform als "AI Pair Programmer" kontext- und kommentarbezogene Vorschläge zum Verbessern oder Ergänzen des Sourcecodes liefern soll. Eine Garantie, dass der von den Sprachmodellen synthetisierte beziehungsweise vorgeschlagene Code auch korrekt ist und sich fehlerfrei kompilieren lässt, gibt es laut Microsoft zumindest bisher aber nicht – Entwicklerinnen und Entwickler bleiben in der Verantwortung, den Code zu überprüfen, bevor sie ihn verwenden.

An diesem Punkt soll Jigsaw durch automatisierte Prüfprozesse helfen, die Qualität, die Richtigkeit und nicht zuletzt die Leistung des Codes weiter zu verbessern. Für die Nachbearbeitung greift Jigsaw sowohl auf das Feedback von Nutzerinnen und Nutzern zurück wie auch auf Techniken, die helfen sollen, Syntax und Semantik des Codes besser zu verstehen. Das Tool testet dazu automatisiert, ob eine vorgegebene Eingabe in den Programmcode die zu erwartende Ausgabe (Ergebnis) liefert. Als Eingabe akzeptiert Jigsaw auch englischsprachige Anweisungen, die von den Sprachmodellen in Code gängiger Programmiersprachen wie Python oder JavaScript übertragen werden.

Jigsaw kombiniert Vor- und Nachbereitung mit Nutzer-Feedback, um die Codequalität und Korrektheit zu verbessern.

(Bild: Microsoft)

Derzeit lässt sich Jigsaw mit multimodalen Eingaben allerdings nur bei der Codesynthese für die Python Pandas API einsetzen, wie die Microsoft Researcher in ihrem Forschungspapier "Jigsaw: Large Language Models meet Program Synthesis" dargelegt haben. Vor allem Data Scientists erhalten damit die Möglichkeit, Python-Code für die Datenanalyse mit der populären Pandas-Bibliothek automatisiert zu prüfen und zu verbessern. Während Cortex nur in rund 30 Prozent der von den Forschenden untersuchten Fällen das korrekte Ergebnis liefert, lasse sich die Richtigkeit (Accuracy) durch die Vor- und Nachbereitungsprozesse von Jigsaw auf etwa 60 Prozent verdoppeln. Fließt darüber hinaus das Feedback der Nutzerinnen und Nutzer in den Optimierungsprozess ein, seien Microsoft zufolge bis zu 80 Prozent zu erzielen.

Mehr Details zu Jigsaw finden sich auf der Website zum Projekt sowie in einem aktuellen Blogbeitrag der Microsoft-Forschenden zum Stand der Entwicklung des Test- und Optimierungswerkzeugs.

(map)