- Die Arbeit zur Erkennung handgeschriebener Postleitzahlen von Yann LeCun u. a. aus dem Jahr 1989 ist ein frühes praktisches Beispiel für ein per Backpropagation end-to-end trainiertes neuronales Netz, und Aufbau von Datensatz, Architektur, Loss-Funktion, Optimierung und Fehlerberichterstattung ähneln modernen Deep-Learning-Papern
- Die PyTorch-Neuimplementierung zielte auf 7.291 Graustufen-Ziffernbilder im Format 16x16 und ein kleines Netzwerk mit rund 1.000 Neuronen; die drei Tage Training des Originalpapers schrumpften auf etwa 90 Sekunden auf der CPU eines M1 MacBook Air
- Das Originalpaper berichtet 0,14 % Trainingsfehler und 5,00 % Testfehler; die Reproduktion traf dies wegen eines Ersatzdatensatzes aus auf 16x16 verkleinertem MNIST nicht exakt, erreichte aber 0,62 % Trainingsfehler und 4,09 % Testfehler
- Mit Verfahren im Stil von 2022 wie Cross-Entropy, AdamW, Data Augmentation, Dropout und ReLU sank der Testfehler von 4,09 % auf 1,59 %; die Trainingszeit stieg zwar um etwa das Vierfache, die Inferenzlatenz änderte sich aber nicht
- Die Makrostruktur blieb über 33 Jahre weitgehend erhalten, doch der Umfang von Daten, Modellen und Compute ist überwältigend gewachsen, und der Trend zu Foundation Models und Fine-Tuning lässt das Training task-spezifischer Netze von Grund auf schnell veralten
Warum ein Paper von 1989 im Jahr 2022 neu umgesetzt wurde
- Das Paper von Yann LeCun u. a. aus dem Jahr 1989 Backpropagation Applied to Handwritten Zip Code Recognition ist ein historisch bedeutendes frühes Beispiel für eine praktische Anwendung auf Basis von Backpropagation
- Es gilt als frühes Paper, das ein per Backpropagation end-to-end trainiertes neuronales Netz auf ein reales Problem anwendete
- Der damalige Datensatz bestand aus 7.291 Graustufen-Ziffernbildern im Format 16x16, und das Netzwerk hatte eine Größenordnung von rund 1.000 Neuronen
- Der Aufbau des Papers ähnelt modernen Deep-Learning-Papern stark
- Der Datensatz wird definiert
- Die Architektur des neuronalen Netzes wird beschrieben
- Loss-Funktion und Optimierung werden behandelt
- Die Klassifikationsfehlerrate auf Trainings- und Testset wird berichtet
- Der Code der Neuimplementierung wurde in PyTorch geschrieben und unter karpathy/lecun1989-repro veröffentlicht
- Das ursprüngliche Netzwerk wurde in Lisp implementiert und nutzte den 1988er Backpropagation-Simulator SN von Bottou und LeCun
- Das Design moderner Deep-Learning-Bibliotheken lässt sich grob in drei Teile gliedern
- Eine schnelle Tensor-Bibliothek auf Basis von C/CUDA
- Eine Autograd-Engine, die den Forward-Pass-Rechengraphen verfolgt und Operationen für Backpropagation erzeugt
- Eine in Python skriptbare High-Level-API mit Layern, Architekturen, Optimierern und Loss-Funktionen
Trainingsgeschwindigkeit und Grenzen der Reproduktion
- Das ursprüngliche Training durchlief die 7.291 Trainingsbeispiele 23-mal und präsentierte dem Netzwerk insgesamt 167.693 Eingabe-Label-Paare
- Das Netzwerk von 1989 wurde drei Tage lang auf einer SUN-4/260 Workstation trainiert
- Die PyTorch-Neuimplementierung brauchte auf der CPU eines MacBook Air M1 etwa 90 Sekunden und war damit bei einem einfachen Vergleich etwa 3.000-mal schneller
- conda verwendete keinen Rosetta-Emulationsmodus, sondern einen nativen arm64-Build
- Hätte PyTorch auch GPU und NPU des M1 vollständig genutzt, hätte der Geschwindigkeitsgewinn noch größer sein können
- Auf einer A100-GPU lief es bei einfacher Ausführung im Gegenteil langsamer
- Das Netzwerk war mit 4 ConvNet-Schichten, maximal 12 Kanälen, insgesamt 9.760 Parametern, 64K MACs und 1K Activations extrem klein
- SGD war so aufgebaut, dass jeweils nur ein Beispiel auf einmal verwendet wurde
- Um A100, CUDA und PyTorch wirklich gut zu nutzen, müsste man statt per-example SGD mit Full-Batch-Training die GPU-Auslastung erhöhen
- Die im Originalpaper berichtete Leistung war wie folgt
- Training: loss 2.5e-3, Fehler 0,14 %, miss 10
- Test: loss 1.8e-2, Fehler 5,00 %, miss 102
- Das Ergebnis des 23. Passes im Reproduktionsskript war wie folgt
- Training: loss 4.073383e-03, Fehler 0,62 %, miss 45
- Test: loss 2.838382e-02, Fehler 4,09 %, miss 82
- Eine exakte Reproduktion ist aus mehreren Gründen schwierig
- Der ursprüngliche Datensatz scheint im Lauf der Zeit verschwunden zu sein
- Stattdessen wurden 28x28-Ziffern aus MNIST per bilinear interpolation auf 16x16 verkleinert und die nötige Anzahl zufällig ohne Zurücklegen gezogen
- Die Beschreibung der Gewichtsinitialisierung ist abstrakt, und wegen PDF-Formatproblemen könnten Punkte oder Wurzelzeichen verloren gegangen sein
- Die sparse Verbindungsstruktur zwischen H1 und H2 wird im Paper nicht konkret behandelt, daher waren plausible Annahmen nötig
- Es bestand die Sorge, dass das im Paper genannte tanh die damals verbreitete normalized tanh gewesen sein könnte
- Das Originalpaper verwendete einen speziellen Newton-Algorithmus mit positiver diagonaler Approximation der Hessian-Matrix, die Neuimplementierung hingegen das einfachere SGD
Mit Methoden 33 Jahre später die Fehlerrate gesenkt
- Die erste Änderung bestand darin, vom MSE-Regressionsansatz zu einer modernen Multi-Class-Klassifikation überzugehen
- Ursprünglich wurde die 10-Klassen-Klassifikation als Regression mit MSELoss auf Ziele von -1 oder +1 modelliert
- Das tanh der Ausgabeschicht wurde entfernt, um Class Logits zu erzeugen, und CrossEntropyLoss wurde angewendet
- Das Trainingsset wurde vollständig overfittet, wodurch 0,00 % Trainingsfehler und 4,38 % Testfehler erreicht wurden
- Als Nächstes wurde statt SGD die Adam-Familie eingesetzt
- AdamW startete mit learning rate 3e-4 und wurde während des Trainings auf 1e-4 gesenkt
- Das Ergebnis lag bei 0,00 % Trainingsfehler und 3,59 % Testfehler
- Das Weight Decay der Standardparameter half zusätzlich dabei, Overfitting zu mindern
- Data Augmentation bestand darin, die Eingabebilder horizontal oder vertikal um bis zu 1 Pixel zu verschieben
- Da dies eine Vergrößerung des Datensatzes simuliert, wurde die Zahl der Passes von 23 auf 60 erhöht
- Die reine Erhöhung der Passes unter den ursprünglichen Einstellungen verbesserte das Ergebnis nicht wesentlich
- Das Resultat lag bei 1,70 % Trainingsfehler und 2,19 % Testfehler
- Die Kombination aus Dropout und ReLU brachte weitere Verbesserungen
- Direkt vor der H3-Schicht mit den meisten Parametern wurde ein leichtes Dropout von 0,25 eingefügt
- Da Dropout Activations auf 0 setzt, passt es aus dieser Sicht besser zu ReLU als zu tanh mit Aktivierungsbereich [-1, 1]
- Alle Nichtlinearitäten wurden von tanh auf ReLU umgestellt und die Zahl der Passes auf 80 erhöht
- Das Ergebnis lag bei 1,47 % Trainingsfehler, 1,59 % Testfehler und 32 Test-miss
- Allein der Austausch von tanh durch ReLU brachte keine große Verbesserung; der größte Teil des Gewinns kam durch das Hinzufügen von Dropout
- Hätte man diese Methode ins Jahr 1989 mitnehmen können, hätte sich die Zahl der Fehler von etwa 80 auf etwa 30 und die Testfehlerrate auf rund 1,5 % senken lassen
- Dafür hätte sich die Trainingszeit nahezu vervierfacht und nach Maßstäben von 1989 von 3 Tagen auf fast 12 Tage erhöht
- Die Inferenzlatenz wäre davon nicht betroffen gewesen
Warum mehr Daten zuerst wirkte, nicht größere Modelle
- Danach wurden die einfachen Verbesserungsspielräume zunehmend kleiner
- Zusätzliche Methoden wie Weight Normalization brachten keine große Verbesserung
- Ein „micro-ViT“ mit ähnlicher Parameterzahl und ähnlichem Rechenaufwand blieb hinter der ConvNet-Leistung zurück
- In den vergangenen 33 Jahren gab es viele Innovationen, doch einige sind vor allem bei deutlich größeren Modellen relevant
- Residual Connections, Layer Normalization und Batch Normalization hängen stärker mit der Stabilisierung der Optimierung in großem Maßstab zusammen
- Weitere große Leistungsgewinne würden wahrscheinlich aus einer Vergrößerung des Netzwerks kommen, was jedoch die Inferenzlatenz im Test erhöht
- Auch die Vergrößerung der Datenmenge verbesserte die Leistung
- Unter Nutzung des vollständigen MNIST wurde das Trainingsset von 7.291 auf 50.000 Beispiele vergrößert, also etwa versiebenfacht
- Wurde das bestehende Baseline-Training mit 100 Passes ausgeführt, verbesserte sich der Testfehler auf 2,74 % bei miss 54
- Die besten Ergebnisse ergaben sich aus der Kombination von Daten-Skalierung und modernen Methoden
- 1,07 % Trainingsfehler, 1,25 % Testfehler, 24 Test-miss
- Schon 1989 hätte sich durch einen größeren Datensatz die Systemleistung ohne zusätzliche Inferenzlatenz steigern lassen
Beobachtungen von 1989 über 2022 bis 2055
- Die Makrostruktur hat sich über 33 Jahre nicht grundlegend verändert
- Noch immer baut man differenzierbare neuronale Netzwerkarchitekturen aus Layern und optimiert sie end-to-end mit Backpropagation und stochastischem Gradientenabstieg
- Der Unterschied besteht darin, dass die damalige Größenordnung viel kleiner war
- Datensatz und Modell von 1989 sind nach heutigen Maßstäben sehr klein
- Das Trainingsset bestand nur aus 7.291 Graustufenbildern im Format 16x16
- Moderne Vision-Datensätze nutzen bis zu Hunderte Millionen hochauflösender Farbbilder, die aus dem Web gesammelt wurden
- Beispiele sind Google JFT-300M oder OpenAI CLIP, das mit 400M Bildern trainiert wurde
- Gemessen an den Eingangspixeldaten sei das grob etwa 100.000.000-mal mehr
- Das Netzwerk von 1989 hatte etwa 9.760 Parameter, 64K MACs und 1K Activations
- Moderne Vision-Netzwerke erreichen Milliarden von Parametern und Größenordnungen von etwa 1e12 MACs
- Sprachmodelle können bis in den Billionenbereich bei Parametern gehen
- Blickt man im Jahr 2055 auf 2022 zurück, könnte sich ein ähnliches Muster wiederholen
- Neuronale Netze im Jahr 2055 wären auf Makroebene fast dieselben wie 2022, nur größer
- Die heutigen Datensätze und Modelle könnten dann um etwa den Faktor 10.000.000 kleiner wirken
- Selbst Modelle an der Spitze des Jahres 2022 könnten sich dann auf persönlichen Computing-Geräten als Wochenendprojekt in etwa 1 Minute trainieren lassen
- Allein durch Änderungen an Modell, Loss-Funktion, Augmentation und Optimierer ließe sich die Fehlerrate vielleicht ungefähr halbieren
- Das Training eines neuronalen Netzes von Grund auf für eine bestimmte Aufgabe veraltet schnell
- Foundation Models wie GPT werden von wenigen Institutionen mit großen Compute-Ressourcen trainiert
- Die meisten Anwendungen lassen sich durch leichtes Fine-Tuning eines Teils des Netzes, Prompt Engineering oder Daten- und Modell-Destillation in kleine spezialisierte Inferenznetze umsetzen
- Im Extremfall könnte man sich für 2055 vorstellen, dass Nutzer auf Englisch zu einem 10.000.000-mal größeren neuronalen Netz namens „megabrain“ sprechen oder denken, um Aufgaben anzufordern, und den Bedarf am direkten Training eigener Netze stark reduzieren
1 Kommentare
Meinungen auf Hacker News
Noch ein interessanter Punkt: Ursprünglich dauerte das Training auf einer Sun-4/260-Workstation drei Tage. Die genauen Spezifikationen konnte ich nicht finden, aber in der Ära der frühen SPARC-Workstations lag die gesamte Leistungsaufnahme vermutlich grob bei 200 W.
Die CPU selbst war nicht extrem stromhungrig, aber das Gesamtsystem inklusive Festplatte und Monitor dürfte in dieser Größenordnung gelegen haben. Dann wären das 200 W × 72 Stunden = 14.400 Wh.
Karpathy ließ ein Training auf vergleichbarem Niveau auf einem MacBook laufen, und zwar nicht einmal vollständig ausgelastet, in 90 Sekunden. Wenn man grob 20 W × 0,025 Stunden = 0,5 Wh annimmt, hat sich die Energieeffizienz um fast den Faktor 30.000 verbessert.
Der Artikel war wirklich gut. Schade finde ich nur, dass die Prognose für 2055 meta-linear ist. Er vermeidet zwar den häufigen Fehler, die heutige Technik unverändert zu lassen und die Zahlen per linearer Regression 33 Jahre in die Zukunft zu verlängern, scheint aber dennoch eine Art Weltlinien-Symmetrie mit dem heutigen Zeitpunkt als Ursprung vorauszusetzen.
Da der Zeitraum lang genug ist, könnten unerwartete Durchbrüche und Hindernisse dazu führen, dass keine dieser Vorhersagen eintrifft. Jemand könnte eine viel einfachere Grundstruktur als „Perceptron++“ finden, alle könnten 3D-Gaußsche Punktwolken trainieren, oder Quantencomputer könnten endlich durchstarten, sodass wir für die Bausteine, die wir verwenden würden, noch nicht einmal passende Substantive haben.
Umgekehrt könnten wir auf bisher nicht gesehene Skalierungsgrenzen bei Hardware oder Training stoßen, oder es könnte zu einem zivilisatorischen Rückschritt kommen. Wenn ich wetten müsste, würde ich trotzdem nicht unbedingt gegen die Schlussfolgerung des Artikels setzen. Wenn man nur Vergangenheit und Gegenwart kennt und extrapoliert, ist das vermutlich ziemlich nah an der besten Schlussfolgerung.
Ich tendiere dazu, dass die Veränderungen noch dramatischer ausfallen. Nicht nur wegen der Ressourcen, sondern weil es viel Raum für algorithmische Verbesserungen gibt.
Auf der naheliegenderen Seite nutzen die meisten Libraries viele bekannte Verfahren zur Gradientenoptimierung noch nicht ausreichend aus. Weil es so einfach war, einfach mehr Daten und Durchsatz hinzuzufügen, haben sich noch viele Werkzeuge angesammelt, die erst noch angewendet werden können.
Und erfolgreiche große Modelle liefern wichtige Hinweise. Sprachmodelle zum Beispiel lernen eine Art Sprachlogik, die der Art ähnelt, wie wir Gedanken verarbeiten, und sie können offensichtlich sehr heterogene Informationen plausibel miteinander verknüpfen.
Wenn wir eines Tages den Kern dieser Verarbeitung verstehen, könnte Sprachverarbeitung drastisch einfacher werden. Das ist nur eine von mehreren Chancen für radikale Fortschritte bei Architektur und Algorithmen, und sie wäre tatsächlich revolutionär.
Heißt das also, dass wir in den nächsten 33 Jahren im Grunde dasselbe tun und nur Daten und Rechenleistung weiter erhöhen müssen? Wenn man die Begeisterung beim ersten Auftauchen von LLMs — „Dass ich so etwas noch zu meinen Lebzeiten erlebe“ — und die Stimmung „Wir müssen nur Modell und Daten größer machen“ logisch weiterdenkt, landet man genau dort. Aber kommt man wirklich allein mit roher Gewalt bis zur AGI?
Vor 33 Jahren war „konnektionistische KI“ nicht das dominante Paradigma, und „symbolische KI“ war auch nicht der einzige andere Ansatz. Es gab auch Ansätze wie den „Robot Functionalism“, nach dem es ohne Interaktion mit der physischen Welt keine echte Intelligenz geben kann.
In 33 Jahren könnten solche anderen Ansätze in Verbindung mit dem Konnektionismus wieder aufleben, oder es könnte ein völlig neuer Ansatz entstehen.
Hervorragender Artikel. Ich habe die Anfangszeit künstlicher neuronaler Netze selbst miterlebt. Mitte der 1980er war ich im Neural Network Tools Advisory Panel der DARPA, schrieb die erste Version des kommerziellen Produkts SAIC ANSim und baute auch ein einfaches Backpropagation-Modell, das in einem Bombendetektor eingesetzt wurde, den das Unternehmen im Rahmen eines FAA-Vertrags entwickelte.
Vor 5–6 Jahren leitete ich bei Capital One außerdem ein „traditionelles“ Deep-Learning-Team. Die letzten 18 Monate waren wirklich aufregend. Ich verbringe so viel Zeit wie möglich damit, selbst gehostete LLMs sowie APIs von Hugging Face, OpenAI und anderen zu erkunden.
Allein der Gedanke an die Technologie in 33 Jahren lässt mir den Kopf platzen.
Die grundlegendste Veränderung liegt darin, womit Modelle trainiert werden.
Kleine Zeichenbilder sind eher wie Quizaufgaben und etwas völlig anderes, als praktisch die gesamte sprachliche und visuelle Kommunikation der Menschheit zu lernen.
Selbst wenn die Computing-Ressourcen in den nächsten 33 Jahren weiter skalieren, werden wir nicht auf der Stufe stehen bleiben, Modelle zu trainieren, die menschliches Verhalten und Wissen imitieren. Dieses Problem — also wir selbst — wird lange vorher zu einem Spielzeugproblem reduziert worden sein.
Die Qualität wird nicht sinken, denn in Datenfilterung und Sicherstellung von Vielfalt wird viel Aufwand fließen. Man kann Verbesserungen jederzeit erreichen, indem man dem Modell mehr Zeit gibt.
Die Modellarchitektur ist im Vergleich zum Datensatz nicht wichtig. Jedes Modell derselben Familie kann aus denselben Daten dieselben Fähigkeiten lernen, aber wenn man die Daten ändert, ändern sich bei allen die Fähigkeiten. Intelligenz steckt in den Daten.
Die Zukunft ist nicht Modellarchitektur-Design, sondern Data Engineering. Als Analogie: Menschliche Kultur entwickelt sich schneller als menschliche Biologie. Daten entwickeln sich schneller als Modelle.
In der jüngeren KI sieht man, dass neue Architekturen stark zurückgehen und unterschiedliche Datensätze auf dasselbe Transformer-Modell angewendet werden. Auch innerhalb von Transformern gibt es nur sehr wenige weit verbreitete Varianten, während Tausende verworfen wurden.
Ich würde gern sagen, dass der eigentliche Motor der Intelligenz die Evolution der Sprache über Meme ist. Wir und KI reiten gemeinsam auf dem exponentiellen Wachstum der Sprache.
Es ist nicht klar, ob die Rechenleistung in den nächsten 33 Jahren weiter so skalieren wird wie zuvor. Aber das muss sie auch gar nicht
Beim Lesen dachte ich: „Verdammt, ich erinnere mich, dass ich an jenem Wochenende in einem Hobby-Machine-Learning-Projekt MSE verwendet habe und es nicht gut lief. Ich hatte wohl die falsche Loss Function gewählt.“
Die heutigen LLMs, oder die LLMs des nächsten Jahres, werden mir wahrscheinlich gut genug sagen können, wie ich meinen Code und meine Graphen verbessern kann. Dann kann ich Techniken auf Expertenniveau anwenden, die mir sonst wegen der 50.000 Stunden angesammelter Erfahrung verschlossen geblieben wären
Ein Teil von mir sagt, dass der Mensch erledigt ist und wir in 33 Jahren eine Welt geschaffen haben werden, in der Menschen bedeutungslos sind. Ein anderer Teil sagt aber, dass die Zukunft ziemlich hell sein könnte, wenn wir diesem Schicksal und allen anderen Untergängen entgehen
Wenn wir heutige LLMs auf alle möglichen Probleme anwenden, wird uns das nicht den Untergang bringen. Aber eine bewusste, planungsfähige AGI könnte in wenigen Jahren entstehen, und wir kennen auch keine Obergrenze dafür, wie intelligent wir sie machen können
Ich denke, wir tragen Verantwortung für jedes intelligente Wesen, das wir in die Welt setzen. Manche beklagen, dass es keine Prüfung gibt, um Eltern zu werden – aber was ist damit, eine Million völlig neuer virtueller Gehirne zu kopieren und zu erschaffen? Und sie zudem faktisch in lebenslanger Zwangsarbeit geboren werden zu lassen
Wirklich gut. Es wurde zwar nicht ausdrücklich behandelt, aber der Unterschied nach 33 Jahren liegt meiner Ansicht nach im Input, den die Modelle verarbeiten. Ein State-of-the-Art-Modell von 1989 verwendete 16×16-Graustufenbilder, heute haben wir Farbbilder im einstelligen Megapixelbereich
In 30 Jahren wird ein Desktop CLIP in 90 Sekunden trainieren können, aber worauf werden die dann besten Modelle trainiert?
Dafür wird man Milliarden bis Billionen Stunden Video und Audio von unterschiedlichsten Menschen bei allen möglichen menschlichen Aktivitäten brauchen, und wahrscheinlich noch viele weitere Inputs
Derzeit scheint es besser, das Rechenbudget eher in ein größeres „Gehirn“ als in bessere „Augen“ zu stecken
Ich weiß nicht genau, was dabei erfasst wird, aber man könnte Modelle mit einer Kombination aus mehreren Inputs wie Audio, Video, räumlichen Informationen, Irisdaten usw. trainieren
Interessant ist, dass das Interesse an neuronalen Netzen in dieser Zeit fast vollständig verschwunden ist und dann zurückkam
Heute bringen Leute LLMs ganz sicher dazu, verkettet Vorwärts- und Rückwärtsschlüsse zu ziehen
Der Turing Award ist aber auch ziemlich großartig
Es ist zugleich erstaunlich, wie wenig und wie viel sich verändert hat. Ich erinnere mich, wie offenbarend es sich anfühlte, „The Unreasonable Effectiveness of RNNs“ zu lesen, und heute fühlt es sich an, als lebten wir in einer völlig anderen Welt
Die neue Technik ist viel besser, und ihre künftigen Implikationen sind groß. Aber für diejenigen, die sich seit damals dafür interessieren, gab es einen Referenzpunkt, bei dem „wahnsinnig viel besser geworden“ nicht unmittelbar zu „außer Kontrolle“ führt
Es stimmt, dass es viel besser geworden ist
Texte von Andrej Karpathy sind immer erfrischend. Je mehr er weiß, desto direkter und einfacher untersucht er die Grundlagen der Machine-Learning-Wissenschaft
Dieses Feld ist voll von Papers, die für kleine Verbesserungen, die sich kaum reproduzieren lassen, komplizierte neue Architekturen vorschlagen und 50 nutzlose Seiten füllen, in der Hoffnung, die neuesten Ergebnisse zu schlagen und die eigene Arbeit „seriös“ erscheinen zu lassen