Die KI von Deepmind lernt etwas über die Kunst des Programmierens


Im Feld In der Informatik gibt es vielleicht keine grundlegendere Aufgabe als das Sortieren. Blase, Haufen, Zusammenführung – treffen Sie Ihre Wahl. Die Methoden zur Neuordnung von Daten in einem Computer wurden zu Tode theoretisiert, dienten Millionen von Anfängern als Übungsübungen und wurden jahrzehntelang von erfahrenen Entwicklern optimiert. Geben Sie eine sort()-Funktion in einer beliebigen Programmiersprache ein und Sie können sich auf den Code verlassen, auf den Sie sich verlassen können. Fass es nicht an. Es funktioniert schon super.

Aber letztes Jahr hat sich ein von Ingenieuren von Googles Deepmind entwickeltes KI-System gerade so weit verbessert, dass es von Bedeutung ist. Das System, das Deepmind AlphaDev nennt, hatte die Aufgabe, eine neue Methode zum Sortieren kurzer Sequenzen in Zahlen in C++, der beliebten Programmiersprache, zu entwickeln. Es bedeutete, unter die Haube zu gehen und die KI neue Algorithmen in Assembler-Code erstellen zu lassen – die Anweisungen, die die Lücke zwischen Programmiersprachen wie C++ und Computerhardware schließen. Wenn ein C++-Entwickler dem Computer sagt, er solle „sortieren“, werden diese Befehle in maschinenlesbaren Code umgewandelt, der dem Speicher und Prozessor eines Computers genau sagt, was zu tun ist: wohin Daten verschoben und wie sie geändert werden sollen. Hier treffen Teile auf Metall.

Das Experiment hat funktioniert. Seit April letzten Jahres läuft C++ dank eines neuen Satzes KI-basierter Sortieralgorithmen etwas schneller. Aber laut den Ingenieuren von AlphaDev, die beschrieb die Arbeit heute in Natur, das ist nur der erste Schritt. „Wir wollen den gesamten Computerstapel optimieren“, sagt Daniel Mankowitz, wissenschaftlicher Mitarbeiter bei Deepmind, der das Sortierprojekt leitete. Mankowitz sagt, dass AlphaDev bereits Algorithmen nicht nur für die Sortierung, sondern auch für andere grundlegende Aufgaben wie Hashing verbessert hat.

„Ich finde diese Arbeit unglaublich spannend“, sagt Armando Solar-Lezama, Experte für Programmsynthese am MIT, der nicht an der Forschung beteiligt war. Es ist nützlich, wenn die KI einen neuen Sortieralgorithmus entwickelt. Es sei eine viel größere Sache, eine KI aufzubauen, die lernen kann, hochmodernen Code für eine Vielzahl von Aufgaben zu schreiben, sagt er. Das bedeutet, dass AlphaDev begonnen hat, etwas Grundlegenderes über die Kunst des Codierens selbst zu lernen.

Das bringt natürlich erhebliche Einschränkungen mit sich. „Das sind winzig kleine Programme“, fügt er hinzu – insgesamt nicht mehr als ein paar Dutzend Anweisungen im Assembler-Code. Aber diese winzigen Programme stellen oft große Engpässe für die Computerleistung dar, da sie so weit optimiert wurden, wie es den Menschen möglich ist. Insgesamt sind die neuen C++-Sortieralgorithmen von AlphaDev beim Sortieren langer Zahlenfolgen 1,7 Prozent effizienter als die vorherigen Methoden und bei Folgen mit fünf Elementen bis zu 70 Prozent schneller. Im Maßstab summieren sich diese Verbesserungen, sagt Mankowitz. Seitdem der KI-geschriebene Code an Libc++, eine große Open-Source-Bibliothek für C++, übermittelt wurde, wurden die Algorithmen seiner Schätzung nach Billionen Mal am Tag verwendet.

Diese Verbesserungen sind einer Technik namens „Reinforcement Learning“ zu verdanken, bei der es sich um denselben Ansatz handelt, der Deepminds KI dabei hilft, Spiele wie Schach und Go zu meistern. Diese Art von KI lernt durch Handeln. Es funktioniert, indem es eine bestimmte Aufgabe – wie das Schreiben eines Assemblerprogramms – als ein Spiel behandelt, bei dem die KI Belohnungen für kluge Bewegungen erhält, die die Effizienz des Programms steigern. Im Laufe der Zeit arbeitet das System daran, diese Belohnung zu maximieren, was zu einer erfolgreichen Go-Strategie oder einem schnelleren Montageprogramm führt. Dies unterscheidet sich von der Art von KI, die in großen Sprachmodellen wie GPT-4 zu finden ist, die auf riesigen Datenmengen basieren, um zu lernen, wie man Wörter oder Code schreibt. Das eignet sich hervorragend für die Erstellung von Texten, die den Ton des Internets widerspiegeln, oder für die Erstellung allgemeiner Codesegmente. Aber es ist nicht so gut darin, neuartige, hochmoderne Lösungen für Codierungsherausforderungen zu entwickeln, die die KI noch nie zuvor gesehen hat.

source-114

Leave a Reply