1 Punkte von GN⁺ 2026-03-03 | 1 Kommentare | Auf WhatsApp teilen
  • MicroGPT ist eine minimale Implementierung eines GPT-Modells, geschrieben in 200 Zeilen reinem Python-Code, und so aufgebaut, dass sich die Kernstruktur großer Sprachmodelle visuell nachvollziehen lässt
  • Es wird mit einem Datensatz aus 32.000 menschlichen Namen trainiert, erzeugt neue Namen und visualisiert Tokenisierung, Vorhersage, Verlustberechnung und Backpropagation Schritt für Schritt
  • Wichtige GPT-Bausteine wie Softmax, Cross-Entropy Loss, Backpropagation, Embedding und Attention werden zusammen mit dem Code erklärt
  • Im Trainingsprozess wird der Adam-Optimierer verwendet, um den Loss schrittweise zu senken; anschließend werden über Temperatursteuerung (Temperature Sampling) unterschiedliche Namen erzeugt
  • Als vereinfachte Form des Kernalgorithmus großer Modelle wie ChatGPT ist es ein Lernmaterial, das das Innenleben von LLMs verständlich macht

Überblick über MicroGPT

  • Basierend auf einem 200-Zeilen-Python-Skript von Andrej Karpathy wird der Trainings- und Inferenzprozess eines GPT-Modells visuell erklärt
    • Implementiert ausschließlich in reinem Python ohne externe Bibliotheken
    • Enthält denselben grundlegenden Algorithmus wie große Sprachmodelle à la ChatGPT
  • Der Artikel zeigt durch einen anfängerfreundlichen visuellen Ansatz jede Phase des Modells Schritt für Schritt

Datensatz und Trainingsziel

  • Als Trainingsdaten werden 32.000 menschliche Namen (z. B. emma, olivia, ava) verwendet
    • Jeder Name wird als ein Dokument betrachtet, und das Modell lernt die Zeichenmuster von Namen
    • Nach dem Training erzeugt es neue Namen wie „kamon“, „karai“, „anna“ und „anton“
  • Das Modell lernt statistische Beziehungen zwischen Zeichen, Namenslängen sowie lautliche Muster am Anfang und Ende von Namen

Wie Text in Zahlen umgewandelt wird

  • Da neuronale Netze nur Zahlen verarbeiten, wird jedes Zeichen in eine ganzzahlige ID umgewandelt
    • a–z werden als 0–25 kodiert, BOS (Beginning of Sequence) als 26
    • Das BOS-Token markiert Anfang und Ende eines Namens
  • Das tiktoken von GPT-4 tokenisiert statt einzelner Zeichen auf Basis von Zeichensegmenten, das Grundprinzip ist jedoch identisch

Vorhersage des nächsten Tokens

  • Das Modell sagt im gegebenen Kontext das nächste Zeichen voraus
    • Beispiel: [BOS] → „e“, [BOS, e] → „m“, [BOS, e, m] → „m“, [BOS, e, m, m] → „a“
  • Jeder Schritt erzeugt ein Paar aus Eingabe (Kontext) und Ziel (nächstes Zeichen); dieses Verfahren ist dasselbe wie bei ChatGPT

Softmax und Wahrscheinlichkeitsberechnung

  • Die Modellausgabe besteht aus 27 Logits, die per Softmax in Wahrscheinlichkeiten umgewandelt werden
    • Jeder Logit wird exponentiert und anschließend durch die Summe geteilt, um eine Wahrscheinlichkeitsverteilung zu erzeugen
    • Das Abziehen des Maximalwerts dient der Stabilisierung, um Overflow zu vermeiden
  • Das Softmax-Ergebnis zeigt die Wahrscheinlichkeit dafür, welches Token als Nächstes erscheint

Verlustberechnung: Cross-Entropy

  • Die Genauigkeit der Vorhersage wird als −log(p) berechnet
    • Je höher die Wahrscheinlichkeit der richtigen Antwort, desto kleiner der Loss; je näher an 0, desto größer der Loss
    • Bei p=1 ist der Loss 0, bei p→0 geht der Loss gegen unendlich
  • Das Training verläuft in Richtung der Minimierung dieses Loss

Backpropagation

  • Ausgehend vom Loss wird berechnet, wie stark jeder Parameter den Loss beeinflusst
    • Die Ableitung erfolgt über einen Rechengraphen, in dem alle Operationen (add, multiply, exp, log usw.) als Knoten dargestellt sind
    • Jeder Knoten speichert Eingaben und lokale Ableitungen und propagiert die Gradienten rückwärts
  • Beispiel: L = a⋅b + a (a=2, b=3) → der Gradient von a ist 4.0 (Summe aus zwei Pfaden)
  • Dasselbe Prinzip wie bei loss.backward() in PyTorch

