AlphaDev hat einen schnelleren Algorithmus zum Sortieren entdeckt, eine Methode zum Ordnen von Daten. Milliarden Menschen nutzen diese Algorithmen täglich, ohne es zu merken.
Gerade als Sie anfingen zu denken, dass ChatGPT so weit verbreitet ist, dass der Hype nachlässt und 99 andere große Sprachmodelle es ersetzen können, hat ein neuer Ansatz zur Codeentwicklung möglicherweise gezeigt, dass das wahre Potenzial der generativen KI und des verstärkenden Lernens weitaus überlegener ist als die herkömmliche Optimierung des Codes. AlphaDev hat ein Papier veröffentlicht, das beweist, dass KI weit überlegenen Code schreiben kann und jeder davon profitieren kann.
In den letzten Jahrzehnten haben wir die Grenzen des Mooreschen Gesetzes getestet. Vor allem die guten alten Algorithmen wie das Sortieren wurden hauptsächlich durch die Geschwindigkeit der CPUs verbessert. Es herrschte jedoch die allgemeine Meinung, dass wir die Grenzen des Algorithmus erreicht haben und es nicht mehr viel Spielraum für Verbesserungen gibt. Ohne bahnbrechende Änderungen in der Architektur, der Datenverarbeitung oder etwas wie einem völlig neuen Compiler oder einer völlig neuen Sprache dachte man, wir hätten den Höhepunkt der Sättigung erreicht.
Nun ja, wir haben uns geirrt! AlphaDev hat einen schnelleren Algorithmus zum Sortieren entdeckt. Sortieren ist einer der gebräuchlichsten Algorithmen, die täglich von Milliarden Menschen verwendet werden, ohne es zu merken. Selbst eine geringfügige Verbesserung dieses Algorithmus kann so viele Anwendungen verbessern!
Durch die Open-Supply-Veröffentlichung des neuen Sortieralgorithmus in der C++-Hauptbibliothek verwenden Millionen von Entwicklern und Unternehmen KI-generierte Algorithmen, ohne sich dessen bewusst zu sein (siehe: https://reviews.llvm.org/D118029). Dies ist die erste Änderung an diesem Teil der Sortierbibliothek seit über einem Jahrzehnt und das erste Mal, dass dieser Bibliothek ein durch Verstärkungslernen entwickelter Algorithmus hinzugefügt wurde. Dies ist ein wichtiger Schritt für den Einsatz von KI zur Optimierung des weltweiten Codes, einen Algorithmus nach dem anderen.
Das Sortieren struggle seit acht bis zehn Jahrzehnten einer der schwierigsten und am häufigsten verwendeten Algorithmen. Eines der frühesten Beispiele stammt aus dem zweiten und dritten Jahrhundert, als Gelehrte in den Regalen der Großen Bibliothek von Alexandria Tausende von Büchern von Hand alphabetisch sortierten.
Die industrielle Revolution brachte die Erfindung von Maschinen mit sich, die beim Sortieren helfen konnten. Die sogenannten Tabellierungsmaschinen speicherten Informationen auf Lochkarten, die zur Erfassung der Volkszählungsergebnisse von 1890 in den Vereinigten Staaten verwendet wurden. Mit dem Aufkommen kommerzieller Pc in den 1950er Jahren erlebten wir die Entwicklung der ersten Informatikalgorithmen zum Sortieren. Heutzutage werden in Codebasen auf der ganzen Welt viele verschiedene Sortiertechniken und Algorithmen verwendet, um riesige Datenmengen on-line zu organisieren.
Wer erinnert sich an AlphaZero, das Reinforcement-Studying-Modell, das Strategien für Go, Schach und Shogi entwickelt hat? Mit AlphaDev zeigen wir, wie dieses Modell von Spielen auf wissenschaftliche Herausforderungen und von Simulationen auf reale Anwendungen übertragen werden kann.
Um AlphaDev darin zu trainieren, neue Algorithmen zu finden, wurde der Sortier-Meeting-Code in ein Einzelspieler-Spiel umgewandelt. Bei jeder Runde beobachtet der AlphaDev die in der CPU gespeicherten/generierten Informationen. Dann wird ein zufälliger Satz von Anweisungen so gezeichnet, dass die Anweisung dem Algorithmus hinzugefügt wird. Die Möglichkeiten der Optionen für den nächsten Befehlssatz sind ziemlich hoch. Das bedeutet, dass die Anzahl möglicher Befehlskombinationen astronomisch hoch ist: 10¹²⁰ beim Schach und 10⁷⁰⁰ beim Go-Spiel.
Um AlphaDev darin zu trainieren, neue Algorithmen zu entdecken, haben wir das Sortieren in ein Einzelspieler-Zusammenbauspiel umgewandelt. Bei jedem Schritt beobachtet AlphaDev den von ihm generierten Algorithmus und die in der Zentraleinheit (CPU) enthaltenen Informationen. Dann spielt es einen Zug, indem es eine Anweisung auswählt, die dem Algorithmus hinzugefügt werden soll.
Das Assemblerspiel ist unglaublich schwierig, da AlphaDev eine enorme Anzahl möglicher Befehlskombinationen effizient durchsuchen muss, um einen Algorithmus zu finden, der sortieren kann und schneller als der derzeit beste ist. Die Anzahl möglicher Befehlskombinationen ähnelt der Anzahl der Teilchen im Universum oder der Anzahl möglicher Zugkombinationen bei Schachspielen (10120 Partien) und Go (10700 Partien). Und ein einziger falscher Zug kann den gesamten Algorithmus ungültig machen.