Inhalt
newsletter Newsletter

AlphaCode ist Deepminds erste eigenständig programmierende Künstliche Intelligenz. Bei einem Test erreicht die KI bereits menschliches Niveau.

Anzeige

Mit dem Siegeszug der Transformer-Modelle bei der Verarbeitung natürlicher Sprache realisierten Forschende die Nützlichkeit der Text generierenden Modelle für die Generierung von Code Zeilen. So zeigte etwa OpenAIs GPT-3-Modell in den Tagen nach seiner Veröffentlichung versteckte Code-Fähigkeiten wie die Umwandlung von Textbeschreibungen in HTML-Code.

Auch OpenAI erkannte das Potenzial der NLP-Modelle für das Programmieren und entwickelte Codex, ein auf die Generierung von Code spezialisiertes Transformer-Modell, das über OpenAIs API verfügbar ist und in einer Variante in Microsofts Copilot für GitHub steckt.

OpenAIs Beitrag zum maschinellen Programmieren ist mehr als eine Autovervollständigung für Code: Die Künstliche Intelligenz kann aus simplen Anweisungen einfache Programme schreiben. Von der menschlichen Fähigkeit, komplexere Probleme zu lösen, die über die einfache Übersetzung von Anweisungen in Code hinausgehen, ist Codex jedoch weit entfernt.

Anzeige
Anzeige

Deepminds AlphaCode soll neuartige Lösungen finden

Deepmind, Alphabets KI-Unternehmen hinter AlphaZero, MuZero, AlphaFold und AlphaStar, zeigt nun AlphaCode, ein KI-Modell, das Code auf "Wettbewerbsebene" schreiben soll. Deepmind testete AlphaCode dafür mit Programmierwettbewerben von Codeforces, eine auf Code-Wettbewerbe spezialisierte Plattform.

Wie OpenAIs Codex setzt auch Deepminds AlphaCode auf eine Transformer-Architektur. Anders als Codex ist AlphaCode jedoch ein Encoder-Decoder-Modell. Codex ist wie GPT-3 lediglich ein Decoder-Modell.

Der wesentliche Unterschied zwischen den beiden Modellen ist, wie sie den Kontext der Eingabedaten verarbeiten: Ein Decoder-Modell wie GPT-3 betrachtet bei der Verarbeitung einer Eingabe, zum Beispiel ein einzelner Satz, ausschließlich den Kontext vor oder nach einem Wort.

Ein Encoder-Modell wie Googles BERT verarbeitet bei der Repräsentation eines Wortes beide Richtungen. Ein Encoder repräsentiert daher besser die Bedeutung eines ganzen Satzes, ein Decoder eignet sich besser zur Textgenerierung.

Werden Encoder und Decoder kombiniert , etwa für Übersetzungen, kann der Decoder neben dem ersten Input, etwa einem Wort, die vom Encoder erstellte Repräsentation, etwa des kompletten Satzes, nutzen.

Empfehlung

Ähnlich wie Übersetzungen lassen sich auch Programmierwettbewerbe als eine Sequenz-zu-Sequenz-Übersetzungsaufgabe verstehen: Erstelle anhand einer Problembeschreibung X in natürlicher Sprache eine Lösung in einer Programmiersprache Y.

Deepmind greift für AlphaCode daher auf ein Transformer-basiertes Encoder-Decoder-Modell mit Anpassungen im Modell und Trainingsmethoden zurück. Auch Salesforce CodeT5 setzt auf ein solches Modell.

AlphaCode ist viermal größer als Codex

Deepmind trainierte AlphaCode mit knapp 715 Gigabyte Code-Beispielen von GitHub in den Programmiersprachen C++, C#, Go, Java, JavaScript, Lua, PHP, Python, Ruby, Rust, Scala und TypeScript.

Das größte AlphaCode-Modell ist 41,4 Milliarden Parameter groß. Zum Vergleich: OpenAIs Codex ist knapp 12 Milliarden Parameter groß.

Anzeige
Anzeige
Community beitreten
Kommt in die DECODER-Community bei Discord,Reddit, Twitter und Co. - wir freuen uns auf euch!

Deepmind trainierte AlphaCode anschließend zusätzlich mit CodeContests, einem von Deepmind zusammengestellten Datensatz von Problemen, Lösungen und Tests von Codeforces-Wettbewerben.

AlphaCode generiert zahlreiche mögliche Lösungen, aus denen zehn Lösungsansätze ausgewählt werden. | Bild: Deepmind

Nach dem Training verarbeitet der Encoder von AlphaCode Problembeschreibungen, der Decoder generiert Code-Zeilen. Für jedes Problem kann AlphaCode Millionen möglicher Lösungen generieren - von denen allerdings ein Großteil nicht funktioniert.

Deepmind filtert die zahlreichen möglichen Lösungen mit in den Problembeschreibungen mitgelieferten Beispieltests. Dieser Vorgang lässt allerdings immer noch tausende möglicher Programmkandidaten übrig.

AlphaCode setzt daher ein zweites, kleineres Modell ein, das weitere Tests generiert und alle übrigen Programmkandidaten nach gleichen Outputs für die generierten Tests gruppiert. Aus diesen Gruppen wählt AlphaCode im Anschluss zehn Lösungen für eine Problembeschreibung aus.

Deepminds AlphaCode programmiert auf menschlichem Niveau

Mit dieser Methode löste AlphaCode 34,2 Prozent aller Probleme im CodeContests-Datensatz. In zehn aktuellen Codeforce-Wettbewerben mit mehr als 5.000 Teilnehmer:innen erreichte AlphaCode eine durchschnittliche Platzierung unter den ersten 54,3 Prozent. Damit ist AlphaCode besser als knapp 46 Prozent der menschlichen Teilnehmer:innen. Laut dem AlphaCode-Team ist die eigene KI die erste, die dieses Niveau erreicht.

Eine Untersuchung zeige außerdem keine Hinweise, dass AlphaCode Code-Zeilen aus dem Trainingsdatensatz kopiert. Das demonstriere, dass das KI-Modell tatsächlich neue Probleme lösen könne, die es noch nie zuvor gesehen habe - auch wenn diese Probleme signifikante Denkleistungen erforderten.

Anzeige
Anzeige

Perfekten Code schreibt AlphaCode allerdings nicht: Gerade mit C++ habe die KI Probleme, so Deepmind. Das System soll weitere Forschung anstoßen, Verbesserungen für AlphaCode sind ebenso in Planung.

Wer tiefere Einblicke in AlphaCode möchte, kann das Modell auf der AlphaCode-Webseite erkunden. Weitere Informationen gibt es in Deepminds Blog.

Weiterlesen über Künstliche Intelligenz:

Unterstütze unsere unabhängige, frei zugängliche Berichterstattung. Jeder Betrag hilft und sichert unsere Zukunft. Jetzt unterstützen:
Banküberweisung
Quellen
Max ist leitender Redakteur bei THE DECODER. Als studierter Philosoph beschäftigt er sich mit dem Bewusstsein, KI und der Frage, ob Maschinen wirklich denken können oder nur so tun als ob.
Community beitreten
Kommt in die DECODER-Community bei Discord,Reddit, Twitter und Co. - wir freuen uns auf euch!