Karpathys "wahnsinniges Werk": Mit 100 Dollar und in nur 4 Stunden kannst du deine eigene "kleine GPT" trainieren.
Der AI-Legende und ehemalige AI-Chef von Tesla, Karpathy, hat das brandneue Open-Source-Projekt "nanochat" vorgestellt. Mit weniger als 8.000 Codezeilen wird der gesamte ChatGPT-Prozess nachgebildet. Es wird nur eine GPU, etwa 4 Stunden und eine Kosten von nur etwa 100 US-Dollar benötigt. Das Projekt hat in weniger als 12 Stunden nach dem Online-Gehen auf GitHub bereits 4.200 Sternchen erhalten!
Der AI-Legende und ehemalige AI-Chef von Tesla, Karpathy, hat die Veröffentlichung des neuen Projekts nanochat! angekündigt.
Ein minimalistischer, aber vollständiger Trainingsrahmen für "ChatGPT von Grund auf bauen".
Karpathy sagt, dass dies eines der verrücktesten Projekte ist, die er je geschrieben hat!
Das bedeutet, dass jeder seine eigene persönliche Version von ChatGPT haben kann.
In weniger als 12 Stunden nach der Veröffentlichung hat das Projekt auf GitHub bereits über 4.200 Sternchen erreicht! (Die Zahl steigt weiterhin rasant an)
GitHub-Projekt: https://github.com/karpathy/nanochat
Die hohe Beliebtheit kommt vollständig von der Community. Das zeigt die Anziehungskraft von Karpathy im Bereich AI!
Im Gegensatz zu den frühen Versionen von nanoGPT umfasst nanochat nicht nur das Vortraining, sondern auch den gesamten Prozess von Datenvorbereitung, Vortraining, Zwischentraining (Dialoge, Multiple-Choice-Fragen, Werkzeuggebrauch), SFT, RL-Fine-Tuning bis hin zur Inferenz-Deployment.
Das gesamte System besteht nur aus etwa 8.000 sauberen Codezeilen. Starte eine GPU-Maschine, führe ein Skript aus und nach 4 Stunden kannst du in einer Webbrowser-Oberfläche mit deiner eigenen trainierten "Mini-ChatGPT" chatten.
Karpathy bezeichnet es als "Hauptwerk" von LLM101n und es könnte auch eine experimentelle Plattform für zukünftige Forschungsbaselines und die Open-Source-Community werden.
Lass uns genauer untersuchen, wie man ChatGPT mit nur 8.000 Codezeilen "klonen" kann:
Verwende die neue Programmiersprache Rust für das Training des Tokenizers
Führe das Vortraining eines Transformer-LLM auf FineWeb durch und bewerte die CORE-Scores unter verschiedenen Metriken
Führe Zwischentraining auf Benutzer-Assistent-Dialogen, Multiple-Choice-Fragen und Werkzeuggebrauchs-Daten von SmolTalk durch
Führe SFT durch und bewerte das Chat-Modell auf Weltwissen-Multiple-Choice-Fragen (ARC-E/C, MMLU), Mathematik (GSM8K) und Code (HumanEval)
Führe Reinforcement Learning Fine-Tuning (RL) auf GSM8K mit "GRPO" durch
Implementiere effiziente Inferenz in einem Engine mit KV-Cache, einfache Pre-Filling/Decoding, Werkzeuggebrauch (Python-Interpreter in einem leichten Sandbox) und interagiere über die CLI oder eine ChatGPT-ähnliche Webbrowser-Oberfläche
Schreibe eine einzelne Markdown-Bericht, der den gesamten Prozess zusammenfasst und gamifiziert.
Die gesamten Kosten des Projekts betragen nur etwa 100 US-Dollar (etwa 4 Stunden Training auf einem 8XH100-Cluster).
Man kann einen kleinen, chatfähigen ChatGPT-Clone trainieren, der Geschichten/gedichte schreiben und einfache Fragen beantworten kann.
Nach nur etwa 12 Stunden Training übertrifft es bereits die Kernmetriken von GPT-2.
Mit einer weiteren Ausweitung auf etwa 1.000 US-Dollar (etwa 41,6 Stunden Training) wird das Modell schnell kohärenter und kann einfache mathematische/Code-Probleme lösen und Multiple-Choice-Fragen beantworten.
Ein Modell, das 24 Stunden trainiert wurde (seine FLOPs entsprechen ungefähr denen von GPT-3 Small 125M, etwa 1/1000 von GPT-3) erreicht auf MMLU die 40er-Stufe, auf ARC-Easy die 70er-Stufe und auf GSM8K die 20er-Stufe usw.
Zusammengefasst:
Mit 100 US-Dollar kannst du einen kleinen, OpenAI-ähnlichen "Mini-ChatGPT" trainieren, der Gedichte schreiben und einfache Fragen beantworten kann;
Mit 1.000 US-Dollar erreicht es eine Leistung, die nahezu GPT-2 übertrifft und kann einfache Inferenz und Code-Generierung durchführen.
Dieses Projekt zeigt Karpathys Kernphilosophie:
"Senke die Hürden für die Forschung und Reproduktion von LLMs, damit jeder sein eigenes Modell trainieren kann."
Diese demokratische Herangehensweise ähnelt der von seiner Zeit mit nanoGPT, als er "Transformer von Grund auf implementieren" propagierte.
Projekt-URL: https://github.com/karpathy/nanoGPT
Karpathy sagt, dass sein Ziel ist, den gesamten "starken Baseline"-Stack in einem kohärenten, minimalistischen, lesbaren, modifizierbaren und maximal ableitbaren Repository zusammenzufassen.
nanochat wird das Abschluss-Projekt von LLM101n (noch in Entwicklung) werden.
Karpathy glaubt, dass nanochat auch zu einem Forschungswerkzeug oder Benchmark werden könnte, ähnlich wie nanoGPT es zuvor war.
nanoGPT lehrt dich, wie man ein neuronales Netzwerk baut, nanochat lehrt dich, wie man ChatGPT baut.
Wenn nanoGPT ein "Transformer-Quellcode-Lehrprojekt" ist.
Dann ist nanochat eine "Miniaturversion des LLM-Ekosystems", eine OpenAI-ähnliche, deine eigene persönliche KI.
Das Verhältnis zwischen den beiden kann als eine zweistufige Schleife von "Neuronale Netzwerke Grundlagen" bis hin zu einem produktreifen Dialogsystem verstanden werden.
Von Vibe Coding über nanoGPT bis hin zum heutigen nanochat ist Karpathy der beste Vertreter für den Titel "KI-Bildner".
Dieses "verrückte Werk" ist keine Phantasie, sondern eine weitere Umsetzung von Karpathys Vision einer offenen, lernbaren und reproduzierbaren KI.
Effekt-Demonstration des kleinen ChatGPT
Karpathy hat das nanochat-Projekt auf einer Web-UI deployed.
Er hat auch ein Beispiel-Dialog mit einem "100-US-Dollar, 4-Stunden-Training" nanochat gegeben.
Sehr... interessant!
Das folgende Bild zeigt einen Teil des "Berichts" von Karpathys nanochat "$100-Sprint"-Experiment (d.h. ein kleiner ChatGPT-Modell, das mit nur einer GPU in etwa 4 Stunden trainiert wurde), der die Modellgröße, die Trainingszeit und die Leistung auf verschiedenen Standard-Tests zeigt.
Zeichen: 333.989 —— Die Gesamtzahl der Zeichen im Code.
Zeilen: 8.304 —— Etwa 8.300 saubere, gut kommentierte Codezeilen.
Dateien: 44 —— Die Anzahl der Projekt-Dateien.
Tokens: Etwa 83.497 —— Die Anzahl der Tokens im Code (ungefähr entspricht das 80.000 Wörtern).
Abhängigkeiten: 2.004 Zeilen in der uv.lock-Abhängigkeitsliste —— Das zeigt, dass es nur wenige Abhängigkeiten gibt und die Projektstruktur leicht ist.
Diese Zahlen zeigen den "minimalistischen" Geist von nanochat: Es implementiert den gesamten Training-, Fine-Tuning- und Inferenz-Prozess von ChatGPT, bleibt aber unter 8.000 Codezeilen.
Referenzen:
https://x.com/karpathy/status/1977755427569111362
https://github.com/karpathy/nanochat
Dieser Artikel stammt aus dem WeChat-Account "New Intelligence Yuan", Autor: New Intelligence Yuan, Redakteur: Dinghui. Veröffentlicht von 36Kr mit Genehmigung.