Modell / Datensatz
datawhalechina/llms-from-scratch-cn avatar
datawhalechina/llms-from-scratch-cn

llms-from-scratch-cn: Ein GPT-Modell in Jupyter-Notebooks nachbauen

仅需Python基础,从0构建大语言模型;从0逐步构建GLM4\Llama3\RWKV6, 深入理解大模型原理

4.364 Sterne597 ForksJupyter NotebookNOASSERTION
GitHub

Auf einen Blick

Was ist das?
Datawhale liefert eine chinesischsprachige Lernstrecke, die von Textvorverarbeitung über Multi-Head-Attention bis zum Pretraining führt. Der Wert liegt in der Reihenfolge der Notebooks, nicht in einem einsatzfertigen Modell.
Für wen ist es gedacht?
Wer PyTorch-Grundlagen mitbringt und Attention sowie Pretraining einmal selbst implementieren will, findet hier eine durchdachte Reihenfolge aus Notebooks. Wer ein trainiertes Modell oder eine Bibliothek sucht, ist falsch.
Darf ich es kommerziell nutzen?
Erst prüfen. Die Lizenz dieses Repositorys ordnen wir nicht automatisch ein; lesen Sie vor jeder kommerziellen Nutzung die LICENSE-Datei.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 174 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Jupyter Notebook, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Ein Lehrgang, kein Modell zum Herunterladen

Das Repository adressiert ein konkretes Problem: Die meisten Einsteigermaterialien zu großen Sprachmodellen beginnen bei der Fine-Tuning-Schicht oder beim Aufruf einer API. Wer verstehen will, warum ein Decoder nur nach links schaut oder wie eine Attention-Maske die Ausgabe formt, bleibt dabei außen vor. Die Projektbeschreibung formuliert das Ziel direkt: "如果你想从0手写代码,构建大语言模型,本项目很适合你." Der Anspruch ist ausdrücklich pädagogisch. Die README nennt als Zielgruppe Lernende und Forschende, die die Kernmechanismen von LLM-Architekturen selbst nachbauen wollen. Die einzige genannte Vorbedingung ist PyTorch-Grundwissen; Python-Kenntnisse werden vorausgesetzt, nicht erklärt.

Wer hier ein trainierbares Produktivmodell erwartet, wird enttäuscht. Es gibt keine Releases, kein veröffentlichtes Checkpoint, keine Inferenz-API. Das Repository ist eine Sammlung von Jupyter Notebooks und einigen begleitenden Python-Dateien. Der Nutzen entsteht beim Durcharbeiten, nicht beim Installieren.

Zwei Pfade durch dasselbe Material

Die Grundlagen stammen aus rasbt/LLMs-from-scratch und wurden übersetzt und erweitert. Datawhale bietet dafür zwei Einstiege an. Unter Codes liegen die kompakten Notebooks, die laut README einen schnellen Einstieg erlauben. Unter Translated_Book liegen ausführlichere Fassungen desselben Stoffs mit mehr Erklärtext. Wer schon einmal an einem Attention-Kapitel gescheitert ist, weil der Text zu knapp war, sollte mit dem Buchpfad beginnen; wer nur den Code lesen will, nimmt Codes.

Die Kapitelstruktur folgt dem klassischen Aufbau eines GPT-Nachbaus. Kapitel 2 behandelt Textverarbeitung mit ch02.ipynb und dataloader.ipynb, Kapitel 3 die Attention mit ch03.ipynb und multihead-attention.ipynb, Kapitel 4 das vollständige Modell in gpt.py, Kapitel 5 Pretraining mit train.py und generate.py. Kapitel 1 enthält laut Tabelle keinen Code, die Kapitel 6, 7 und 8 sind als "即将发布" markiert. Das ist der wichtigste Stand, den man vor dem Einstieg kennen sollte: Fine-Tuning für Klassifikation, Instruction-Tuning mit menschlichem Feedback und der Praxisteil fehlen noch.

Der Datenfluss vom Rohtext bis zur Generierung

Die Kapitelreihenfolge bildet einen tatsächlichen Datenfluss ab, und das ist der didaktische Kern des Projekts. Kapitel 2 baut den Tokenizer und den DataLoader, also die Umwandlung von Text in Integer-Sequenzen und deren Bündelung in Batches. Kapitel 3 implementiert Self-Attention zunächst einzeln, dann als Multi-Head-Variante. Kapitel 4 setzt daraus das Gesamtmodell zusammen: Token-Embeddings, Positionsinformation, gestapelte Transformer-Blöcke, Ausgabeprojektion. Kapitel 5 schließt mit der Trainingsschleife und einem separaten Generierungsskript.

