StartseiteArtikel

Der AI-Experte Andrej Karpathy's Open-Source-Projekt ist heiss um die Ohren, und er hat ChatGPT nur mit 8.000 Codezeilen in nur 4 Stunden geklont.

36氪的朋友们2025-10-14 17:21
Kapaci hat das Open-Source-Projekt nanochat gestartet und kann in 4 Stunden ein ChatGPT-Klon für 100 US-Dollar trainieren.

Am frühen Morgen des 14. Oktober veröffentlichte der bekannte Experte auf dem Gebiet der Künstlichen Intelligenz, Andrej Karpathy, ein neues Open-Source-Projekt namens "nanochat". Er beschrieb es als eines der "ungebundensten" und verrücktesten Projekte, die er je geschrieben habe.

Im Gegensatz zu dem früheren nanoGPT, das nur die Vorhersage abdeckte, ist das neue nanochat ein minimalistischer, von Grund auf neu aufgebauter Full-Stack-Trainings- und Inferenzprozess. Es realisiert mit einer einzigen Codebasis mit minimalen Abhängigkeiten den vollständigen Aufbau einer vereinfachten Version von ChatGPT.

Der Nutzungsablauf von nanochat ist sehr einfach: Sie müssen nur einen Cloud-GPU-Server mieten und ein einzelnes Skript ausführen. Nach spätestens 4 Stunden können Sie in einer ChatGPT-ähnlichen Web-Oberfläche mit dem von Ihnen trainierten Large Language Model (LLM) chatten.

Was ist nanochat?

Aus den von Karpathy vorgestellten Prinzipien geht hervor, dass Nanochat alle Schritte und Werkzeuge für die Herstellung eines Chatbots von Grund auf zusammenfasst. Dazu gehören:

1. Datenvorbereitung: Beginnend mit ursprünglichen Webtexten (z. B. dem FineWeb-Datensatz) wird ein Tokenizer erstellt, um die riesigen Textmengen in Zahlen umzuwandeln, die das Modell verstehen kann.

2. Modellvorhersage: Ein grundlegendes Transformer-Modell wird auf großen Datensätzen trainiert, damit es die Grammatik, Fakten und grundlegende logische Fähigkeiten der Sprache lernt. Dies ist der zeitaufwändigste und zentralste Schritt.

3. Alignment-Fine-Tuning:

  • a. Instruction Fine-Tuning: Mit hochwertigen Frage-Antwort- und Dialogdaten wird das Modell gelehrt, wie es als Assistent Anweisungen befolgt und mit Menschen spricht.
  • b. Reinforcement Learning: (Optional) Durch Belohnungen und Bestrafungen wird die Leistung des Modells bei bestimmten Aufgaben (z. B. mathematischen Problemlösungen) weiter verbessert.

4. Modellinferenz: Es wird ein effizienter Engine bereitgestellt, mit dem Sie in der Befehlszeile oder in einer ChatGPT-ähnlichen Web-Oberfläche in Echtzeit mit dem von Ihnen trainierten Modell chatten können.

5. Evaluierung: Nach Abschluss des Trainings generiert das System automatisch einen detaillierten "Bericht", der die Leistung des Modells bei mehreren Standardtests (z. B. Mathematik, Code, logische Schlussfolgerungen) zeigt.

Karpathys früheres nanoGPT-Projekt konzentrierte sich hauptsächlich auf Schritt 2: Modellvorhersage. Es ist ein minimaler Code für das Training eines GPT-Modells, das hauptsächlich für Bildungszwecke dient, um zu verstehen, wie ein Large Model trainiert wird.

Im Gegensatz dazu ist nanochat ein Full-Stack-Projekt, das nicht nur den Vorhersageanteil von nanoGPT enthält, sondern auch alle darauffolgenden Schlüssel-Schritte ergänzt (Instruction Fine-Tuning, Reinforcement Learning, Inferenz, UI-Oberfläche), und schließlich wird ein Chatbot geliefert, mit dem man tatsächlich chatten kann.

