Maschinenhirn lernt programmieren: Zum ersten Mal hat eine künstliche Intelligenz es menschlichen Programmierern gleichgetan – sie kann selbst für neue, komplexe Probleme die passenden Algorithmen entwickeln und den entsprechenden Computercode schreiben. Das KI-System AlphaCode von DeepMind erreichte dabei Leistungen, die ihm in einem Online-Codier-Wettbewerb gegen menschliche Programmierer eine mittlere Platzierung einbrachten, wie die Forschenden in „Science“ berichten.
Ob als Sprachassistent im Handy, als Forschungshelfer oder als Assistenzsystem im Auto und der Industrie: Lernfähige Algorithmen und KI-Systeme werden schon in vielen Bereichen unseres Lebens eingesetzt. Inzwischen meistern die Maschinenhirne nicht nur Strategiespiele und Datenanalysen, sondern auch Aufgaben, die lange als für sie unmöglich galten: Sie bluffen beim Pokerspielen, schätzen die Reaktionen ihrer Gegenüber bei Verhandlungen ein oder entwickeln neue mathematische Theoreme und Beweise.
Vom Problem zum Computercode
Doch wie sieht es mit dem Programmieren aus? Wie realistisch sind Science-Fiction-Szenarien, in denen künstliche Intelligenzen selbst zu Schöpfern neuer Algorithmen und KI-Systeme werden? Bisherige Systeme konnten zwar kleine Code-Schnipsel generieren oder einfache Programme nach vorgefertigten Schemata und Regeln. „Um ein komplettes Programm zu schreiben, muss man aber die Aufgabe verstehen, den passenden Lösungs-Algorithmus finden und dann den Code schreiben, um diesen Algorithmus zu implementieren“, erklären Yujia Li von der Google-Tochter Deepmind und seine Kollegen.
Noch schwieriger wird es, wenn die zu lösende Aufgabe nicht in einer Computer-kompatiblen Form präsentiert wird, sondern als komplexer Texte in natürlicher Sprache. Solche Aufgaben werden beispielsweise bei Programmier-Wettbewerben gestellt und müssen dann von menschlichen Programmierern auf die bestmögliche Weise in Computercode umgesetzt werden. Bisher waren KI-Systeme auf Basis neuronaler Netzwerke von solchen komplexeren Programmieraufgaben aber überfordert.
KI schlägt menschliche Programmierer
Bis jetzt: Das DeepMind-Team hat erstmals ein KI-System entwickelt, das gut genug programmiert, um bei solchen Coder-Wettbewerben mithalten zu können. „Unseres Wissens nach hat noch nie zuvor ein Computersystem ein solches Niveau bei Programmier-Wettbewerben erreicht“, sagen Li und sein Team. Ihr System AlphaCode löste im Schnitt 34 Prozent der Wettbewerbs-Aufgaben auf der Plattform Codeforces korrekt und schnitt damit besser ab als die Hälfte aller menschlichen Teilnehmer.
Das Erstaunliche daran: AlphaCode schaffte dies nicht durch ihm zuvor beigebrachte Programmierregeln oder Schulungen. Das auf neuronalen Netzen basierende KI-System entwickelte seine Fähigkeiten allein durch das Training mit alten Wettbewerbsaufgaben und ihren Lösungen. Üblicherweise werden diese von Programmier-Plattformen veröffentlicht und sind daher auch für menschliche Teilnehmer zur Vorbereitung zugänglich. Im Prinzip brachte sich das KI-System allein mithilfe dieser Datensätze selbst das Programmieren bei.
Training mit GitHub-Scripten und Wettbewerbsaufgaben
Konkret analysierte AlphaCode für sein Training zunächst 715 Gigabyte an Codeabschnitten in verschiedenen Programmiersprachen von der Plattform Github. Diese unstrukturierte Sammlung von Scripten enthielt keine Problembeschreibungen und diente zum Kennenlernen typischer Strukturen und Syntax-Elemente. Dann erhielt der Encoder-Teil des Transformer-Moduls von AlphaCode eine Hälfte des jeweiligen Scripts und der Decoder-Teil musste lernen, die zweite Hälfte korrekt ergänzen.
Eine zweite Trainingsphase lieferten den Feinschliff: Das vortrainierte KI-System bekam rund 13.500 alte Wettbewerbsaufgaben von der Codeforces-Plattform mitsamt richtigen und falschen Lösungen. Durch Auswertung dieser Daten „lernte“ AlphaCode, welche Merkmale korrekte von nicht korrekten Code-Lösungen unterscheiden.
AlphaCode gegen menschliche Konkurrenten
Nach Abschluss dieser Lernphase folgte die Evaluierung – der Wettbewerb. Dafür bekam AlphaCode die Aufgaben, die im Dezember 2021 auf der Plattform Codeforces im Rahmen von zehn Wettbewerben mit mehr als 5.000 Teilnehmern gestellt worden waren. Das KI-System erstellte für jede dieser Aufgaben zunächst Millionen potenzieller Codelösungen. Dann kam ein Untermodul zum Einsatz, dass diese Lösungen auf ihre Lauffähigkeit überprüfte und zehn potenziell geeignete Kandidaten auswählte.
Das Team um Li lud diese Code-Lösungen dann auf die Codeforces-Plattform hoch, wo sie bewertet wurden. Auf Basis dieser Werte ermittelten die Forschenden dann, wo in der Rangliste der Teilnehmenden AlphaCode gelandet wäre. Das Ergebnis: Die Code-Lösungen von AlphaCode waren besser als die von 54,3 Prozent der menschlichen Programmierer. „Dieses Abschneiden entspricht etwa dem eines Programmier-Anfängers mit bis zu einem Jahr Training“, erklären Li und seine Kollegen. Ähnlich wie die menschlichen Teilnehmer löste AlphaCode leichtere Aufgaben häufiger korrekt als schwierigere.
„Außergewöhnliches Potenzial“
Damit hat es eine künstliche Intelligenz erstmals geschafft, in einem freien Programmier-Wettbewerb mit menschlichen Programmierern mitzuhalten. Das brachte AlphaCode sogar auf das Cover der aktuellen „Science“-Ausgabe. Das DeepMind-Team sieht in ihrem KI-System einen vielversprechenden Ansatz für programmierende Maschinenhirne der Zukunft: „Die relativ einfache Architektur zeigt außergewöhnliches Potenzial im Durchführen der Analysen, die für das Lösen komplexer Probleme mittels Programmiercode nötig sind“, so Li und seine Kollegen.
Ähnlich sieht es auch der nicht an der Studie beteiligte KI-Forscher Zico Kolter von der Carnegie Mellon University in Pittsburgh: „Unabhängig davon, in welchem Maße AlphaCode wirklich ‚versteht‘ was er da tut, zeigt er beim Lösen der Programmier-Herausforderungen bemerkenswert gute Leistungen „, schreibt er in einem begleitenden Kommentar. Er sieht in AlphaCode ein erstes Beispiel für Modelle, die selbst ohne Kenntnis der Regeln das Codieren lernen können.
Allerdings: Noch ist das Prozedere sehr aufwendig: AlphaCode benötigte für Training und Evaluierung 175 Megawattstunden Energie und eine Rechenleistung, die 2.149 Tagen Betrieb mit durchgehend einem Petaflop pro Sekunde entspricht. „Unsere Arbeit an Code-generierenden Systemen hat daher noch einigen Raum für Verbesserungen“, räumen Li und sein Team ein. (Science, 2022; doi: 10.1126/science.abq1158)
Quelle: Science, American Association for the Advancement of Science (AAAS)