Embedding

  • Jede Token-ID wird in einen 16-dimensionalen Vektor umgewandelt, der Bedeutung lernt
    • Token-Embedding und Positions-Embedding werden addiert und als Eingabe verwendet
    • Je nach Position kann dasselbe Zeichen eine andere Rolle haben
  • Nach dem Training haben ähnliche Zeichen (z. B. Vokale) ähnliche Vektoren

Attention

  • Jedes Token erzeugt Query-, Key- und Value-Vektoren
    • Über das Skalarprodukt von Query und Key wird Relevanz berechnet, Softmax liefert die Gewichte
    • Das gewichtete Mittel der Values wird als Ausgabe verwendet
  • Mit einer Causal Mask wird verhindert, dass auf zukünftige Tokens zugegriffen wird
  • Vier Attention Heads arbeiten parallel und lernen unterschiedliche Muster

Gesamte GPT-Struktur

  • Eingabe-Tokens durchlaufen die folgenden Schritte
    1. Embedding + Positions-Embedding
    2. RMSNorm-Normalisierung
    3. Multi-Head-Attention
    4. Residual-Verbindung
    5. MLP (Erweiterung auf 64 Dimensionen → ReLU → Reduktion auf 16 Dimensionen)
    6. Erneute Residual-Verbindung, danach Berechnung der Ausgabe-Logits
  • Residual-Verbindungen verhindern verschwindende Gradienten
  • RMSNorm hält die Größenordnung der Aktivierungen stabil und verbessert so die Trainingsstabilität

Trainingsschleife

  • 1.000 Trainingsiterationen
    • Namen auswählen → tokenisieren → Forward Pass → Loss berechnen → Backpropagation → Parameter aktualisieren
  • Verwendung des Adam-Optimierers
    • Stabile Konvergenz durch Momentum und adaptive Lernrate
  • Der anfängliche Loss sinkt von etwa 3,3 auf 2,37
    • Die erzeugten Namen entwickeln sich von zufällig zu zunehmend natürlich wirkend

Inferenz und Sampling

  • Nach dem Training beginnt die Generierung mit BOS und sagt dann wiederholt das nächste Token voraus
    • Die Erzeugung läuft, bis BOS erneut erscheint
  • Mit Temperature wird die Vielfalt des Samplings gesteuert
    • Niedrige Werte sind deterministischer (durchschnittlicher), hohe Werte kreativer, aber instabiler
    • Eine geeignete Temperatur für die Namensgenerierung liegt bei etwa 0,5
  • Beispielausgabe: „karai“

Effizienz und Skalierbarkeit

  • MicroGPT ist eine vollständige, vereinfachte Implementierung des Kernalgorithmus von GPT
    • Der Unterschied zu ChatGPT liegt nur in der Größenordnung
    • Statt 32.000 Namen und 4.192 Parametern geht es dort um Billionen Tokens und Hunderte Milliarden Parameter
    • Statt skalarer CPU-basierter Operationen werden GPU-Tensoroperationen verwendet
  • Die grundlegende Schleife bleibt identisch: Tokenisierung → Embedding → Attention → Vorhersage → Loss → Backpropagation → Update

Fazit

  • MicroGPT ist ein didaktisches Modell, mit dem sich die interne Funktionsweise von GPT intuitiv lernen lässt
  • Es vereinfacht die komplexe Struktur großer LLMs und macht die zentralen Mechanismen von Sprachmodellen direkt erfahrbar

