Eine minimale TensorFlow.js-Neuimplementierung von Karpathys minGPT (Generative Pre-trained Transformer).
Eine vollständige Definition dieses „hausgemachten“ GPT- Sprachmodells (alles davon) finden Sie in dieser einzelnen model.ts-Datei (weniger als 300
Codezeilen).
Da model.ts in TypeScript geschrieben ist, können Sie es mit einem hausgemachten GPT-Playground trainieren, mit Parametern experimentieren und seine Vorhersagen mithilfe einer GPU direkt im Browser generieren.
Das Modell und der Spielplatz wurden zu Lernzwecken geschrieben, um zu verstehen, wie GPT funktioniert, und um WebGPU für das Training zu verwenden.
Um zu verstehen, was in der model.ts-Datei passiert, lesen Sie bitte Andrej Karpathys gut erklärten, praktischen Vortrag „Lass uns GPT erstellen: von Grund auf, im Code, buchstabiert“ (wohl eine der besten Erklärungen zu GPT, die es gibt).
Im Ordner ./gpt/src/ finden Sie die folgenden Dateien:
Heads
in CausalSelfAttention
nacheinander (statt parallel) verarbeitet werden. Dadurch ist das Modell etwas langsamer, aber besser lesbar. Die Gewichte einiger vorab trainierter Modelle werden im Repository „homemade-gpt-js-weights“ veröffentlicht. Sie können sie über den Web-Playground (Abschnitt „Generation“) oder über den Node.js-Playground ( model.setWeights()
) anwenden.
Um mit Modellparametern, Training und Textgenerierung zu experimentieren, können Sie den Homemade GPT JS Playground verwenden.
Selbstgebauter GPT JS-Spielplatz |
---|
Sie können den Spielplatz auch lokal starten, wenn Sie den Code des Transformatormodells selbst ändern und damit experimentieren möchten.
Abhängigkeiten installieren:
npm i
Web-Spielplatz lokal starten:
npm run playground-web
Der Spielplatz wird unter http://localhost:3000/homemade-gpt-js zugänglich sein
Führen Sie diese Befehle im Stammverzeichnis des Projekts aus. Sie benötigen Node.js ≥ 20.0.0.
Sie können auch mit dem Modell in der Node.js-Umgebung experimentieren.
Abhängigkeiten installieren:
npm i
Starten Sie den Node.js-Spielplatz:
npm run playground-node
Die Datei ./playground-node/src/index.ts enthält das grundlegende Beispiel für Training und Textgenerierung.
Führen Sie diese Befehle im Stammverzeichnis des Projekts aus. Sie benötigen Node.js ≥ 20.0.0.