Und alles dies wurde mit nur 8.000 von Karpathy geschriebenen Codezeilen realisiert.

Was ist die Bedeutung von Karpathys nanochat?

Zunächst für Bildung und Lernen: Es ist derzeit die beste Lernressource, um zu verstehen, "wie man einen ChatGPT von Grund auf baut". Es gibt normalen Entwicklern und Forschern die Möglichkeit, mit relativ geringen Kosten einen eigenen kleinen Chatbot "zubereiten" und den gesamten Prozess von einer Menge ursprünglicher Texte bis hin zu einem intelligenten Dialogassistenten zu erleben.

Zweitens als Forschungs- und Experimentierplattform: Es bietet Forschern eine leichte, kontrollierbare und reproduzierbare Experimentierplattform. Sie können auf diesem Rahmen schnell neue Modellarchitekturen, Trainingsmethoden oder Alignment-Techniken testen, ohne auf teure, große Rechenressourcen zurückgreifen zu müssen.

Schließlich haben Netizens auf X neue Möglichkeiten entdeckt. Sie glauben, dass dieses System ein neuer Benchmark für die Hardwareauswertung werden kann.

Das ist wirklich großartig. Es sollte ein neuer Benchmark für die Hardwareauswertung werden - wir müssen nur ein geordnetes Tripel melden:

● Gesamtkosten für das End-to-End-Training (in US-Dollar)

● Gesamtzeit für das End-to-End-Training (in Minuten)

● Gesamte Leistung bei bestimmten Testsätzen

Und der gesamte Prozess ist hochgradig reproduzierbar.

100 US-Dollar für das Training eines KI-Systems von Grund auf

Wie viel Geld kann man mit Nanochat wirklich sparen?

● Mit nur etwa 100 US-Dollar (etwa 4 Stunden Training auf einer 8XH100-Knoten) können Sie einen kleinen ChatGPT-Klon trainieren, der einfache Gespräche führen, Geschichten und Gedichte schreiben und einfache Fragen beantworten kann.

(In der Web-Oberfläche wird ein 4-stündiges, 100 US-Dollar teures nanochat-Modell für den Dialog angezeigt. Es kann bereits Gedichte schreiben.)

(Im nanochat-Berichtskarten werden einige zusammenfassende Indikatoren des 100 US-Dollar-"Schnelltrainings" gezeigt. Das Gesamtergebnis ist ziemlich gut.)

● Nach etwa 12 Stunden Training übertrifft das Modell die Leistung von GPT-2 bei den CORE-Indikatoren.

● Wenn das Budget auf etwa 1.000 US-Dollar erhöht wird (41,6 Stunden Training), wird das Modell noch kohärenter und kann einfache mathematische und Programmierprobleme lösen und Multiple-Choice-Tests bestehen. Beispielsweise erreicht ein Modell mit einer Tiefe von 30 nach 24 Stunden Training (Rechenaufwand entspricht GPT-3 Small 125M oder 1/1000 von GPT-3) über 40 Punkte bei MMLU, über 70 Punkte bei ARC-Easy und über 20 Punkte bei GSM8K.

Karpathy enthüllt die dahinterliegende Technologie persönlich

Auf der X-Plattform führte Karpathy einen Frage-Antwort-Dialog mit Netizens und veröffentlichte die Details der Entwicklung von nanochat und die dazugehörige Technologie.

Im Folgenden einige ausgewählte Fragen und Antworten:

Frage: Auf welcher Modellarchitektur basiert das Training und die Infrastruktur dieses Modells?

Karpathy: Die Modellarchitektur von nanochat ist im Wesentlichen ähnlich der von Meta Llama, aber vereinfacht und hat einige Designideen aus seinem verbesserten modded-nanoGPT-Projekt übernommen. Das Ziel ist es, eine "solide Basis" für Modelle dieser Größe zu schaffen.

