← Alle Artikel
Gedanken

Daumenkino oder Strömungskarte. Warum die Zeit zwischen zwei Commits das eigentliche Signal ist.

Ein Kollege hat mir am Telefon eine Formel erklärt, und seither sehe ich Git-Historien anders. Fünf Commits im Minutentakt und fünf Commits über fünf Wochen sind dieselbe Reihenfolge und eine völlig andere Geschichte. Die meisten Modelle werfen genau diesen Unterschied weg. Ein leichter Gedanke, ohne Bauplan.

Ok: Manchmal erklärt einem jemand in fünf Minuten am Telefon etwas, woran man selber zwei Wochen herumgedacht hat. Ein Kollege hat mir eine Formel hingeschrieben, drei Buchstaben und ein Strich, und seither sehe ich Git-Historien anders. Ich schreibe das hier als leichten Gedanken auf, nicht als Bauplan. Wer den Bauplan will, muss anrufen.

Der Anruf

Ich habe letzte Woche geschrieben, dass Software ein Film ist und alle Werkzeuge nur ein Foto machen. Und dass wir bei NeoCoder probieren, ob ein kleines Modell, wir nennen es NeoTemporal, die Bewegung eines Projekts aus der Git-Historie lernen kann. Der Kollege hat das gelesen und gesagt: Du machst da ein Daumenkino. Das ist nicht falsch. Aber es gibt noch eine andere Art, Bewegung zu lernen.

Das Daumenkino

Ein normales Sequenzmodell lernt: Zustand jetzt, Zustand als Nächstes. Bild eins, Bild zwei, Bild drei. Wenn man schnell genug blättert, sieht es aus wie Bewegung, aber es sind Einzelbilder in festen Schritten. Das funktioniert, und für vieles reicht es. Es hat nur eine Schwäche, die man erst merkt, wenn man echte Daten anschaut.

Eine Git-Historie hat keine festen Schritte. Drei Commits in einer Stunde, dann zwei Tage nichts, dann zwanzig an einem Nachmittag. Ein Daumenkino muss das künstlich glätten, damit die Bilder gleich weit auseinander liegen. Und beim Glätten geht etwas verloren. Was genau, dazu gleich.

Die Strömungskarte

Die Formel des Kollegen sagt etwas anderes: Lerne nicht die Bilder. Lerne die Geschwindigkeit und die Richtung, in die sich der Zustand gerade verändert. Stell dir eine Strömungskarte vor, wie auf dem Meer: Wenn du hier stehst und das passiert, driftest du dorthin, so schnell. Das Modell lernt nicht, wo das Boot als Nächstes ist. Es lernt die Strömung.

Der praktische Witz daran: Mit einer Strömungskarte kannst du beliebige Zeitabstände fragen. Wo bin ich in zehn Minuten? Wo bin ich in drei Tagen? Die Karte rechnet einfach weiter. Das Daumenkino kann das nicht, es kennt nur den nächsten Schritt. In der Fachwelt heisst diese Modellklasse Neural ODE, das Modell lernt eine Differentialgleichung statt einer Sprungtabelle. Das ist seit Jahren publiziert, nichts davon ist neu. Neu ist nur, worauf man es anwendet.

Meine Erfahrung: Die schönste Formel ist wertlos, wenn die Daten nicht dazu passen. Und hier war der Moment am Telefon, an dem ich kurz still war. Unsere Daten passen. Ohne dass wir es darauf angelegt hatten.

Delta t

Delta t heisst einfach: die verstrichene Zeit zwischen zwei Ereignissen. Commit um 9:14, nächster um 9:22, Delta t ist acht Minuten. Dann nichts bis übermorgen, Delta t ist zwei Tage.

Die meisten Sequenzmodelle werfen diese Information weg. Für sie ist die Historie eine Reihenfolge: Ereignis eins, zwei, drei, egal ob dazwischen Sekunden oder Wochen lagen. Dabei steckt im Abstand oft das eigentliche Signal. Fünf Commits im Minutentakt auf dieselbe Datei erzählen eine Geschichte: hektisches Fixen, vermutlich brennt etwas. Fünf Commits über fünf Wochen auf dieselbe Datei erzählen eine andere: ruhige, geplante Weiterentwicklung. Gleiche Reihenfolge. Völlig andere Bedeutung.

