Ein neuer Benchmark mit Programmier-Rätseln soll den Fortschritt von KI messen, die Programmcode schreibt.
Nachdem Künstliche Intelligenz durch KI-Training mit massiven Datensätzen und riesigen Modellen große Fortschritte in der Verarbeitung natürlicher Sprache gemacht hat, wollen KI-Forscher mit der gleichen Methode Erfolge im automatisierten Programmieren erreichen.
Erste Tools wie Deep TabNine setzten auf OpenAIs GPT-2 für Code-Autovervollständigung. Ende Juni veröffentlichten dann OpenAI und Microsoft mit GitHubs Copilot ein vergleichbares Werkzeug für Programmierer, das auf der für Code spezialisierten GPT-3 Variante „Codex“ basiert. GitHubs Copilot soll sich jetzt im Einsatz mit Programmierern bewähren und dabei von ihnen lernen. Zuvor implementierte GPT-3 als Code-Hilfe in die eigene Entwicklungsplattform Power Apps.
Auch IBM forscht an Code-KIs und veröffentlichte im Mai den riesigen CodeNet-Datensatz mit Code-Lösungen der Webseiten AIZU und AtCoder, die Lösungen für Programmierwettbewerbe hochladen.
Doch die Autovervollständigung von Copilot und wohl bald erscheinenden Codex-Varianten ist nur ein Zwischenschritt auf dem Weg zu KIs, die eigene Programme schreiben sollen. Auf diesem Weg zu autonomen Programmierern braucht es Benchmarks, die der Forschung ein Ziel und messbaren Fortschritt erlauben.
Python-Rätsel für automatisierte Programmierer
Forscher des Massachusetts Institute of Technology (MIT), des Allen Institute for AI und von Microsoft haben einen solchen Benchmark veröffentlicht: Python Programming Puzzles (P3) umfasst 200 Probleme aus unterschiedlichen Bereichen wie Algebra, Spieltheorie, Wahrscheinlichkeitsrechnung oder Graphen.
Jedes Rätsel ist durch ein kurzes Python-Programm definiert. Die Aufgabe der KI: Eine Eingabe finden, mit der die Ausgabe des Programms wahr ist. Die Forscher geben das einfache Beispiel lambda s: "Hello " + s == "Hello world". Die richtige Antwort auf das Rätsel ist „world“.
P3 umfasst klassische Rätsel wie die Türme von Hanoi, Schachrätsel oder das Finden optimaler Strategien für Stein-Schere-Papier oder Mastermind. Weitere Rätsel stammen aus der internationalen Mathematik-Olympiade oder dem internationalen Collegiate Programming Contest. Für alle Probleme gibt es zahlreiche Rätsel-Varianten, sodass der P3-Benchmark insgesamt 139.072 Rätsel umfasst.
In ersten Tests unter anderem mit GPT-3 konnten die Forscher zeigen, dass menschliche Programmierer aktuell im P3-Benchmark noch besser abschneiden. Von Menschen als schwer beschriebene Aufgaben waren im Schnitt auch eine größere Herausforderung für die verschiedenen maschinellen Problemlöser.
In Zukunft soll der P3-Benchmark um weitere Rätsel erweitert werden. Den Python-Programming-Puzzles Benchmark gibt es bei GitHub.
Via: Arxiv