1 Kommentare

 
GN⁺ 2026-03-03
Hacker-News-Kommentare
  • Es hieß, dass das Modell am Ende des Trainings Namen wie "kamon", "karai", "anna" und "anton" erzeugt, aber tatsächlich kommen diese Namen auch im Datensatz vor
    Es wäre wohl besser, andere Namen zu verwenden — Link zum Datensatz

    • Stimmt, der ganze Text wirkte, als wäre er von einer KI geschrieben
    • Danke, ich werde das korrigieren
  • Es heißt zwar, der Text sei für Anfänger gedacht, aber ich weiß nicht, wie viele Anfänger eine solche mathematische Erklärung verstehen würden
    Zum Beispiel wirkte der Teil, der die Formel für den Cross-Entropy-Loss erklärt, viel zu kompliziert

    • Ich bin auch kein Experte, aber ich habe ein gewisses Vorwissen, daher benutze ich wohl Formulierungen, die aus Anfängersicht schwierig sein können
      Ich werde noch einmal darüber nachdenken
  • Was ich nicht verstehe, ist, wie so ein einfaches Modell am Ende beliebige Code-Probleme debuggen kann
    Ich frage mich, wie statistische Inferenz zu einer Art „Reasoning-Fähigkeit“ wird
    Seit ich täglich Claude Code benutze, wirkt es inzwischen wirklich so

    • Ich denke, diese Frage ist das größte Mysterium der ML-Forschung
      Der Kern ist: „Wenn man immer das richtige nächste Wort vorhersagen kann, kann man am Ende auch jede Frage richtig beantworten“
      Deshalb entwickelt sich das Feld zuletzt in Richtung reinforcement-learning-basierter Ansätze wie RLHF oder RLVR, um die „richtige Antwort“ zu finden
    • Es ist nicht einfach Inferenz auf Wortebene, sondern ein wiederholter Prozess, bei dem komplexe semantische Strukturen hierarchisch erschlossen werden
    • DNNs sind keine statistische Inferenz im üblichen Sinn
      Mathematisch sind sie eher ein Optimierungsproblem auf Basis der Differentialrechnung
      Es geht nicht einfach darum, Textstatistiken zu lernen, sondern darum, eine komplexe Lösung zur Vorhersage des nächsten Tokens zu finden
    • Die Formulierung „statistische Inferenz“ ist eine zu starke Vereinfachung
      In neuronalen Netzen gibt es zwar statistische Elemente, aber wie beim menschlichen Gehirn auch mehr als das
  • Ich habe den ganzen Text gelesen; es gab nützliche Teile, aber es fühlte sich auch etwas nach „zeichne den Rest der Eule“ an
    Es wirkte, als würden die Verbindungen zwischen den Konzepten fehlen, aber der interaktive Aufbau war gut

    • Am Anfang war es noch okay, aber dann kam plötzlich eine Erklärung wie „Ein MLP ist ein zweischichtiges Feedforward-Netzwerk, projiziert in 64 Dimensionen, wendet ReLU an und projiziert dann zurück in 16 Dimensionen“, und auf einmal sprang der Schwierigkeitsgrad stark an
      Ich hätte mir gewünscht, dass das gründlicher behandelt wird
  • Ich frage mich, ob es gerade ein Trend ist, absichtlich Rechtschreib- oder Grammatikfehler einzubauen, um zu zeigen, dass ein Text nicht von einem LLM geschrieben wurde
    Sowohl in Karpathys Blog als auch in diesem Text gab es einige solche Tippfehler

    • Diese Art von Counter-Signaling wird in Zukunft wohl noch häufiger werden
    • Ich glaube, jetzt ist mir das auch endlich aufgefallen
    • Ehrlich gesagt ist Karpathy keine so überragende Figur
      Er hat nur lange Zeit Elons Full Self Driving-Projekt getragen und war auch nicht besonders lange bei OpenAI
      In letzter Zeit scheint er sich fast nur noch auf Code Golf oder das Erfinden von Neologismen zu konzentrieren
  • Das Original steht in Karpathys Blog — Link zum microGPT-Beitrag

  • Manche meinten, es sei zu grundlegend, andere wiederum, es gehe zu tief
    Aber für jemanden wie mich, der nicht genau weiß, wie Modelle funktionieren, war es eine gute Übersicht
    Ich habe nicht alles vollständig verstanden, aber als Einstieg ins Lernen scheint es ein guter Ausgangspunkt zu sein

  • Es war eines der hilfreichsten Tutorials, die ich bisher gesehen habe
    Ich habe früher nicht programmiert, aber wegen KI schreibe ich inzwischen Code
    Die Erklärung ist einfach und klar, was sehr dabei hilft, darüber nachzudenken, was man einer KI eingeben sollte

  • Es sieht so aus, als würde T-Mobile diese Blog-Seite blockieren
    Link zur Blockierungswarnung

  • Nachdem ich den Text gelesen hatte, verstand ich zwar, dass Namen ausgegeben werden, aber ich fragte mich, warum ausgerechnet Namensgenerierung als Beispiel gewählt wurde

    • Namen sind einfach nur ein beliebiges Problem, um das Modell zu demonstrieren
      Man könnte genauso gut beliebige andere Daten verwenden