Wir hatten bei NeoTemporal früh entschieden, diesen Abstand nicht wegzuwerfen, sondern an jedes Ereignis dranzuhängen. Nicht wegen einer Formel, sondern weil der Satz „dieser Bereich wird gerade schneller instabil" ohne Zeitabstand gar nicht formulierbar ist. Beschleunigung ist eine Delta-t-Aussage. Und genau das ist die Brücke: Die Strömungskarte braucht die echte Zeit als Zutat. Wer sie von Anfang an sauber erfasst, kann später beide Welten füttern, das Daumenkino und die Karte, und beide gegeneinander antreten lassen.

Ereignis → Zeitabstand dazu → Daumenkino als Baseline → Strömungskarte als Kandidat → wer besser misst, gewinnt

Der ehrliche Nachteil, den ich den Kollegen gleich gefragt habe: Diese Modelle sind teurer zu trainieren und bei verrauschten Daten zickiger. Darum gilt bei uns dieselbe Regel wie immer. Erst der Beweis gegen die einfache Variante, dann die Eleganz. Ich habe im Podcast erzählt, was passiert, wenn ein Modell den Beweis nicht schafft: Es bleibt liegen. Auch wenn die Formel schöner ist.

Verrate ich hier zu viel?

Ich habe mich das gefragt, bevor ich das geschrieben habe. Die Antwort ist nein, und der Grund ist wichtig. Die Zutaten sind alle öffentlich. Neural ODEs stehen seit Jahren in Papers. Dass Commit-Historien Signal tragen, erforscht eine ganze Community seit über zehn Jahren. Die Idee ist in der Luft, und sie gehört niemandem.

Was nicht in der Luft ist, sind die eigenen Daten. Ereignisse aus echten Projekten, mit der Wahrheit gratis dazu, weil im Build steht, was danach passiert ist. Und die Maschine, die das sauber sammelt, jeden Tag. Das ist NeoCoder: Der Agent sieht nicht nur den Code, er sieht die ganze Kette, Zustand, Aktion, Ergebnis, Folgezustand, und schreibt sie mit. Das kann man nicht abschreiben, das kann man nur bauen. Darum kann ich den Gedanken erzählen und den Bauplan behalten.

Und weil ich sonst nie Werbung mache, hier einmal, kurz: Wenn du ein Entwicklungsteam hast und wissen willst, wohin sich dein Projekt bewegt, nicht nur wie es heute aussieht, dann ist das genau die Frage, an der wir mit NeoCoder arbeiten. Erst mit deinem Rhythmus, später mit einem Modell, das nur deine Daten kennt und dein Haus nie verlässt. Wir suchen dafür noch Partner: Teams mit echten Projekten, die ihren Rhythmus mit uns anschauen wollen. Schreib mir, wenn du so ein Projekt hast. Nicht, um etwas zu kaufen. Lass uns schauen, ob wir voneinander profitieren können.

Was bleibt

Schau dir deine eigene Git-Historie einmal nicht als Liste an, sondern als Rhythmus. Wo wird es schnell? Wo ist es lange still, und dann plötzlich laut? Das siehst du ohne Modell, mit blossem Auge, und es sagt dir mehr über dein Projekt als jede Komplexitätszahl. Das Modell macht nachher nur, was du gerade gemacht hast. Nur für alle Dateien gleichzeitig, und ohne müde zu werden.

Zum Schluss

Ein Daumenkino lernt Bilder in festen Schritten. Eine Strömungskarte lernt Geschwindigkeit und Richtung, und kann beliebige Zeitabstände fragen. Der Unterschied liegt in einer Zahl, die fast alle wegwerfen: die Zeit zwischen zwei Ereignissen. Wer sie behält, kann beide Modelle bauen. Welches gewinnt, entscheidet die Messung, nicht die Formel.

Wie dieser Text entstanden ist

Geschrieben von mir. Die Gedanken, die Werte, die Learnings, die Fehler: alles meins. Grammatik und Rechtschreibung korrigiert ein eigenes Twin-Modell, das auf meinen Texten trainiert ist. Manchmal wird daraus ein Mix. Ich lese natürlich alles nochmal, aber niemand ist unfehlbar. Was drin bleibt, ist dann auch von mir.

Weiterlesen Alle Artikel

Ehrliche Gedanken.
Direkt ins Postfach.

Ein bis zwei Mails im Monat. Kein Hochglanz, kein Spam.