Wettbewerbsfähige Codegenerierung mit AlphaCode

Programmieren ist ein leistungsfähiges und allgegenwärtiges Werkzeug zur Problemlösung. Die Entwicklung von Systemen, die Programmierer unterstützen oder sogar unabhängig Programme generieren können, könnte die Produktivität und Zugänglichkeit von Programmierung erheblich steigern. Bisher erwies sich jedoch die Integration neuer Fortschritte in der Künstlichen Intelligenz (KI) als herausfordernd. Kürzlich veröffentlichte große Sprachmodelle haben eine beeindruckende Fähigkeit zur Codegenerierung demonstriert und sind in der Lage, einfache Programmieraufgaben zu lösen. Bei komplexeren, bisher nicht gesehenen Aufgaben, die über die bloße Übersetzung von Anweisungen in Code hinausgehende Problemlösungsfähigkeiten erfordern, schneiden diese Modelle jedoch weiterhin schlecht ab. Beispielsweise bleiben Wettbewerbsprogrammieraufgaben, die ein tiefes Verständnis von Algorithmen und komplexer natürlicher Sprache erfordern, äußerst herausfordernd. Um diese Lücke zu schließen, stellen wir AlphaCode vor – ein System zur Codegenerierung, das in der Lage ist, neue Lösungen für solche Aufgaben zu erzeugen, die tiefere Schlussfolgerungen erfordern. In simulierten Bewertungen anhand jüngster Programmierwettbewerbe auf der Plattform Codeforces erreichte AlphaCode im Durchschnitt eine Platzierung unter den besten 54,3 % bei Wettbewerben mit mehr als 5.000 Teilnehmern. Wir konnten feststellen, dass drei zentrale Komponenten entscheidend für eine gute und zuverlässige Leistung waren: (1) ein umfangreiches und sauberes Datenset für Wettbewerbsprogrammierung zur Ausbildung und Bewertung, (2) große und effiziente, auf Transformers basierende Architekturen, sowie (3) eine großskalige Stichprobenziehung von Modellen zur Exploration des Suchraums, gefolgt von einer Filterung basierend auf dem Verhalten der Programme, um eine kleine Menge von Einreichungen zu erhalten.