Bemerkenswert ist die Aufteilung in train.py und generate.py. Zwei getrennte Skripte statt einer Notebook-Zelle erzwingen, dass man den Unterschied zwischen Optimierungsschritt und Inferenz versteht. Wer nach Kapitel 5 ein Modell trainiert hat, kann es über generate.py mit einer Eingabeaufforderung füttern, ohne die Trainingslogik erneut zu laden. Diese Trennung ist keine Formalie; sie ist die Stelle, an der bei vielen Einsteigern das Verständnis kippt.

Das Modell selbst bleibt klein. Die README beschreibt es als "small but functional", also als funktionsfähig im didaktischen Sinn, nicht als konkurrenzfähig zu großen Basismodellen. Das sollte man nicht als Einschränkung lesen, sondern als bewusste Entscheidung: Ein Modell, das auf einer einzelnen Maschine in vertretbarer Zeit trainiert, ist der einzige Weg, bei dem der Lernende die Loss-Kurve selbst sehen kann.

GLM4, Llama3 und RWKV als zweite Spur

Neben dem GPT-Nachbau enthält das Repository unter Model_Architecture_Discussions eine Sammlung von Architekturanalysen. Die README listet Notebooks zu ChatGLM3, Llama3 sowie RWKV in den Versionen V2 bis V5, jeweils mit einem zugeordneten Beitragenden. Die Dateinamen folgen dem Muster llama3-from-scratch.ipynb oder rwkv-v4-guide.ipynb.

Diese Spur verfolgt ein anderes Ziel als die Grundlagenkapitel. RWKV ist keine Transformer-Architektur im engeren Sinn, sondern arbeitet mit einem rekurrenten Zustand, und wer die Versionen V2 bis V5 nebeneinander liest, sieht die Entwicklung dieser Idee über mehrere Iterationen. Llama3 und ChatGLM3 wiederum unterscheiden sich in Details wie Rotary Embeddings, Grouped-Query-Attention oder der Normalisierungsschicht. Wer nur den GPT-Nachbau aus Kapitel 4 kennt, hält solche Varianten leicht für kosmetisch. Die Notebooks zeigen, dass sie es nicht sind.

Eine Einschränkung sollte man klar benennen: Die README beschreibt diese Spur als "架构讨论和搭建", also als Diskussion und Nachbau. Ob jede dieser Notebooks Gewichte tatsächlich lädt oder nur die Rechenoperationen nachbildet, geht aus dem vorliegenden Material nicht eindeutig hervor. Der Dateiname 加载模型权重.ipynb im ChatGLM3-Ordner deutet auf einen Gewichtsimport hin, für die übrigen Notebooks lässt sich das nicht bestätigen.

Starten ohne Installationsanleitung

Das Repository liefert keine zentrale Installationsroutine. Es gibt kein pyproject.toml, keine requirements.txt und kein Makefile in der vorliegenden README. Der praktische Weg führt über die Notebooks selbst: Jupyter starten, das gewünschte Verzeichnis öffnen, etwa Codes/ch04/01_main-chapter-code/ für das Modell oder Codes/ch05/01_main-chapter-code/ für das Training, und die Zellen von oben nach unten ausführen. Die Abhängigkeiten ergeben sich aus den Import-Zellen; PyTorch ist die einzige, die die README ausdrücklich nennt.

Wer die Trainingsschleife aus Kapitel 5 nicht im Notebook, sondern als Skript ausführen will, ruft train.py direkt auf. Für verteiltes Training enthält Anhang A das Skript DDP-script.py, das sich mit torchrun starten lässt. Das ist der einzige Hinweis auf Mehr-GPU-Betrieb im gesamten Material. Konkrete Kommandozeilenargumente, Lernraten oder Batch-Größen nennt die README nicht; sie stehen, wenn überhaupt, im Code der Notebooks. Das ist ein bewusster Verzicht auf Konfigurationsdokumentation und für ein Lerntutorial vertretbar, für den Wiedereinstieg nach Wochen jedoch unbequem.

Wo das Projekt an seine Grenzen stößt

Die offensichtlichste Einschränkung ist der fehlende Abschluss. Drei der acht Hauptkapitel sind als ausstehend markiert, darunter Kapitel 7 zum Fine-Tuning mit menschlichem Feedback, also genau der Schritt, der aus einem Basismodell einen Assistenten macht. Wer den vollständigen Weg von Rohtext bis zum instruktionsfolgenden Modell sucht, findet ihn hier derzeit nicht.

