Ich bin in den 1980er Jahren erwachsen geworden und habe zu Hause PCs wie den Commodore VIC-20 und Apple ][e programmiert. Nachdem ich am College Informatik studiert und schließlich in Berkeley promoviert habe, war der Großteil meiner beruflichen Ausbildung in dem verwurzelt, was ich als „klassisches“ CS bezeichnen würde: Programmierung, Algorithmen, Datenstrukturen, Systeme, Programmiersprachen. In der klassischen Informatik besteht das ultimative Ziel darin, eine Idee auf ein von einem Menschen geschriebenes Programm zu reduzieren – Quellcode in einer Sprache wie Java oder C++ oder Python. Jede Idee in Classical CS – egal wie komplex oder ausgeklügelt – von einem Datenbank-Join-Algorithmus bis hin zum verblüffend stumpfen Paxos-Konsensprotokoll – kann als ein für Menschen lesbares, für Menschen verständliches Programm ausgedrückt werden.
Als ich Anfang der 90er Jahre auf dem College war, befanden wir uns noch mitten im KI-Winter, und KI als Feld wurde ebenfalls von klassischen Algorithmen dominiert. Meine erste Forschungstätigkeit an der Cornell University war die Zusammenarbeit mit Dan Huttenlocher, einem führenden Unternehmen auf dem Gebiet des maschinellen Sehens (und jetzt Dekan der MIT School of Computing). In Dans Doktorandenkurs für Computer Vision im Jahr 1995 oder so haben wir nicht ein einziges Mal über etwas gesprochen, das Deep Learning oder neuronalen Netzen ähnelte – es waren alles klassische Algorithmen wie Canny Edge Detection, Optical Flow und Hausdorff-Distanzen. Deep Learning steckte noch in den Kinderschuhen und galt noch nicht als Mainstream-KI, geschweige denn als Mainstream-CS.
Natürlich ist das 30 Jahre her, und seitdem hat sich viel verändert, aber eine Sache, die sich nicht wirklich geändert hat, ist, dass Informatik als Disziplin gelehrt wird, bei der Datenstrukturen, Algorithmen und Programmierung im Mittelpunkt stehen. Ich wäre erstaunt, wenn wir uns in 30 Jahren oder sogar in 10 Jahren immer noch auf diese Weise der CS nähern. In der Tat denke ich, dass CS als Bereich vor einem ziemlich großen Umbruch steht, auf den nur wenige von uns wirklich vorbereitet sind.
Die Programmierung wird enden
Ich glaube, dass die konventionelle Idee, „ein Programm zu schreiben“, vom Aussterben bedroht ist, und in der Tat wird die meiste Software, wie wir sie kennen, für alle außer sehr spezialisierten Anwendungen durch KI-Systeme ersetzt werden, die eher trainiert als programmiert werden. In Situationen, in denen man ein „einfaches“ Programm benötigt (schließlich sollte nicht alles ein Modell von Hunderten von Milliarden von Parametern erfordern, die auf einem Cluster von GPUs laufen), werden diese Programme selbst von einer KI generiert und nicht von Hand codiert.
Ich glaube nicht, dass diese Idee verrückt ist. Zweifellos glaubten die frühesten Pioniere der Informatik, die aus der (relativ) primitiven Höhle der Elektrotechnik hervorgingen, fest daran, dass alle zukünftigen Informatiker ein tiefes Verständnis von Halbleitern, binärer Arithmetik und Mikroprozessordesign haben müssten, um Software zu verstehen. Spulen wir bis heute vor, und ich bin bereit, gutes Geld darauf zu wetten, dass 99% der Leute, die Software schreiben, fast keine Ahnung haben, wie eine CPU tatsächlich funktioniert, geschweige denn von der Physik, die dem Transistordesign zugrunde liegt. Im weiteren Sinne glaube ich, dass die Informatiker der Zukunft so weit von den klassischen Definitionen von „Software“ entfernt sein werden, dass es ihnen schwer fallen wird, eine verknüpfte Liste umzukehren oder Quicksort zu implementieren. (Verdammt, ich bin mir nicht sicher, ob ich mich selbst daran erinnere, wie ich Quicksort implementieren kann.)
KI-Codierungsassistenten wie CoPilot kratzen nur an der Oberfläche dessen, wovon ich spreche. Es scheint mir völlig offensichtlich, dass natürlich alle Programme in der Zukunft letztendlich von KIs geschrieben werden, wobei der Mensch bestenfalls auf eine Aufsichtsfunktion verwiesen wird. Wer an dieser Vorhersage zweifelt, muss sich nur die sehr schnellen Fortschritte ansehen, die in anderen Bereichen der KI-Content-Generierung, wie z.B. der Bildgenerierung, gemacht werden. Der Qualitäts- und Komplexitätsunterschied zwischen DALL-E v1 und DALL-E v2, die nur 15 Monate später angekündigt wurde, ist erschütternd. Wenn ich in den letzten Jahren etwas gelernt habe, das ich im Bereich KI gearbeitet habe, dann, dass es sehr leicht ist, die Leistungsfähigkeit immer größerer KI-Modelle zu unterschätzen. Was noch vor wenigen Monaten wie Science-Fiction aussah, wird mit rasantem Tempo zur Realität.

Ich spreche also nicht nur davon, dass CoPilot Programmierer ersetzt. Ich spreche davon, das gesamte Konzept des Schreibens von Programmen durch Trainingsmodelle zu ersetzen. In Zukunft müssen CS-Studenten nicht mehr so banale Fähigkeiten erlernen, wie z. B. das Hinzufügen eines Knotens zu einem Binärbaum oder Code in C++. Diese Art der Ausbildung wird antiquiert sein, wie z.B. Ingenieurstudenten den Umgang mit einem Rechenschieber beizubringen.
Die Ingenieure der Zukunft werden mit ein paar Tastendrücken eine Instanz eines Modells mit vier Trillionen Parametern starten, das bereits das gesamte Ausmaß des menschlichen Wissens (und noch einige) kodiert und bereit ist, jede Aufgabe zu erfüllen, die von der Maschine verlangt wird. Der Großteil der intellektuellen Arbeit, um die Maschine dazu zu bringen, das zu tun, was man will, besteht darin, die richtigen Beispiele, die richtigen Trainingsdaten und die richtigen Methoden zur Bewertung des Trainingsprozesses zu finden. Entsprechend leistungsfähige Modelle, die in der Lage sind, durch Few-Shot-Lernen zu verallgemeinern, benötigen nur wenige gute Beispiele für die auszuführende Aufgabe. Massive, von Menschen kuratierte Datensätze werden in den meisten Fällen nicht mehr notwendig sein, und die meisten Menschen, die ein KI-Modell „trainieren“, werden keine Gradientenabstiegsschleifen in PyTorch oder ähnliches ausführen. Sie werden mit gutem Beispiel vorangehen, und die Maschine wird den Rest erledigen.
In dieser neuen Informatik – wenn wir sie überhaupt Informatik nennen – werden die Maschinen so leistungsfähig sein und bereits wissen, wie man so viele Dinge tut, dass das Feld weniger wie ein technisches Unterfangen und mehr wie ein pädagogisches Unterfangen aussehen wird; Das heißt, wie man die Maschine am besten erzieht, nicht unähnlich der Wissenschaft, wie man Kinder in der Schule am besten erzieht. Im Gegensatz zu (menschlichen) Kindern werden diese KI-Systeme jedoch unsere Flugzeuge fliegen, unsere Stromnetze betreiben und möglicherweise sogar ganze Länder regieren. Ich würde behaupten, dass die überwiegende Mehrheit der klassischen CS irrelevant wird, wenn wir uns darauf konzentrieren, intelligente Maschinen zu unterrichten, anstatt sie direkt zu programmieren. Programmieren im herkömmlichen Sinne wird in der Tat tot sein.
Wie verändert all dies die Art und Weise, wie wir über das Gebiet der Informatik denken?
Die neue atomare Einheit der Berechnung wird nicht zu einem Prozessor-, Speicher- und I/O-System, das eine Von-Neumann-Maschine implementiert, sondern zu einem massiven, vortrainierten, hochgradig adaptiven KI-Modell. Dies ist eine seismische Verschiebung in der Art und Weise, wie wir über Berechnung denken – nicht als vorhersehbarer, statischer Prozess, der von Befehlssätzen, Typsystemen und Vorstellungen von Entscheidbarkeit bestimmt wird. KI-basierte Berechnungen haben längst den Rubikon überschritten, der für statische Analysen und formale Beweise zugänglich ist. Wir bewegen uns schnell auf eine Welt zu, in der die grundlegenden Bausteine der Berechnung temperamentvolle, mysteriöse und anpassungsfähige Agenten sind.
Diese Verschiebung wird durch die Tatsache unterstrichen, dass niemand wirklich versteht, wie große KI-Modelle funktionieren. Es gibt Forschungsarbeiten, in denen neue Verhaltensweisen bestehender großer Modelle entdeckt werden, obwohl diese Systeme von Menschen „konstruiert“ wurden. Große KI-Modelle sind in der Lage, Dinge zu tun, für die sie nicht explizit trainiert wurden, was Nick Bostrom und alle anderen, die sich (zu Recht) Sorgen machen, dass eine superintelligente KI Amok läuft, in Angst und Schrecken versetzen sollte. Wir haben derzeit keine Möglichkeit, abgesehen von empirischen Studien, die Grenzen der aktuellen KI-Systeme zu bestimmen. Was zukünftige KI-Modelle angeht, die um Größenordnungen größer und komplexer sind – viel Glück!
Die Verschiebung des Schwerpunkts von Programmen zu Modellen sollte für jeden offensichtlich sein, der moderne Arbeiten zum maschinellen Lernen gelesen hat. In diesen Papieren werden der Code oder die Systeme, die ihren Innovationen zugrunde liegen, kaum erwähnt. Die Bausteine von KI-Systemen sind viel höhere Abstraktionen wie Aufmerksamkeitsschichten, Tokenizer und Datensätze. Einem Zeitreisenden von vor 20 Jahren würde es schwer fallen, die drei Sätze in dem (75 Seiten langen!) GPT-3-Papier, das die eigentliche Software beschreibt, die für das Modell erstellt wurde:
Wir verwenden das gleiche Modell und die gleiche Architektur wie GPT-2, einschließlich der darin beschriebenen modifizierten Initialisierung, Pränormalisierung und reversiblen Tokenisierung, mit der Ausnahme, dass wir abwechselnd dichte und lokal gebänderte spärliche Aufmerksamkeitsmuster in den Schichten des Transformators verwenden, ähnlich wie beim Sparse Transformer [CGRS19]. Um die Abhängigkeit der ML-Leistung von der Modellgröße zu untersuchen, trainieren wir 8 verschiedene Modellgrößen, die über drei Größenordnungen von 125 Millionen Parametern bis 175 Milliarden Parametern reichen, wobei der letzte das Modell ist, das wir GPT-3 nennen. Frühere Arbeiten deuten darauf hin, dass mit genügend Trainingsdaten die Skalierung des Validierungsverlusts in Abhängigkeit von der Größe ungefähr ein glattes Potenzgesetz sein sollte; Das Training von Modellen vieler verschiedener Größen ermöglicht es uns, diese Hypothese sowohl für den Validierungsverlust als auch für nachgelagerte Sprachaufgaben zu testen.
Diese Verschiebung in der zugrundeliegenden Definition von Computing stellt eine große Chance und viele große Risiken dar. Dennoch denke ich, dass es an der Zeit ist, zu akzeptieren, dass dies eine sehr wahrscheinliche Zukunft ist, und unser Denken entsprechend weiterzuentwickeln, anstatt nur hier zu sitzen und darauf zu warten, dass der Meteor einschlägt.