Die wichtigsten Architekturmerkmale sind:

Dense Transformer

Rotary Embeddings, ohne explizite Positional Embeddings

QK Norm (Normalisierung der Query- und Key-Vektoren)

Embedding- und Unembedding-Gewichte werden nicht geteilt (untied weights)

Normalisierung nach der Token-Embedding

MLP verwendet die ReLU²-Aktivierungsfunktion

Keine lernbaren Parameter in RMSNorm

Keine Bias-Terms in linearen Schichten (bias-free linear layers)

Verwendung des Multi-Query Attention-Mechanismus (Multi-Query Attention, MQA)

Logit Softcap-Technologie in der Ausgabeschicht

Der Optimierer ist eine Kombination aus Muon + AdamW, die stark von modded-nanoGPT beeinflusst wurde. Karpathy sagte, dass er in Zukunft plant, Muon zu entfernen, indem er die Lernrate jedes Moduls des Adam-Optimierers sorgfältig anpasst, aber diese Arbeit ist bisher noch nicht abgeschlossen.

Frage: Kann ich es mit meinen eigenen Daten trainieren? Zum Beispiel mit all meinen Notion-Notizen, Gesundheitsdaten und Gesprächsaufzeichnungen mit anderen Large Models? So, als ob ich einen persönlichen Chatbot bauen würde, der mich wirklich versteht?

Karpathy: Ich denke, dass diese Codebasis nicht für diesen Zweck geeignet ist. Sie können sich diese kleinen Modelle wie kleine Kinder (z. B. im Kindergartenalter) vorstellen. Sie haben tatsächlich nicht die natürliche Intelligenz von großen Modellen. Wenn Sie es mit Ihren eigenen Daten fine-tunen oder trainieren, können Sie möglicherweise einige interessante Antworten bekommen, die Ihre Schreibweise imitieren, aber das Gesamtergebnis wird eher grob ausfallen.

Um das gewünschte Ergebnis zu erzielen, muss möglicherweise folgender Prozess durchgeführt werden: Zunächst müssen die ursprünglichen Daten sortiert werden, daraufhin müssen eine große Menge synthetischer Daten neu geschrieben werden (dieser Schritt ist schwierig und mit hoher Unsicherheit verbunden und gehört zur Forschung), und dann muss ein erstklassiges Open-Source-Large Model fine-getuned werden. Möglicherweise müssen auch eine große Menge an vortrainierten Daten gemischt werden, um zu vermeiden, dass das Modell seine ursprüngliche Intelligenz während des Fine-Tunings verliert.

Ehrlich gesagt gehört es bis heute noch zur Spitzenforschung, diesen Prozess perfekt zu machen.

Der derzeit praktikabelste nicht-technische Ansatz besteht darin, alle Daten in ein Tool wie NotebookLM zu importieren, das Ihre Daten mit der RAG-Technologie (d. h. blockweise Suchreferenz) verarbeiten kann. Ihre Informationen werden über das Kontextfenster an das Modell übermittelt, aber die Gewichte des Modells selbst werden nicht verändert. Obwohl das Modell Sie nicht wirklich "kennt", ist dies möglicherweise die derzeit am einfachsten umsetzbare Annäherung.

Frage: Wie viel von diesem Code haben Sie selbst geschrieben?

Karpathy: Der Code ist im Wesentlichen vollständig von Hand geschrieben (mit der Tab-Taste zur automatischen Vervollständigung). Ich habe es ein paar Mal mit AI-Programmierassistenten wie Claude/Codex versucht, aber es hat überhaupt nicht funktioniert und mir insgesamt nicht geholfen. Vielleicht weicht mein Code-Stil zu stark von dem der Trainingsdaten dieser Assistenten ab.

Dieser Artikel stammt von “Tencent Technology”, Autor: Jin Lu, veröffentlicht von 36 Kr mit Genehmigung.