Die zweite Grenze ist die Sprache. Die Notebooks und Erklärtexte sind auf Chinesisch. Das ist für die Zielgruppe des Projekts kein Mangel, für deutschsprachige Leser aber eine zusätzliche Hürde, die die README nicht adressiert. Wer kein Chinesisch liest, kann den Code nachvollziehen, verliert aber den erklärenden Teil, und der ist in Kapitel 3 und 4 der eigentliche Wert.

Drittens die Notebook-Form selbst. Zellen lassen sich in beliebiger Reihenfolge ausführen, Zustand bleibt zwischen Ausführungen erhalten, und ein falsch gesetzter Seed oder ein übersprungener Schritt produziert stillschweigend abweichende Ergebnisse. Genau das ist bei einem Modell, das man selbst trainiert, schwer zu bemerken. Wer hier ernsthaft lernt, sollte die Zellen nach jedem Kapitel einmal vollständig von oben durchlaufen lassen.

Was man stattdessen nehmen könnte

Der naheliegende Vergleich ist das Original rasbt/LLMs-from-scratch, das die README selbst als Quelle der Grundlagenkapitel nennt und dem sie namentlich dankt. Der Unterschied liegt nicht im Code, sondern im Drumherum. Das Original ist englischsprachig und enthält den vollständigen Kapitelpfad einschließlich der hier fehlenden Teile. Die Datawhale-Version bietet chinesische Erklärungen und ergänzt die Architekturanalysen zu GLM, Llama3 und RWKV, die im Original nicht in dieser Breite vorhanden sind.

Wer also Chinesisch liest und den Weg bis Kapitel 5 gehen will, fährt mit dieser Fassung gut. Wer die späteren Kapitel braucht, muss zum Original greifen oder warten. Eine dritte Option sind Framework-Kurse auf Basis von Hugging Face transformers. Dort baut man kein Modell von Hand, sondern lernt die API. Das ist für die tägliche Arbeit effizienter, vermittelt aber nicht, warum eine Attention-Maske an einer bestimmten Stelle gesetzt wird. Die beiden Ansätze schließen sich nicht aus, sie beantworten verschiedene Fragen.

Lizenz, Pflege und was vor dem Einstieg zu prüfen ist

Die README zeigt ein Apache-2.0-Badge und verlinkt auf LICENSE.txt im Repository. Die Metadaten der Plattform melden dagegen NOASSERTION, also eine nicht automatisch zuordenbare Lizenz. Diese Diskrepanz sollte man vor einer Weiterverwendung von Code klären, indem man LICENSE.txt direkt liest. Für das Lernen spielt sie keine Rolle, für das Übernehmen von Code in ein eigenes Projekt schon. Eine rechtliche Bewertung kann hier nicht erfolgen.

Die Pflege lässt sich nur indirekt beurteilen. Der letzte Push liegt laut Metadaten im März 2026, das Repository ist nicht archiviert. Veröffentlichte Releases gibt es nicht, was für ein Tutorial-Repository üblich ist, aber bedeutet, dass es keine versionierten Stände gibt, auf die man sich beziehen könnte. Änderungen an den Notebooks wirken sich unmittelbar auf main aus.

Vor dem Start lohnt ein Blick auf drei Dinge: ob die Kapitel 6 bis 8 inzwischen von "即将发布" auf einen Link umgestellt wurden, ob die Notebooks mit der eigenen PyTorch-Version laufen, und ob der eigene Rechner für das Training aus Kapitel 5 genügend Speicher hat. Punkt drei ist der praktisch relevanteste, denn das ist die Stelle, an der ein Lernprojekt in eine Hardware-Frage übergeht.

Redaktionelles Fazit

Wer PyTorch-Grundlagen mitbringt und Attention sowie Pretraining einmal selbst implementieren will, findet hier eine durchdachte Reihenfolge aus Notebooks. Wer ein trainiertes Modell oder eine Bibliothek sucht, ist falsch. Vor dem Start sollte man prüfen, ob die Kapitel 6 bis 8 noch als ausstehend markiert sind und ob die Notebooks auf die eigene PyTorch- und CUDA-Version passen, denn dazu macht das Repository keine Zusagen.

Offizielle Quellen

  1. datawhalechina/llms-from-scratch-cn on GitHub
  2. Issues
  3. README
Community-Notizen

Community-Notizen