Greg Schmid · Informatik

Ich baue Software, um zu verstehen, wie sie funktioniert.

Ich studiere Informatik an der ETH Zürich. Zurzeit entwickle ich in Java Schritt für Schritt ein eigenes Sprachmodell.

01

Über mich

Ich bin Greg und studiere im Bachelor Informatik an der ETH Zürich. Besonders interessieren mich die Grundlagen hinter Software: nicht nur, dass etwas funktioniert, sondern weshalb.

Deshalb setze ich eigene Projekte möglichst von Grund auf um. Auf dieser Seite dokumentiere ich ausgewählte Arbeiten und die einzelnen Entwicklungsschritte dahinter.

02

Java-Sprachmodell

In Entwicklung

Vom Zählmodell zum neuronalen Kontextmodell.

Das aktuelle Modell verwendet drei vorherige Zeichen als Kontext. Lernbare Embeddings, eine lineare Ausgabeschicht, Softmax, Cross-Entropy und Backpropagation sind direkt in Java implementiert – ohne fertiges ML-Framework.

Kontext
3 Zeichen
Embeddings
30 Dimensionen
Parameter
2’178 trainierbar
Training
Full-Batch

Aktueller Lernversuch

Das Modell lernt lokale Zeichenfolgen.

Training-Loss 2.890 → 0.092
Training-Loss über 1’000 Trainingsschritte Der Loss fällt von 2.890 zu Beginn auf 0.584 nach 250, 0.143 nach 500 und 0.092 nach 1’000 Trainingsschritten. 0 250 500 1’000 Schritte 2.9 1.5 0

Trainingskorpus · 172 Zeichen

hallo welt! hallo welt! hallo welt! hallo welt! ja nein ja nein ja nein ja nein ja nein. java code. java code. java code. java code. ki lernt. ki lernt. ki lernt. ki lernt.
            

Zur besseren Lesbarkeit umgebrochen. Im tatsächlichen Trainingskorpus sind die Abschnitte durch Leerzeichen verbunden.

Vor dem Training

hal!i wtwtwjd!.e jkvwahawcdk
krikcclehnaiarn...

Nach dem Training

hallo welt! ja nein. java code.
java code. ki lernt...

Beide Ausgaben starten mit hal. Der dargestellte Loss ist der Trainings-Loss und kein Mass für allgemeines Sprachverständnis.

  1. Zählmodell

    Zählt Übergänge anhand des vorherigen Tokens und leitet daraus Wahrscheinlichkeiten für das nächste Token ab.

    Funktioniert
  2. Trainierbares Bigram-Modell

    Ein einfaches Modell mit trainierbaren Gewichten statt reinen Häufigkeitswerten.

    Funktioniert
  3. Kontext und Embeddings

    Drei vorherige Zeichen werden als lernbare Vektoren abgebildet. Das Modell trainiert Embeddings, Ausgabematrix und Bias durch eigene Backpropagation.

    Funktioniert
  4. Self-Attention

    Als nächster grosser Modellschritt soll der feste Kontext durch einen Attention-Mechanismus erweitert werden.

    Geplant
  5. Transformer

    Langfristig soll daraus eine eigene, vollständig trainierbare Transformer-Architektur entstehen.

    Langfristig

So arbeite ich

ChatGPT nutze ich als Tutor und zur Code-Review: Ich lasse mir die Theorie erklären und eine konkrete Aufgabe stellen, implementiere die Lösung anschliessend selbst und lasse Mathematik, Codekorrektheit und Grenzfälle überprüfen.

Das Ziel

Aus dem heutigen Modell mit festem Kontextfenster soll schrittweise eine eigene Transformer-Architektur entstehen. Entscheidend ist dabei nicht eine möglichst schnelle ChatGPT-Kopie, sondern ein System, dessen einzelne Rechenschritte ich nachvollziehen und erklären kann.

Das Projekt ist weiterhin experimentell. Eine öffentliche Version folgt erst, wenn Training, Speichern und Verwendung des Modells zuverlässig funktionieren. Bis dahin gibt es bewusst noch keinen Download.

03

Kontakt

Eine Frage, Rückmeldung oder Idee?

info@gregilino.ch